Цитата:
Сообщение от Rabbiteggs
Ребят, ещё вопрос, как сделать что бы ссылка открывалась во всплывающем окне как картинка через colorbox, что бы в нее впихнуть форму отправки письма?
|
Делал с использованием formhandler и fancybox старого вот так:
TS
Код:
### callback page parameters
callback_page = PAGE
callback_page.typeNum = 10001
callback_page {
config {
disableAllHeaderCode = 1
debug = 0
}
10 < plugin.tx_formhandler_pi1
}
### callback form parameters
[treeLevel = 0]&&[globalVar = GP:type = 10001]
plugin.Tx_Formhandler.settings {
wrap >
name = Callback
debug = 0
addErrorAnchors = 0
templateFile = {$tmplPath}mforms/callback.tmpl
langFile = {$tmplPath}mforms/callback.xml
formValuesPrefix = formhandler
storeGP = 1
isErrorMarker {
}
validators.1 {
class = Validator_Default
config {
fieldConf {
name.errorCheck.1 = required
name.errorCheck.2 = pregMatch
name.errorCheck.2.value = (\D+)
phone.errorCheck.1 = required
phone.errorCheck.2 = minLength
phone.errorCheck.2.value = 7
#timer.errorCheck.1 = required
}
}
}
finishers.1 {
class = Tx_Formhandler_Finisher_Mail
config {
admin {
to_email = info@example.com
sender_email = noreply@example.com
sender_name = example.com
subject = Сообщение с сайта example.com
htmlEmailAsAttachment = 0
}
user >
}
}
finishers.2 {
class = Tx_Formhandler_Finisher_SubmittedOK
config {
returns = 1
}
}
}
[end]
JS
Код:
$(document).ready(function () {
$('.callback').click(function () {
$.fancybox({
href : 'index.php?id=2&type=10001',
scrolling : false,
onComplete : function () {
var func = arguments.callee;
$('#site_callback').submit(function (event) {
event.preventDefault();
var next_step1 = $('.submit').attr('name');
var next_step2 = $('.submit').attr('value');
$('#site_callback').append('<input class="tmpr" type="hidden" name="' + next_step1 + '" value="' + next_step2 + '" />');
var subData = $(this).serializeArray();
$.fancybox.showActivity();
$.ajax({
type : 'POST',
cache : false,
url : 'index.php?id=2&type=10001',
data : subData,
success : function (data) {
$.fancybox({
content : data,
onComplete : func
});
}
});
return false;
});
}
});
});
});
Думаю, принцип ясен.