адаптация для AVE.CMS v3.25 и выше
This commit is contained in:
parent
1972d6a312
commit
c7764957c4
14
README.md
14
README.md
@ -1,19 +1,21 @@
|
||||
## contactsnew
|
||||
## forms
|
||||
|
||||
# Модуль Контакты New v1.2.6
|
||||
# Модуль Формы v1.26.0
|
||||
|
||||

|
||||

|
||||
|
||||
### адаптирован для AVE.CMS v3.2.х
|
||||
### адаптирован для AVE.CMS v3.26
|
||||
|
||||
## Модуль предназначен для создания веб-форм (например, обратной связи или простейшего оформления заказа), которые могут состоять из любого набора полей.
|
||||
|
||||
## Для вывода в публичной части сайта используйте тег <strong>[mod_contactsnew:XXX]</strong>, где XXX - это id или алиас формы.
|
||||
## Для вывода в публичной части сайта используйте тег <strong>[mod_forms:XXX]</strong>, где XXX - это id или алиас формы.
|
||||
|
||||
## Перед копированием модуля в папку modules, удалите файл README.md, копируйте только корневую папку contactsnew со всем ее содержимым внутри!
|
||||
## Перед копированием модуля в папку modules, удалите файл README.md, копируйте только корневую папку forms со всем ее содержимым внутри!
|
||||
|
||||
## Changelog:
|
||||
|
||||
01.09.2019 - Версия v1.26.0 - Модуль переименован в модуль Формы. Адаптация для версии ave-cms версии 3.25 и выше, удалено лишнее.
|
||||
|
||||
10.04.2019 - Версия 1.2.6 - изменена структура расположения демо-файлов, добавлен пример создания демо-формы с jQuery Validation Plugin и reCAPTCHA v3,
|
||||
API ключи для reCAPTCHA v3 необходимо установить непосредственно в AVE.cms (версия 3.23 начиная с обновления в репозитории от 24.03.2019) в разделе
|
||||
Системные настройки->Дополнительные настройки. В шаблоне демо-формы в js скрипте параметр data.score < 0.5 - означает минимальную оценку для успешной верификации reCAPTCHA.
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,313 +0,0 @@
|
||||
<?php
|
||||
$form_tpl = array(
|
||||
'ajax_jqval_cap' =>
|
||||
'<div id=\\"[tag:formalias]\\" class=\\"col-sm-8 col-sm-offset-2\\">
|
||||
<div class=\\"page-header\\">
|
||||
<div class=\\"alert alert-info text-center\\" role=\\"alert\\">
|
||||
<h4>Демо интеграции в Модуль Контакты New v1.2.5<br><br> <a href=\\"https://jqueryvalidation.org/\\">jQuery Validation Plugin</a> и <a href=\\"https://developers.google.com/recaptcha/docs/v3\\">reCAPTCHA v3</a></h4>
|
||||
</div>
|
||||
<div class=\\"alert alert-warning alert-dismissable\\">
|
||||
Если форма не работает, или не работает валидация (отправляется пустая форма без проверки и т.п.) убедитесь, что библиотека jQuery (jquery.min.js - по умолчанию подключается модулем) подключена на странице только один раз! и расположена в секции <head> , а также подключен скрипт jquery.form.min.js (по умолчанию подключается модулем в разделе Скрипты и стили, необходимые для оформления и функционирования формы)
|
||||
<button type=\\"button\\" class=\\"close\\" data-dismiss=\\"alert\\" aria-hidden=\\"true\\">×</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class=\\"panel panel-default\\">
|
||||
<div class=\\"panel-heading\\">
|
||||
<h3 class=\\"panel-title\\">[tag:formtitle]</h3>
|
||||
</div>
|
||||
<div class=\\"panel-body\\">
|
||||
<form id=\\"form-[tag:formalias]\\" method=\\"post\\" enctype=\\"multipart/form-data\\" class=\\"form-horizontal\\" role=\\"form\\" action=\\"\\">
|
||||
[tag:fld:email]
|
||||
[tag:fld:subject]
|
||||
[tag:fld:6]
|
||||
[tag:fld:7]
|
||||
[tag:fld:8]
|
||||
[tag:fld:9]
|
||||
<div class=\\"form-group\\">
|
||||
<div id=\\"addbtn-[tag:formalias]\\" class=\\"col-sm-offset-4 col-sm-4\\">
|
||||
<noscript>включите js в браузере</noscript>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type=\\"text/javascript\\">
|
||||
|
||||
$( document ).ready( function () {
|
||||
$(\\"#addbtn-[tag:formalias]\\").append(\\\'<button type=\\"submit\\" class=\\"btn btn-primary\\">Отправить</button>\\\');
|
||||
$( \\"#form-[tag:formalias]\\" ).validate( {
|
||||
rules: {
|
||||
\\"form-ajax_jqval_cap[1]\\": {
|
||||
required: true,
|
||||
email: true
|
||||
},
|
||||
\\"form-ajax_jqval_cap[2]\\": {
|
||||
required: true,
|
||||
minlength: 4
|
||||
},
|
||||
\\"form-ajax_jqval_cap[6]\\": {
|
||||
required: true,
|
||||
minlength: 2
|
||||
},
|
||||
\\"form-ajax_jqval_cap[7]\\": {
|
||||
required: true,
|
||||
maxlength: 4
|
||||
},
|
||||
\\"form-ajax_jqval_cap[8]\\": \\"required\\"
|
||||
},
|
||||
messages: {
|
||||
\\"form-ajax_jqval_cap[1]\\": {
|
||||
required: \\"Поле \\\'Email\\\' обязательно к заполнению\\",
|
||||
email: \\"Пожалуйста, введите действительный адрес электронной почты\\"
|
||||
},
|
||||
\\"form-ajax_jqval_cap[2]\\": {
|
||||
required: \\"Поле \\\'Тема\\\' обязательно к заполнению\\",
|
||||
minlength: \\"Название темы должно содержать не менее 4 символов\\"
|
||||
},
|
||||
\\"form-ajax_jqval_cap[6]\\": {
|
||||
required: \\"Поле \\\'Никнейм\\\' обязательно к заполнению\\",
|
||||
minlength: \\"Никнейм не может быть менее 2 символов\\"
|
||||
},
|
||||
\\"form-ajax_jqval_cap[7]\\": {
|
||||
required: \\"Поле \\\'Текст сообщения\\\' обязательно к заполнению\\",
|
||||
maxlength: \\"Текст сообщения не может превышать 4 символов\\"
|
||||
},
|
||||
\\"form-ajax_jqval_cap[8]\\": \\"Чекбокс должен быть активным\\"
|
||||
},
|
||||
errorElement: \\"em\\",
|
||||
errorPlacement: function ( error, element ) {
|
||||
// Add the help-block class to the error element
|
||||
error.addClass( \\"help-block\\" );
|
||||
|
||||
if ( element.prop( \\"type\\" ) === \\"checkbox\\" ) {
|
||||
error.insertAfter( element.parent( \\"label\\" ) );
|
||||
} else {
|
||||
error.insertAfter( element );
|
||||
}
|
||||
},
|
||||
highlight: function ( element, errorClass, validClass ) {
|
||||
$( element ).parents( \\".col-sm-5\\" ).addClass( \\"has-error\\" ).removeClass( \\"has-success\\" );
|
||||
},
|
||||
unhighlight: function (element, errorClass, validClass) {
|
||||
$( element ).parents( \\".col-sm-5\\" ).addClass( \\"has-success\\" ).removeClass( \\"has-error\\" );
|
||||
},
|
||||
submitHandler: function(form) {
|
||||
if ($(\\".app_err_msg\\").length) {$(\\\'.app_err_msg\\\').remove();}
|
||||
grecaptcha.ready(function() {
|
||||
grecaptcha.execute(\\\'Публичный ключ reCAPTCHA v3\\\', {action: \\\'submit_form\\\'})
|
||||
.then(function(token) {
|
||||
$.ajax({
|
||||
type: \\\'post\\\',
|
||||
url: \\\'[tag:path]inc/recaptcha3srvcode.php\\\',
|
||||
data: {token: token},
|
||||
dataType: \\\'json\\\'
|
||||
}).done(function(data) {
|
||||
if (data.score < 0.5)
|
||||
{$(\\\'#form-[tag:formalias]\\\').append(\\\'<div class=\\"app_err_msg alert alert-danger text-center\\" role=\\"alert\\"><h4>Вы не прошли валидацию защитой от спама reCAPTCHA</h4></div>\\\');
|
||||
$(\\\'button[type=submit]\\\',form).prop(\\\'disabled\\\',true);
|
||||
}
|
||||
else {
|
||||
$(\\\'#hidden_fld_[tag:formalias]\\\').val(\\\'\\\');
|
||||
$(\\\'#hidden_fld_[tag:formalias]\\\').val(data.score);
|
||||
$(\\\'#form-[tag:formalias]\\\').ajaxSubmit({
|
||||
url: \\\'[tag:path]index.php?module=contactsnew\\\',
|
||||
data: {
|
||||
alias_id: \\\'[tag:formalias]\\\'
|
||||
},
|
||||
success: function (data) {
|
||||
$(\\\'#form-[tag:formalias]\\\').after(data).remove();
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>'
|
||||
);
|
||||
|
||||
$demo = array(
|
||||
'alias' => 'ajax_jqval_cap',
|
||||
'title' => 'Демо форма с Ajax, jQuery Validation Plugin и reCAPTCHA v3',
|
||||
'mail_set' => array(
|
||||
'from_name' => '',
|
||||
'from_email' => '',
|
||||
'subject_tpl' => '[tag:fld:subject]',
|
||||
'receivers' => array(
|
||||
array(
|
||||
'email' => '',
|
||||
'name' => ''
|
||||
)
|
||||
),
|
||||
'format' => 'text',
|
||||
),
|
||||
'rubheader' => '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
||||
<script src="https://www.recaptcha.net/recaptcha/api.js?render=Публичный ключ reCAPTCHA v3"></script>
|
||||
<script type="text/javascript" src="[tag:path]modules/contactsnew/js/jquery.form.min.js"></script>
|
||||
<script type="text/javascript" src="[tag:path]modules/contactsnew/js/jquery.validate.min.js"></script>
|
||||
',
|
||||
'form_tpl' => $form_tpl[$_REQUEST['demo']],
|
||||
'mail_tpl' => '[tag:easymail]',
|
||||
'finish_tpl' => '<div class="alert alert-success">
|
||||
Форма успешно отправлена! <a style="cursor: pointer; text-decoration: none;" onclick="window.location.href=this">Обновить страницу</a>
|
||||
</div>
|
||||
',
|
||||
'code_onsubmit' => '',
|
||||
'code_onvalidate' => '',
|
||||
'code_onsend' => '',
|
||||
'fields' => array(
|
||||
1 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'email',
|
||||
'active' => 1,
|
||||
'type' => 'input',
|
||||
'main' => 1,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="fld[[tag:id]]" class="form-control" placeholder="[tag:title]"',
|
||||
'tpl' => '<div class="form-group">
|
||||
<label class="col-sm-4 control-label" for="fld[[tag:id]]">[tag:title]</label>
|
||||
<div class="col-sm-5">
|
||||
[tag:fld]
|
||||
</div>
|
||||
</div>'
|
||||
),
|
||||
2 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'subject',
|
||||
'active' => 1,
|
||||
'type' => 'input',
|
||||
'main' => 1,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="fld[[tag:id]]" class="form-control" placeholder="[tag:title]"',
|
||||
'tpl' => '<div class="form-group">
|
||||
<label class="col-sm-4 control-label" for="fld[[tag:id]]">[tag:title]</label>
|
||||
<div class="col-sm-5">
|
||||
[tag:fld]
|
||||
</div>
|
||||
</div>'
|
||||
),
|
||||
3 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'receivers',
|
||||
'active' => 0,
|
||||
'type' => 'select',
|
||||
'main' => 1,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => 0,
|
||||
'attributes' => '',
|
||||
'tpl' => ''
|
||||
),
|
||||
4 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'copy',
|
||||
'active' => 0,
|
||||
'type' => 'checkbox',
|
||||
'main' => 1,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => 1,
|
||||
'attributes' => '',
|
||||
'tpl' => ''
|
||||
),
|
||||
5 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'captcha',
|
||||
'active' => 0,
|
||||
'type' => 'input',
|
||||
'main' => 1,
|
||||
'setting' => '',
|
||||
'required' => 1,
|
||||
'defaultval' => '',
|
||||
'attributes' => '',
|
||||
'tpl' => ''
|
||||
),
|
||||
6 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'Никнейм',
|
||||
'active' => 1,
|
||||
'type' => 'input',
|
||||
'main' => 0,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="fld[[tag:id]]" class="form-control" placeholder="[tag:title]"',
|
||||
'tpl' => '<div class="form-group">
|
||||
<label class="col-sm-4 control-label" for="fld[[tag:id]]">[tag:title]</label>
|
||||
<div class="col-sm-5">
|
||||
[tag:fld]
|
||||
</div>
|
||||
</div>'
|
||||
),
|
||||
7 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'Текст сообщения',
|
||||
'active' => 1,
|
||||
'type' => 'textarea',
|
||||
'main' => 0,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="fld[[tag:id]]" class="form-control" placeholder="[tag:title]"',
|
||||
'tpl' => '<div class="form-group">
|
||||
<label class="col-sm-4 control-label" for="fld[[tag:id]]">[tag:title]</label>
|
||||
<div class="col-sm-5">
|
||||
[tag:fld]
|
||||
</div>
|
||||
</div>'
|
||||
),
|
||||
8 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'Работа чекбокса',
|
||||
'active' => 1,
|
||||
'type' => 'checkbox',
|
||||
'main' => 0,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="fld[[tag:id]]" value="agree"',
|
||||
'tpl' => '<div class="form-group">
|
||||
<div class="col-sm-5 col-sm-offset-4">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
[tag:fld]Пример валидации чекбокса
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>'
|
||||
),
|
||||
9 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'Оценка отправителя формы сервисом reCAPTCHA',
|
||||
'active' => 1,
|
||||
'type' => 'input',
|
||||
'main' => 0,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="hidden_fld_[tag:formalias]" type="hidden"',
|
||||
'tpl' => '[tag:fld]'
|
||||
)
|
||||
|
||||
|
||||
)
|
||||
);
|
@ -1,303 +0,0 @@
|
||||
<?php
|
||||
$form_tpl = array(
|
||||
'jqval_cap' =>
|
||||
'<div id=\\"[tag:formalias]\\" class=\\"col-sm-8 col-sm-offset-2\\">
|
||||
<div class=\\"page-header\\">
|
||||
<div class=\\"alert alert-info text-center\\" role=\\"alert\\">
|
||||
<h4>Демо интеграции в Модуль Контакты New v1.2.5<br><br> <a href=\\"https://jqueryvalidation.org/\\">jQuery Validation Plugin</a> и <a href=\\"https://developers.google.com/recaptcha/docs/v3\\">reCAPTCHA v3</a></h4>
|
||||
</div>
|
||||
<div class=\\"alert alert-warning alert-dismissable\\">
|
||||
Если не работает валидация (отправляется пустая форма без проверки и т.п.) убедитесь, что библиотека jQuery (jquery.min.js - по умолчанию подключается модулем) подключена на странице только один раз! и расположена в секции <head>
|
||||
<button type=\\"button\\" class=\\"close\\" data-dismiss=\\"alert\\" aria-hidden=\\"true\\">×</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class=\\"panel panel-default\\">
|
||||
<div class=\\"panel-heading\\">
|
||||
<h3 class=\\"panel-title\\">[tag:formtitle]</h3>
|
||||
</div>
|
||||
<div class=\\"panel-body\\">
|
||||
<form id=\\"form-[tag:formalias]\\" method=\\"post\\" enctype=\\"multipart/form-data\\" class=\\"form-horizontal\\" role=\\"form\\" action=\\"\\">
|
||||
[tag:fld:email]
|
||||
[tag:fld:subject]
|
||||
[tag:fld:6]
|
||||
[tag:fld:7]
|
||||
[tag:fld:8]
|
||||
[tag:fld:9]
|
||||
<div class=\\"form-group\\">
|
||||
<div id=\\"addbtn-[tag:formalias]\\" class=\\"col-sm-offset-4 col-sm-4\\">
|
||||
<noscript>включите js в браузере</noscript>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type=\\"text/javascript\\">
|
||||
|
||||
$( document ).ready( function () {
|
||||
$(\\"#addbtn-[tag:formalias]\\").append(\\\'<button type=\\"submit\\" class=\\"btn btn-primary\\">Отправить</button>\\\');
|
||||
$( \\"#form-[tag:formalias]\\" ).validate( {
|
||||
rules: {
|
||||
\\"form-jqval_cap[1]\\": {
|
||||
required: true,
|
||||
email: true
|
||||
},
|
||||
\\"form-jqval_cap[2]\\": {
|
||||
required: true,
|
||||
minlength: 4
|
||||
},
|
||||
\\"form-jqval_cap[6]\\": {
|
||||
required: true,
|
||||
minlength: 2
|
||||
},
|
||||
\\"form-jqval_cap[7]\\": {
|
||||
required: true,
|
||||
maxlength: 4
|
||||
},
|
||||
\\"form-jqval_cap[8]\\": \\"required\\"
|
||||
},
|
||||
messages: {
|
||||
\\"form-jqval_cap[1]\\": {
|
||||
required: \\"Поле \\\'Email\\\' обязательно к заполнению\\",
|
||||
email: \\"Пожалуйста, введите действительный адрес электронной почты\\"
|
||||
},
|
||||
\\"form-jqval_cap[2]\\": {
|
||||
required: \\"Поле \\\'Тема\\\' обязательно к заполнению\\",
|
||||
minlength: \\"Название темы должно содержать не менее 4 символов\\"
|
||||
},
|
||||
\\"form-jqval_cap[6]\\": {
|
||||
required: \\"Поле \\\'Никнейм\\\' обязательно к заполнению\\",
|
||||
minlength: \\"Никнейм не может быть менее 2 символов\\"
|
||||
},
|
||||
\\"form-jqval_cap[7]\\": {
|
||||
required: \\"Поле \\\'Текст сообщения\\\' обязательно к заполнению\\",
|
||||
maxlength: \\"Текст сообщения не может превышать 4 символов\\"
|
||||
},
|
||||
\\"form-jqval_cap[8]\\": \\"Чекбокс должен быть активным\\"
|
||||
},
|
||||
errorElement: \\"em\\",
|
||||
errorPlacement: function ( error, element ) {
|
||||
// Add the help-block class to the error element
|
||||
error.addClass( \\"help-block\\" );
|
||||
|
||||
if ( element.prop( \\"type\\" ) === \\"checkbox\\" ) {
|
||||
error.insertAfter( element.parent( \\"label\\" ) );
|
||||
} else {
|
||||
error.insertAfter( element );
|
||||
}
|
||||
},
|
||||
highlight: function ( element, errorClass, validClass ) {
|
||||
$( element ).parents( \\".col-sm-5\\" ).addClass( \\"has-error\\" ).removeClass( \\"has-success\\" );
|
||||
},
|
||||
unhighlight: function (element, errorClass, validClass) {
|
||||
$( element ).parents( \\".col-sm-5\\" ).addClass( \\"has-success\\" ).removeClass( \\"has-error\\" );
|
||||
},
|
||||
submitHandler: function(form) {
|
||||
if ($(\\".app_err_msg\\").length) {$(\\\'.app_err_msg\\\').remove();}
|
||||
grecaptcha.ready(function() {
|
||||
grecaptcha.execute(\\\'Публичный ключ reCAPTCHA v3\\\', {action: \\\'submit_form\\\'})
|
||||
.then(function(token) {
|
||||
$.ajax({
|
||||
type: \\\'post\\\',
|
||||
url: \\\'[tag:path]inc/recaptcha3srvcode.php\\\',
|
||||
data: {token: token},
|
||||
dataType: \\\'json\\\'
|
||||
}).done(function(data) {
|
||||
if (data.score < 0.5)
|
||||
{$(\\\'#form-[tag:formalias]\\\').append(\\\'<div class=\\"app_err_msg alert alert-danger text-center\\" role=\\"alert\\"><h4>Вы не прошли валидацию защитой от спама reCAPTCHA</h4></div>\\\');
|
||||
$(\\\'button[type=submit]\\\',form).prop(\\\'disabled\\\',true);
|
||||
}
|
||||
else {
|
||||
$(\\\'#hidden_fld_[tag:formalias]\\\').val(\\\'\\\');
|
||||
$(\\\'#hidden_fld_[tag:formalias]\\\').val(data.score);
|
||||
form.submit();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>'
|
||||
);
|
||||
|
||||
$demo = array(
|
||||
'alias' => 'jqval_cap',
|
||||
'title' => 'Демо форма с jQuery Validation Plugin и reCAPTCHA v3',
|
||||
'mail_set' => array(
|
||||
'from_name' => '',
|
||||
'from_email' => '',
|
||||
'subject_tpl' => '[tag:fld:subject]',
|
||||
'receivers' => array(
|
||||
array(
|
||||
'email' => '',
|
||||
'name' => ''
|
||||
)
|
||||
),
|
||||
'format' => 'text',
|
||||
),
|
||||
'rubheader' => '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
||||
<script src="https://www.recaptcha.net/recaptcha/api.js?render=Публичный ключ reCAPTCHA v3"></script>
|
||||
<script type="text/javascript" src="[tag:path]modules/contactsnew/js/jquery.validate.min.js"></script>
|
||||
',
|
||||
'form_tpl' => $form_tpl[$_REQUEST['demo']],
|
||||
'mail_tpl' => '[tag:easymail]',
|
||||
'finish_tpl' => '<div class="alert alert-success">
|
||||
Форма успешно отправлена! <a style="cursor: pointer; text-decoration: none;" onclick="window.location.href=this">Обновить страницу</a>
|
||||
</div>
|
||||
',
|
||||
'code_onsubmit' => '',
|
||||
'code_onvalidate' => '',
|
||||
'code_onsend' => '',
|
||||
'fields' => array(
|
||||
1 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'email',
|
||||
'active' => 1,
|
||||
'type' => 'input',
|
||||
'main' => 1,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="fld[[tag:id]]" class="form-control" placeholder="[tag:title]"',
|
||||
'tpl' => '<div class="form-group">
|
||||
<label class="col-sm-4 control-label" for="fld[[tag:id]]">[tag:title]</label>
|
||||
<div class="col-sm-5">
|
||||
[tag:fld]
|
||||
</div>
|
||||
</div>'
|
||||
),
|
||||
2 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'subject',
|
||||
'active' => 1,
|
||||
'type' => 'input',
|
||||
'main' => 1,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="fld[[tag:id]]" class="form-control" placeholder="[tag:title]"',
|
||||
'tpl' => '<div class="form-group">
|
||||
<label class="col-sm-4 control-label" for="fld[[tag:id]]">[tag:title]</label>
|
||||
<div class="col-sm-5">
|
||||
[tag:fld]
|
||||
</div>
|
||||
</div>'
|
||||
),
|
||||
3 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'receivers',
|
||||
'active' => 0,
|
||||
'type' => 'select',
|
||||
'main' => 1,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => 0,
|
||||
'attributes' => '',
|
||||
'tpl' => ''
|
||||
),
|
||||
4 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'copy',
|
||||
'active' => 0,
|
||||
'type' => 'checkbox',
|
||||
'main' => 1,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => 1,
|
||||
'attributes' => '',
|
||||
'tpl' => ''
|
||||
),
|
||||
5 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'captcha',
|
||||
'active' => 0,
|
||||
'type' => 'input',
|
||||
'main' => 1,
|
||||
'setting' => '',
|
||||
'required' => 1,
|
||||
'defaultval' => '',
|
||||
'attributes' => '',
|
||||
'tpl' => ''
|
||||
),
|
||||
6 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'Никнейм',
|
||||
'active' => 1,
|
||||
'type' => 'input',
|
||||
'main' => 0,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="fld[[tag:id]]" class="form-control" placeholder="[tag:title]"',
|
||||
'tpl' => '<div class="form-group">
|
||||
<label class="col-sm-4 control-label" for="fld[[tag:id]]">[tag:title]</label>
|
||||
<div class="col-sm-5">
|
||||
[tag:fld]
|
||||
</div>
|
||||
</div>'
|
||||
),
|
||||
7 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'Текст сообщения',
|
||||
'active' => 1,
|
||||
'type' => 'textarea',
|
||||
'main' => 0,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="fld[[tag:id]]" class="form-control" placeholder="[tag:title]"',
|
||||
'tpl' => '<div class="form-group">
|
||||
<label class="col-sm-4 control-label" for="fld[[tag:id]]">[tag:title]</label>
|
||||
<div class="col-sm-5">
|
||||
[tag:fld]
|
||||
</div>
|
||||
</div>'
|
||||
),
|
||||
8 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'Работа чекбокса',
|
||||
'active' => 1,
|
||||
'type' => 'checkbox',
|
||||
'main' => 0,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="fld[[tag:id]]" value="agree"',
|
||||
'tpl' => '<div class="form-group">
|
||||
<div class="col-sm-5 col-sm-offset-4">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
[tag:fld]Пример валидации чекбокса
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>'
|
||||
),
|
||||
9 => array(
|
||||
'new' => true,
|
||||
'form_id' => $fid,
|
||||
'title' => 'Оценка отправителя формы сервисом reCAPTCHA',
|
||||
'active' => 1,
|
||||
'type' => 'input',
|
||||
'main' => 0,
|
||||
'setting' => '',
|
||||
'required' => 0,
|
||||
'defaultval' => '',
|
||||
'attributes' => 'id="hidden_fld_[tag:formalias]" type="hidden"',
|
||||
'tpl' => '[tag:fld]'
|
||||
)
|
||||
|
||||
|
||||
)
|
||||
);
|
23
contactsnew/js/jquery.form.min.js
vendored
23
contactsnew/js/jquery.form.min.js
vendored
File diff suppressed because one or more lines are too long
4
contactsnew/js/jquery.validate.min.js
vendored
4
contactsnew/js/jquery.validate.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,187 +0,0 @@
|
||||
contacts = "Контакти New"
|
||||
mod_info = "В дадения раздел са всички контактни форми в системата. тук Вие може да добавите нова контактна форма. както и да редактирате вече съществуващи."
|
||||
forms = "Списък форми"
|
||||
form = "Форма"
|
||||
noforms = "В модула няма добавени форми"
|
||||
form_new = "Добавяне на форма"
|
||||
form_deleting = "Сигурни ли сте, че желаете да изтриете формата?"
|
||||
|
||||
form_creating = "Добавяне на нова форма"
|
||||
form_notfound = "тази форма не е намерена"
|
||||
form_editing = "Редактиране на форма"
|
||||
main_sets = "Основни параметри"
|
||||
title = "Наименование"
|
||||
alias = "Алиас"
|
||||
protection = "Защита от повторно изпращане"
|
||||
protect_i = "Препоръчително за форми без Ajax.<br/><br/>Ако защитата е включена, на финалната страница (след успешното изпращане на формата) при обновяванто на страницата потребителя няма да види съобщението "Подтвърдете повторното изпращане на данните...". Вместо това ще се зареди наново празна форма."
|
||||
demo = "Създаване на примерна форма"
|
||||
demo_noajax = "без Ajax"
|
||||
demo_ajax = "Ajax, сървъра връща кода на формата"
|
||||
demo_ajax_o = "Ajax, сървъра връща резултатът от валидацията"
|
||||
alias_i = "Опционално. Алиасът на формата позволява да се използва леко запомнящ се таг [mod_contact:alias] вместо [mod_contact:id]. Алиасът не трябва да бъде число, може да съдържа само цифри, латински букви, долна черта и дължина не повече от 20 символа и да е уникално в пределите на модула"
|
||||
alias_accept = "Този алиас може да се използва"
|
||||
alias_er_syn = "Грешен алиас!<br> Алиасът не може да бъде число, може да съдържа само цифри, латински букви, долна черта и дължина не повече от 20 символа"
|
||||
alias_er_exists = "Грешен алиас!<br> Този алиас вече е зададен на друга контактна форма"
|
||||
recs = "Получатели"
|
||||
name = "Име"
|
||||
fields_sets = "Настройки на полетата"
|
||||
active_i = "Активиране на поле (ако чекбокса е празен, тагът в шаблона ще бъде заменен с празен ред)"
|
||||
type = "Тип"
|
||||
doc = "Документ"
|
||||
multidoc = "Документ (multi)"
|
||||
other_input = "Друг input"
|
||||
other_input_i = "Атрибут type"
|
||||
pattern_i = "Шаблон за preg_match<br/> <em>Пример:</em> <strong>/^[A-Za-z0-9]+$/ie</strong><br/><br/> Или филтър за filter_var<br/> <em>Пример:</em> <strong>FILTER_VALIDATE_EMAIL</strong>"
|
||||
pattern = "Валидация"
|
||||
defaultval = "По подразбиране"
|
||||
sets = "Параметри"
|
||||
attributes = "Атрибути на тега поле"
|
||||
field_add = "Добави поле"
|
||||
form_tpl = "Шаблон на формата"
|
||||
mail_tpl = "Шаблон на писмо"
|
||||
finish_tpl = "Шаблон на страница след изпращане на формата"
|
||||
conditions = "Условия"
|
||||
rubheader = "Скриптове и стилове, необходими за оформяне и функциониране на формата"
|
||||
rubheader_info = "Избягвайте дублиране на скриптовете в модула и шаблона"
|
||||
tag = "Таг"
|
||||
field_creating = "Добавяне на поле..."
|
||||
field_new_error = "Моля, въведете наименование на полето!"
|
||||
type_i = "За <strong>input</strong> в атрибутите може да се укаже свой <strong>type</strong> (по подразбиране се поставя <strong>text</strong>)"
|
||||
fld_tpl_toggle = "Покажи/скрий шаблона за извеждане на полето"
|
||||
field_tpl = "Шаблон на полето"
|
||||
fld_del = "Сигурни ли сте, че желаете да изтриете това поле?"
|
||||
fld_deleting = "Изтриване на поле..."
|
||||
required = "Задължително поле"
|
||||
setting_empty = "Първо настройте опциите за избор (вляво)"
|
||||
yes = "да"
|
||||
no = "не"
|
||||
fld_i = "Полето работи само ако тагът в поставен в шаблон и вляво е маркирано полето активация"
|
||||
copy_fld_i = "<strong>Отправка копии </strong> будет выполнена, даже если в значении по умолчанию стоит галка, а тег в шаблон не вставлен / поле не активировано"
|
||||
select_req_i = "Селект будет считаться не заполненным, если выбран первый вариант"
|
||||
file_size = "Макс. размер, мб"
|
||||
file_size2 = "Ограничение на размера на файла, мб"
|
||||
|
||||
create = "Добави"
|
||||
edit = "Редактиране"
|
||||
copy = "Копиране"
|
||||
delete = "Изтриване"
|
||||
actions = "Действия"
|
||||
saved = "Съхранено"
|
||||
notsaved = "Възникна грешка по време на съхранението"
|
||||
created = "Формата е успешно записана"
|
||||
copied = "Формата е успешно копирана и записана<br>Моля, редактирайте наименованието и алиаса"
|
||||
deleting = "Изтриване..."
|
||||
add_refresh = "Добави и обнови"
|
||||
save = "Запиши"
|
||||
return_to_forms = "Върни се към списъка с контактни форми"
|
||||
refresh = "Обнови"
|
||||
mail_set = "Настройки на писмата"
|
||||
format = "Формат"
|
||||
text = "Текст"
|
||||
from_email = "Имейл на изпращача"
|
||||
from_name = "Име на изпращача"
|
||||
recs_main = "Главни получатели"
|
||||
recs_main_i = "Тези адресати ще получават писмото задължително"
|
||||
subject_tpl = "Шаблон на темата"
|
||||
|
||||
email_accept = "Правилен имейл"
|
||||
email_error = "Грешен синтаксис на имейл!"
|
||||
|
||||
tag_fld = "Таг за поле, полето се поставя с използване на своя шаблон"
|
||||
tag_fld_mail = "Значение на полето, въведено от потребителя"
|
||||
tag_fld_tpl = "Таг за поле, полето се поставя с атрибутите си"
|
||||
tag_attr = "Вмъкни основни атрибити"
|
||||
tag_id = "Id на полето"
|
||||
tag_title = "Таг за наименование на поле"
|
||||
tag_valid = "Извеждано съдържание, ако полето съответства на зададения шаблон"
|
||||
tag_invalid = "Извеждано съдържание, ако полето не съответства на зададения шаблон"
|
||||
tag_nempty = "Извеждано съдържание, ако полето е маркирано като задължително и потребителя е въвел данни"
|
||||
tag_empty = "Извеждано съдържание, ако полето е маркирано като задължително и потребителя не е въвел данни"
|
||||
tag_path = "Път към корена на инсталацията"
|
||||
tag_media = "Път към папката с шаблона<br><br><i>Пример:</i> [tag:mediapath]images/logo.gif"
|
||||
tag_css = "Свива няколко css-файла в един. Връща път.<br><b>FFF</b> - имена на файлове, разделени с запетая<br><b>P</b> - път към папката с файлове, назадължителен. По подразбиране - [tag:mediapath]css/<br><br><i>Пример:</i> href="[tag:css:reset.css,style.css]""
|
||||
tag_js = "Свива няколко js-файла в един. Връща път.<br><b>FFF</b> - имена на файлове, разделени с запетая<br><b>P</b> - път към папката с файлове, назадължителен. По подразбиране - [tag:mediapath]js/<br><br><i>Пример:</i> href="[tag:js:common.js,main.js]""
|
||||
tag_formtitle = "Наименование на формата"
|
||||
tag_formalias = "Алиас на формата (или id, ако не е въведен алиас)"
|
||||
tag_url = "URL на текущата страница"
|
||||
tag_docid = "ID на текущия документ"
|
||||
tag_hide = "Таг, позволяващ скрит контент за определени групи потребители<br><br><strong>Х</strong> - номер на групата<br><strong>TEXT</strong> - текст, ако достъпа е забранен<br><br><em>Пример:</em> [tag:hide:2:Тази форма не е за вас!][/tag:hide]"
|
||||
tag_uemail = "Имейл на потребителя (въз основата на данните от профила, а не на формата!)"
|
||||
tag_uname = "Име и Фамилия на потребителя (въз основа на данните от профила)"
|
||||
tag_ufname = "Име на потребителя (въз основа на данните от профила)"
|
||||
tag_ulname = "Фамилия на потребителя (въз основа на данните от профила)"
|
||||
tag_ulogin = "Потребителско име (въз основа на данните от профила)"
|
||||
tag_if_fld = "Условие за значението на полето. В тага, използвайте стандартните конструкции за сравнение на PHP/JS<br><br><em>Пример:</em><br>[tag:if_fld:15 == '1']<br>...<br>[tag:elseif_fld:15 > '2']<br>...<br>[tag:else_fld]<br>...<br>[/tag:if_fld]"
|
||||
tag_f_valid = "Извеждано съдържание, ако всички полета са преминали валидацията"
|
||||
tag_f_invalid = "Извеждано съдържание, ако поне едно поле не преминало валидацията"
|
||||
tag_easymail = "Генерива списък на всички значения на полетата, участващи в шаблона на формата ( вместо ръчно да се описват всички тагове)"
|
||||
tag_if_user = "Извежда съдържанието в писмото на потребителя, попълнил формата"
|
||||
tag_if_admin = "Извежда съдържанието в писмото за получателя-админ ("главен получател" или получател от поле "избор на получателр")"
|
||||
tag_fld_subject = "Значение на полето <strong>Тема</strong>"
|
||||
tag_fld_email = "Значение на полето <strong>Имейл</strong>"
|
||||
tag_sitename = "Наименование на сайта"
|
||||
tag_sitehost = "Адрес на сайта"
|
||||
info_php_tags = "Достъпни php и тагове"
|
||||
|
||||
code = "Изпълним код"
|
||||
code_info = "Данните на формата (валидация, шаблони, получатели и т.д.) се пазят е променливата на класа $this->form."
|
||||
code_onsubmit = "Код, изпълняван след изпращането на формата (преди валидацията)"
|
||||
code_onvalidate = "Код, изпълняван след валидацията на формата"
|
||||
code_onsend = "Код, изпълняван след изпращането на писмата"
|
||||
|
||||
mfld_email = "Имейл"
|
||||
mfld_subject = "Тема"
|
||||
mfld_receivers = "Избор на получатели"
|
||||
mfld_captcha = "Капча"
|
||||
mfld_copy = "Изпращане на копие"
|
||||
|
||||
tag_mail_empty = "не е попълнено"
|
||||
|
||||
history = "История"
|
||||
date = "Дата"
|
||||
author = "Автор"
|
||||
status = "Статус"
|
||||
stat_new = "Ново"
|
||||
list_new = "Нови"
|
||||
stat_viewed = "Видяно"
|
||||
list_viewed = "Видени"
|
||||
stat_replied = "Отговорено"
|
||||
list_replied = "Отговорени"
|
||||
request = "Обръщение"
|
||||
response = "Отговор"
|
||||
responses = "Отговори"
|
||||
write_response = "Напиши отговор"
|
||||
body = "Тяло на писмото"
|
||||
save_draft = "Запази черновата"
|
||||
send = "Изпрати отговор"
|
||||
return_dialogs = "Върни се към списъка"
|
||||
profile_look = "Премини към профила"
|
||||
write_email = "Напиши писмо"
|
||||
from = "от"
|
||||
look = "Преглед"
|
||||
set_replied = "Маркирай като отговорено"
|
||||
marked_replied = "Маркирано като отговорено"
|
||||
attach = "Прикачени"
|
||||
|
||||
respose_sent = "Отговорът е успешно изпратен"
|
||||
|
||||
cn_actions = "Действия"
|
||||
cn_del_mail = "Сигурни ли сте, че желаете да изтриете този e-mail?"
|
||||
cn_not_mail = "В тази форма няма писма ..."
|
||||
cn_view = "Преглед на историята"
|
||||
cn_status = "Статус на писмата"
|
||||
cn_alias_not = " -- "
|
||||
cn_count_messages = "писма: "
|
||||
cn_copy_to_clipboard = "Копирай в буфера"
|
||||
cn_return_list_form = "Връщане към списъка"
|
||||
cn_mod_info = "Важно: модулът използва метода за изпращане на писма, установен в системните настройки "
|
||||
cn_mod_info_a = "Настройки поща"
|
||||
info_attr_name = "Значение атрибута name для этого поля:"
|
||||
public_key_recaptcha_v3 = "Публичный ключ reCAPTCHA v3"
|
||||
title_pub_key_recap = "Открытый ключ reCAPTCHA v3 указанный в системных настройках, используется на стороне клиента (например в js скриптах)"
|
||||
found_key_recap_v3 = "В системных настройках обнаружены и будут использоваться модулем API ключи reCAPTCHA v3"
|
||||
notfound_key_recap_v3_1 ="API ключи reCAPTCHA v3 не обнаружены."
|
||||
notfound_key_recap_v3_2 =" Вы можете установить их в разделе "
|
||||
notfound_key_recap_v3_3 ="Системные настройки"
|
||||
demo_jqval_cap = "Без Ajax, с jQuery Validation Plugin и reCAPTCHA v3"
|
||||
demo_ajax_jqval_cap = "Ajax, с jQuery Validation Plugin и reCAPTCHA v3"
|
@ -1,187 +0,0 @@
|
||||
contacts = "Контакты New"
|
||||
mod_info = "В данном разделе приведен список всех контактных форм. Вы можете, добавить новую форму или отредактировать существующую."
|
||||
forms = "Список форм"
|
||||
form = "Форма"
|
||||
noforms = "В модуле пока нет ни одной контактной формы"
|
||||
form_new = "Создать форму"
|
||||
form_deleting = "Вы уверены, что хотите удалить форму?"
|
||||
|
||||
form_creating = "Создание новой формы"
|
||||
form_notfound = "указанная форма не найдена"
|
||||
form_editing = "Редактирование формы"
|
||||
main_sets = "Основные параметры"
|
||||
title = "Название"
|
||||
alias = "Алиас"
|
||||
protection = "Защита от повторной отправки"
|
||||
protect_i = "Рекомендуется включать для форм без Ajax.<br/><br/>Если защита включена, на финишной странице (после успешной отправки формы) при обновлении страницы пользователь не увидит сообщения "Подтвердите повторную отправку данных...". Вместо этого загрузится заново чистая форма."
|
||||
demo = "Создать пример формы"
|
||||
demo_noajax = "без Ajax"
|
||||
demo_ajax = "Ajax, сервер возвращает код формы"
|
||||
demo_ajax_o = "Ajax, сервер возвращает результат валидации"
|
||||
alias_i = "Опционально. Алиас формы позволяет использовать легко запоминающийся тег [mod_contact:alias] вместо [mod_contact:id]. Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание, иметь длину не более 20 символов и быть уникальным в пределах модуля"
|
||||
alias_accept = "Этот алиас можно использовать"
|
||||
alias_er_syn = "Неверный алиас!<br> Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание и иметь длину не более 20 символов"
|
||||
alias_er_exists = "Неверный алиас!<br> Данный алиас уже привязан к другой контактной форме"
|
||||
recs = "Получатели"
|
||||
name = "Имя"
|
||||
fields_sets = "Настройки полей"
|
||||
active_i = "Активировать поле (если чекбокс пустой, тег в шаблоне будет заменён на пустую строку)"
|
||||
type = "Тип"
|
||||
doc = "Документ"
|
||||
multidoc = "Документ (multi)"
|
||||
other_input = "Другой input"
|
||||
other_input_i = "Аттрибут type"
|
||||
pattern_i = "Шаблон для preg_match<br/> <em>Пример:</em> <strong>/^[A-Za-z0-9]+$/ie</strong><br/><br/> Либо фильтр для filter_var<br/> <em>Пример:</em> <strong>FILTER_VALIDATE_EMAIL</strong>"
|
||||
pattern = "Валидация"
|
||||
defaultval = "По умолчанию"
|
||||
sets = "Параметры"
|
||||
attributes = "Аттрибуты тега поля"
|
||||
field_add = "Добавить поле"
|
||||
form_tpl = "Шаблон формы"
|
||||
mail_tpl = "Шаблон письма"
|
||||
finish_tpl = "Шаблон страницы после отправки формы"
|
||||
conditions = "Условия"
|
||||
rubheader = "Скрипты и стили, необходимые для оформления и функционирования формы"
|
||||
rubheader_info = "Избегайте дублирования скриптов в модуле и шаблоне"
|
||||
tag = "Тег"
|
||||
field_creating = "Добавление поля..."
|
||||
field_new_error = "Укажите название поля!"
|
||||
type_i = "Для <strong>input</strong> в аттрибутах можно указать свой <strong>type</strong> (по умолчанию подставится <strong>text</strong>)"
|
||||
fld_tpl_toggle = "Показать/свернуть шаблон вывода поля"
|
||||
field_tpl = "Шаблон поля"
|
||||
fld_del = "Вы уверены, что хотите удалить это поле?"
|
||||
fld_deleting = "Удаление поля..."
|
||||
required = "Обязательное поле"
|
||||
setting_empty = "Сначала настройте опции для выбора (слева)"
|
||||
yes = "да"
|
||||
no = "нет"
|
||||
fld_i = "Поле работает только если его тег вставлен в шаблон и слева стоит галочка активации"
|
||||
copy_fld_i = "<strong>Отправка копии </strong> будет выполнена, даже если в значении по умолчанию стоит галка, а тег в шаблон не вставлен / поле не активировано"
|
||||
select_req_i = "Селект будет считаться не заполненным, если выбран первый вариант"
|
||||
file_size = "Макс. размер, мб"
|
||||
file_size2 = "Ограничение размера файла, мб"
|
||||
|
||||
create = "Создать"
|
||||
edit = "Редактировать"
|
||||
copy = "Копировать"
|
||||
delete = "Удалить"
|
||||
actions = "Действия"
|
||||
saved = "Сохранено"
|
||||
notsaved = "Во время сохранения произошла ошибка"
|
||||
created = "Форма успешно создана"
|
||||
copied = "Форма успешно скопирована и сохранена<br>Отредактируйте название и алиас"
|
||||
deleting = "Удаление..."
|
||||
add_refresh = "Добавить и обновить"
|
||||
save = "Сохранить"
|
||||
return_to_forms = "Вернуться к списку контактных форм"
|
||||
refresh = "Обновить"
|
||||
mail_set = "Настройки письма"
|
||||
format = "Формат"
|
||||
text = "Текст"
|
||||
from_email = "Email отправителя"
|
||||
from_name = "Имя отправителя"
|
||||
recs_main = "Главные получатели"
|
||||
recs_main_i = "Эти адресаты получат письмо в любом случае"
|
||||
subject_tpl = "Шаблон темы"
|
||||
|
||||
email_accept = "Правильный Email"
|
||||
email_error = "Неверный синтаксис Email-а!"
|
||||
|
||||
tag_fld = "Тег поля, поле подставляется с использованием своего шаблона"
|
||||
tag_fld_mail = "Значение поля, введённое пользователем"
|
||||
tag_fld_tpl = "Тег поля, поле подставляется с подстановкой аттрибутов"
|
||||
tag_attr = "Вставить основные аттрибуты"
|
||||
tag_id = "Id поля"
|
||||
tag_title = "Тег названия поля"
|
||||
tag_valid = "Выведет контент, если поле соответствует заданному шаблону"
|
||||
tag_invalid = "Выведет контент, если поле не соответствует заданному шаблону"
|
||||
tag_nempty = "Выведет контент, если поле помечено как обязательное и пользователь ввёл данные"
|
||||
tag_empty = "Выведет контент, если поле помечено как обязательное и пользователь не ввёл данные"
|
||||
tag_path = "Корневой путь установки"
|
||||
tag_media = "Путь до папки с шаблоном<br><br><i>Пример:</i> [tag:mediapath]images/logo.gif"
|
||||
tag_css = "Сжимает несколько css-файлов в один. Возвращает путь.<br><b>FFF</b> - имена файлов через запятую<br><b>P</b> - путь к папке с файлами, не обязательно. По умолчанию - [tag:mediapath]css/<br><br><i>Пример:</i> href="[tag:css:reset.css,style.css]""
|
||||
tag_js = "Сжимает несколько js-файлов в один. Возвращает путь.<br><b>FFF</b> - имена файлов через запятую<br><b>P</b> - путь к папке с файлами, не обязательно. По умолчанию - [tag:mediapath]js/<br><br><i>Пример:</i> href="[tag:js:common.js,main.js]""
|
||||
tag_formtitle = "Название формы"
|
||||
tag_formalias = "Алиас формы (или id, если алиас не назначен)"
|
||||
tag_url = "URL текущей страницы"
|
||||
tag_docid = "ID текущего документа"
|
||||
tag_hide = "Тег, позволяющий скрыть контент для определенных групп пользователей<br><br><strong>Х</strong> - номер группы<br><strong>TEXT</strong> - текст, если доступ запрещён<br><br><em>Пример:</em> [tag:hide:2:Эта форма не для вас!][/tag:hide]"
|
||||
tag_uemail = "Email пользователя (на основе данных из профиля, а не формы!)"
|
||||
tag_uname = "И. Фамилия пользователя (на основе данных из профиля)"
|
||||
tag_ufname = "Имя пользователя (на основе данных из профиля)"
|
||||
tag_ulname = "Фамилия пользователя (на основе данных из профиля)"
|
||||
tag_ulogin = "Логин пользователя (на основе данных из профиля)"
|
||||
tag_if_fld = "Условие на значение поля. В теге используйте стандартные конструкции сравнения PHP/JS<br><br><em>Пример:</em><br>[tag:if_fld:15 == '1']<br>...<br>[tag:elseif_fld:15 > '2']<br>...<br>[tag:else_fld]<br>...<br>[/tag:if_fld]"
|
||||
tag_f_valid = "Выведет контент, если все поля формы прошли валидацию"
|
||||
tag_f_invalid = "Выведет контент, если хотя бы одно поле формы не прошло валидацию"
|
||||
tag_easymail = "Быстро генерирует список всех значений полей, участвующих в шаблоне формы (вместо того, чтобы прописывать все теги вручную)"
|
||||
tag_if_user = "Выведет контент в письме пользователю, заполнившему форму"
|
||||
tag_if_admin = "Выведет контент в письме получателям-админам ("главным получателям" или адресату из поля "получатель на выбор")"
|
||||
tag_fld_subject = "Значение поля <strong>Тема</strong>"
|
||||
tag_fld_email = "Значение поля <strong>Email</strong>"
|
||||
tag_sitename = "Название сайта"
|
||||
tag_sitehost = "Адрес сайта"
|
||||
info_php_tags = "Доступен php и теги"
|
||||
|
||||
code = "Исполняемый код"
|
||||
code_info = "Данные формы (валидация, шаблоны, получатели и т.д.) хранятся в переменной класса $this->form."
|
||||
code_onsubmit = "Код, исполняемый сразу после отправки формы (до валидации)"
|
||||
code_onvalidate = "Код, исполняемый после валидации формы"
|
||||
code_onsend = "Код, исполняемый после отправки писем"
|
||||
|
||||
mfld_email = "Email"
|
||||
mfld_subject = "Тема"
|
||||
mfld_receivers = "Получатель на выбор"
|
||||
mfld_captcha = "Капча"
|
||||
mfld_copy = "Отправка копии"
|
||||
|
||||
tag_mail_empty = "не заполнено"
|
||||
|
||||
history = "История"
|
||||
date = "Дата"
|
||||
author = "Автор"
|
||||
status = "Статус"
|
||||
stat_new = "Новое"
|
||||
list_new = "Новых"
|
||||
stat_viewed = "Просмотрено"
|
||||
list_viewed = "Просмотренных"
|
||||
stat_replied = "Отвечено"
|
||||
list_replied = "Отвеченных"
|
||||
request = "Обращение"
|
||||
response = "Ответ"
|
||||
responses = "Ответы"
|
||||
write_response = "Написать ответ"
|
||||
body = "Тело письма"
|
||||
save_draft = "Сохранить черновик"
|
||||
send = "Отправить ответ"
|
||||
return_dialogs = "Вернуться к списку обращений"
|
||||
profile_look = "Перейти к профилю"
|
||||
write_email = "Написать письмо"
|
||||
from = "от"
|
||||
look = "Посмотреть"
|
||||
set_replied = "Пометить как отвеченное"
|
||||
marked_replied = "Было отмечено как отвеченное"
|
||||
attach = "Вложения"
|
||||
|
||||
respose_sent = "Ответ успешно отправлен"
|
||||
|
||||
cn_actions = "Действия"
|
||||
cn_del_mail = "Вы уверены, что хотите удалить этот e-mail?"
|
||||
cn_not_mail = "В этой форме нет писем..."
|
||||
cn_view = "Просмотр истории"
|
||||
cn_status = "Статус сообщений"
|
||||
cn_alias_not = " -- "
|
||||
cn_count_messages = "сообщений: "
|
||||
cn_copy_to_clipboard = "Скопировать в буфер обмена"
|
||||
cn_return_list_form = "Вернуться к списку форм"
|
||||
cn_mod_info = "Важно: модуль использует метод отправки почты установленный в системных настройках, в разделе "
|
||||
cn_mod_info_a = "Настройки почты."
|
||||
info_attr_name = "Значение атрибута name для этого поля:"
|
||||
public_key_recaptcha_v3 = "Публичный ключ reCAPTCHA v3"
|
||||
title_pub_key_recap = "Открытый ключ reCAPTCHA v3 указанный в системных настройках, используется на стороне клиента (например в js скриптах)"
|
||||
found_key_recap_v3 = "В системных настройках обнаружены и будут использоваться модулем API ключи reCAPTCHA v3"
|
||||
notfound_key_recap_v3_1 ="API ключи reCAPTCHA v3 не обнаружены."
|
||||
notfound_key_recap_v3_2 =" Вы можете установить их в разделе "
|
||||
notfound_key_recap_v3_3 ="Системные настройки"
|
||||
demo_jqval_cap = "Без Ajax, с jQuery Validation Plugin и reCAPTCHA v3"
|
||||
demo_ajax_jqval_cap = "Ajax, с jQuery Validation Plugin и reCAPTCHA v3"
|
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Файл-заглушка, предназначенный для запрета показа списка файлов в текущей директории,
|
||||
* если через адресную строку браузера было прямое общращение к данной директории.
|
||||
*/
|
||||
header('Location:/');
|
||||
exit;
|
||||
?>
|
@ -1,187 +0,0 @@
|
||||
contacts = "Контакты New"
|
||||
mod_info = "В данном разделе приведен список всех контактных форм. Вы можете, добавить новую форму или отредактировать существующую."
|
||||
forms = "Список форм"
|
||||
form = "Форма"
|
||||
noforms = "В модуле пока нет ни одной контактной формы"
|
||||
form_new = "Создать форму"
|
||||
form_deleting = "Вы уверены, что хотите удалить форму?"
|
||||
|
||||
form_creating = "Создание новой формы"
|
||||
form_notfound = "указанная форма не найдена"
|
||||
form_editing = "Редактирование формы"
|
||||
main_sets = "Основные параметры"
|
||||
title = "Название"
|
||||
alias = "Алиас"
|
||||
protection = "Защита от повторной отправки"
|
||||
protect_i = "Рекомендуется включать для форм без Ajax.<br/><br/>Если защита включена, на финишной странице (после успешной отправки формы) при обновлении страницы пользователь не увидит сообщения "Подтвердите повторную отправку данных...". Вместо этого загрузится заново чистая форма."
|
||||
demo = "Создать пример формы"
|
||||
demo_noajax = "без Ajax"
|
||||
demo_ajax = "Ajax, сервер возвращает код формы"
|
||||
demo_ajax_o = "Ajax, сервер возвращает результат валидации"
|
||||
alias_i = "Опционально. Алиас формы позволяет использовать легко запоминающийся тег [mod_contact:alias] вместо [mod_contact:id]. Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание, иметь длину не более 20 символов и быть уникальным в пределах модуля"
|
||||
alias_accept = "Этот алиас можно использовать"
|
||||
alias_er_syn = "Неверный алиас!<br> Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание и иметь длину не более 20 символов"
|
||||
alias_er_exists = "Неверный алиас!<br> Данный алиас уже привязан к другой контактной форме"
|
||||
recs = "Получатели"
|
||||
name = "Имя"
|
||||
fields_sets = "Настройки полей"
|
||||
active_i = "Активировать поле (если чекбокс пустой, тег в шаблоне будет заменён на пустую строку)"
|
||||
type = "Тип"
|
||||
doc = "Документ"
|
||||
multidoc = "Документ (multi)"
|
||||
other_input = "Другой input"
|
||||
other_input_i = "Аттрибут type"
|
||||
pattern_i = "Шаблон для preg_match<br/> <em>Пример:</em> <strong>/^[A-Za-z0-9]+$/ie</strong><br/><br/> Либо фильтр для filter_var<br/> <em>Пример:</em> <strong>FILTER_VALIDATE_EMAIL</strong>"
|
||||
pattern = "Валидация"
|
||||
defaultval = "По умолчанию"
|
||||
sets = "Параметры"
|
||||
attributes = "Аттрибуты тега поля"
|
||||
field_add = "Добавить поле"
|
||||
form_tpl = "Шаблон формы"
|
||||
mail_tpl = "Шаблон письма"
|
||||
finish_tpl = "Шаблон страницы после отправки формы"
|
||||
conditions = "Условия"
|
||||
rubheader = "Скрипты и стили, необходимые для оформления и функционирования формы"
|
||||
rubheader_info = "Избегайте дублирования скриптов в модуле и шаблоне"
|
||||
tag = "Тег"
|
||||
field_creating = "Добавление поля..."
|
||||
field_new_error = "Укажите название поля!"
|
||||
type_i = "Для <strong>input</strong> в аттрибутах можно указать свой <strong>type</strong> (по умолчанию подставится <strong>text</strong>)"
|
||||
fld_tpl_toggle = "Показать/свернуть шаблон вывода поля"
|
||||
field_tpl = "Шаблон поля"
|
||||
fld_del = "Вы уверены, что хотите удалить это поле?"
|
||||
fld_deleting = "Удаление поля..."
|
||||
required = "Обязательное поле"
|
||||
setting_empty = "Сначала настройте опции для выбора (слева)"
|
||||
yes = "да"
|
||||
no = "нет"
|
||||
fld_i = "Поле работает только если его тег вставлен в шаблон и слева стоит галочка активации"
|
||||
copy_fld_i = "<strong>Отправка копии </strong> будет выполнена, даже если в значении по умолчанию стоит галка, а тег в шаблон не вставлен / поле не активировано"
|
||||
select_req_i = "Селект будет считаться не заполненным, если выбран первый вариант"
|
||||
file_size = "Макс. размер, мб"
|
||||
file_size2 = "Ограничение размера файла, мб"
|
||||
|
||||
create = "Создать"
|
||||
edit = "Редактировать"
|
||||
copy = "Копировать"
|
||||
delete = "Удалить"
|
||||
actions = "Действия"
|
||||
saved = "Сохранено"
|
||||
notsaved = "Во время сохранения произошла ошибка"
|
||||
created = "Форма успешно создана"
|
||||
copied = "Форма успешно скопирована и сохранена<br>Отредактируйте название и алиас"
|
||||
deleting = "Удаление..."
|
||||
add_refresh = "Добавить и обновить"
|
||||
save = "Сохранить"
|
||||
return_to_forms = "Вернуться к списку контактных форм"
|
||||
refresh = "Обновить"
|
||||
mail_set = "Настройки письма"
|
||||
format = "Формат"
|
||||
text = "Текст"
|
||||
from_email = "Email отправителя"
|
||||
from_name = "Имя отправителя"
|
||||
recs_main = "Главные получатели"
|
||||
recs_main_i = "Эти адресаты получат письмо в любом случае"
|
||||
subject_tpl = "Шаблон темы"
|
||||
|
||||
email_accept = "Правильный Email"
|
||||
email_error = "Неверный синтаксис Email-а!"
|
||||
|
||||
tag_fld = "Тег поля, поле подставляется с использованием своего шаблона"
|
||||
tag_fld_mail = "Значение поля, введённое пользователем"
|
||||
tag_fld_tpl = "Тег поля, поле подставляется с подстановкой аттрибутов"
|
||||
tag_attr = "Вставить основные аттрибуты"
|
||||
tag_id = "Id поля"
|
||||
tag_title = "Тег названия поля"
|
||||
tag_valid = "Выведет контент, если поле соответствует заданному шаблону"
|
||||
tag_invalid = "Выведет контент, если поле не соответствует заданному шаблону"
|
||||
tag_nempty = "Выведет контент, если поле помечено как обязательное и пользователь ввёл данные"
|
||||
tag_empty = "Выведет контент, если поле помечено как обязательное и пользователь не ввёл данные"
|
||||
tag_path = "Корневой путь установки"
|
||||
tag_media = "Путь до папки с шаблоном<br><br><i>Пример:</i> [tag:mediapath]images/logo.gif"
|
||||
tag_css = "Сжимает несколько css-файлов в один. Возвращает путь.<br><b>FFF</b> - имена файлов через запятую<br><b>P</b> - путь к папке с файлами, не обязательно. По умолчанию - [tag:mediapath]css/<br><br><i>Пример:</i> href="[tag:css:reset.css,style.css]""
|
||||
tag_js = "Сжимает несколько js-файлов в один. Возвращает путь.<br><b>FFF</b> - имена файлов через запятую<br><b>P</b> - путь к папке с файлами, не обязательно. По умолчанию - [tag:mediapath]js/<br><br><i>Пример:</i> href="[tag:js:common.js,main.js]""
|
||||
tag_formtitle = "Название формы"
|
||||
tag_formalias = "Алиас формы (или id, если алиас не назначен)"
|
||||
tag_url = "URL текущей страницы"
|
||||
tag_docid = "ID текущего документа"
|
||||
tag_hide = "Тег, позволяющий скрыть контент для определенных групп пользователей<br><br><strong>Х</strong> - номер группы<br><strong>TEXT</strong> - текст, если доступ запрещён<br><br><em>Пример:</em> [tag:hide:2:Эта форма не для вас!][/tag:hide]"
|
||||
tag_uemail = "Email пользователя (на основе данных из профиля, а не формы!)"
|
||||
tag_uname = "И. Фамилия пользователя (на основе данных из профиля)"
|
||||
tag_ufname = "Имя пользователя (на основе данных из профиля)"
|
||||
tag_ulname = "Фамилия пользователя (на основе данных из профиля)"
|
||||
tag_ulogin = "Логин пользователя (на основе данных из профиля)"
|
||||
tag_if_fld = "Условие на значение поля. В теге используйте стандартные конструкции сравнения PHP/JS<br><br><em>Пример:</em><br>[tag:if_fld:15 == '1']<br>...<br>[tag:elseif_fld:15 > '2']<br>...<br>[tag:else_fld]<br>...<br>[/tag:if_fld]"
|
||||
tag_f_valid = "Выведет контент, если все поля формы прошли валидацию"
|
||||
tag_f_invalid = "Выведет контент, если хотя бы одно поле формы не прошло валидацию"
|
||||
tag_easymail = "Быстро генерирует список всех значений полей, участвующих в шаблоне формы (вместо того, чтобы прописывать все теги вручную)"
|
||||
tag_if_user = "Выведет контент в письме пользователю, заполнившему форму"
|
||||
tag_if_admin = "Выведет контент в письме получателям-админам ("главным получателям" или адресату из поля "получатель на выбор")"
|
||||
tag_fld_subject = "Значение поля <strong>Тема</strong>"
|
||||
tag_fld_email = "Значение поля <strong>Email</strong>"
|
||||
tag_sitename = "Название сайта"
|
||||
tag_sitehost = "Адрес сайта"
|
||||
info_php_tags = "Доступен php и теги"
|
||||
|
||||
code = "Исполняемый код"
|
||||
code_info = "Данные формы (валидация, шаблоны, получатели и т.д.) хранятся в переменной класса $this->form."
|
||||
code_onsubmit = "Код, исполняемый сразу после отправки формы (до валидации)"
|
||||
code_onvalidate = "Код, исполняемый после валидации формы"
|
||||
code_onsend = "Код, исполняемый после отправки писем"
|
||||
|
||||
mfld_email = "Email"
|
||||
mfld_subject = "Тема"
|
||||
mfld_receivers = "Получатель на выбор"
|
||||
mfld_captcha = "Капча"
|
||||
mfld_copy = "Отправка копии"
|
||||
|
||||
tag_mail_empty = "не заполнено"
|
||||
|
||||
history = "История"
|
||||
date = "Дата"
|
||||
author = "Автор"
|
||||
status = "Статус"
|
||||
stat_new = "Новое"
|
||||
list_new = "Новых"
|
||||
stat_viewed = "Просмотрено"
|
||||
list_viewed = "Просмотренных"
|
||||
stat_replied = "Отвечено"
|
||||
list_replied = "Отвеченных"
|
||||
request = "Обращение"
|
||||
response = "Ответ"
|
||||
responses = "Ответы"
|
||||
write_response = "Написать ответ"
|
||||
body = "Тело письма"
|
||||
save_draft = "Сохранить черновик"
|
||||
send = "Отправить ответ"
|
||||
return_dialogs = "Вернуться к списку обращений"
|
||||
profile_look = "Перейти к профилю"
|
||||
write_email = "Написать письмо"
|
||||
from = "от"
|
||||
look = "Посмотреть"
|
||||
set_replied = "Пометить как отвеченное"
|
||||
marked_replied = "Было отмечено как отвеченное"
|
||||
attach = "Вложения"
|
||||
|
||||
respose_sent = "Ответ успешно отправлен"
|
||||
|
||||
cn_actions = "Действия"
|
||||
cn_del_mail = "Вы уверены, что хотите удалить этот e-mail?"
|
||||
cn_not_mail = "В этой форме нет писем..."
|
||||
cn_view = "Просмотр истории"
|
||||
cn_status = "Статус сообщений"
|
||||
cn_alias_not = " -- "
|
||||
cn_count_messages = "сообщений: "
|
||||
cn_copy_to_clipboard = "Скопировать в буфер обмена"
|
||||
cn_return_list_form = "Вернуться к списку форм"
|
||||
cn_mod_info = "Важно: модуль использует метод отправки почты установленный в системных настройках, в разделе "
|
||||
cn_mod_info_a = "Настройки почты."
|
||||
info_attr_name = "Значение атрибута name для этого поля:"
|
||||
public_key_recaptcha_v3 = "Публичный ключ reCAPTCHA v3"
|
||||
title_pub_key_recap = "Открытый ключ reCAPTCHA v3 указанный в системных настройках, используется на стороне клиента (например в js скриптах)"
|
||||
found_key_recap_v3 = "В системных настройках обнаружены и будут использоваться модулем API ключи reCAPTCHA v3"
|
||||
notfound_key_recap_v3_1 ="API ключи reCAPTCHA v3 не обнаружены."
|
||||
notfound_key_recap_v3_2 =" Вы можете установить их в разделе "
|
||||
notfound_key_recap_v3_3 ="Системные настройки"
|
||||
demo_jqval_cap = "Без Ajax, с jQuery Validation Plugin и reCAPTCHA v3"
|
||||
demo_ajax_jqval_cap = "Ajax, с jQuery Validation Plugin и reCAPTCHA v3"
|
@ -1,166 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Модуль "Контакты New"
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module: ContactsNew
|
||||
* @since 1.4
|
||||
* @author vudaltsov
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
if(!defined('BASE_DIR')) exit;
|
||||
|
||||
if (defined('ACP'))
|
||||
{
|
||||
$modul['ModuleName'] = 'Контакты New';
|
||||
$modul['ModuleSysName'] = 'contactsnew';
|
||||
$modul['ModuleVersion'] = '1.2.6';
|
||||
$modul['ModuleDescription'] = 'Данный модуль предназначен для создания веб-форм (например, обратной связи или простейшего оформления заказа), которые могут состоять из любого набора полей. Для вывода в публичной части сайта используйте тег <strong>[mod_contactsnew:XXX]</strong>, где XXX - это id или алиас формы.';
|
||||
$modul['ModuleAutor'] = 'vudaltsov UPD Repellent';
|
||||
$modul['ModuleCopyright'] = '© 2007-2019 AVE.CMS Team';
|
||||
$modul['ModuleIsFunction'] = 1;
|
||||
$modul['ModuleAdminEdit'] = 1;
|
||||
$modul['ModuleFunction'] = 'mod_contactsnew';
|
||||
$modul['ModuleTag'] = '[mod_contactsnew:alias/id:email]';
|
||||
$modul['ModuleTagLink'] = null;
|
||||
$modul['ModuleAveTag'] = '#\\\[mod_contactsnew:([A-Za-z0-9-_]{1,20})]#';
|
||||
$modul['ModulePHPTag'] = "<?php mod_contactsnew(''$1''); ?>";
|
||||
}
|
||||
|
||||
/**
|
||||
* Тег
|
||||
*/
|
||||
function mod_contactsnew($alias_id)
|
||||
{
|
||||
global $AVE_Template;
|
||||
|
||||
require_once(BASE_DIR . '/modules/contactsnew/class.contactsnew.php');
|
||||
|
||||
$contactsnew = new ContactsNew;
|
||||
$contactsnew->tpl_dir = BASE_DIR . '/modules/contactsnew/templates/';
|
||||
|
||||
$lang_file = BASE_DIR . '/modules/contactsnew/lang/' . $_SESSION['user_language'] . '.txt';
|
||||
$AVE_Template->config_load($lang_file);
|
||||
|
||||
echo $contactsnew->form_display($alias_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* AJAX-методы
|
||||
*/
|
||||
if (! defined('ACP') && isset($_REQUEST['module']) && $_REQUEST['module'] == 'contactsnew')
|
||||
{
|
||||
global $AVE_Template;
|
||||
|
||||
$alias_id = $_REQUEST['alias_id'];
|
||||
|
||||
require_once(BASE_DIR . '/modules/contactsnew/class.contactsnew.php');
|
||||
|
||||
$contactsnew = new ContactsNew;
|
||||
$contactsnew->tpl_dir = BASE_DIR . '/modules/contactsnew/templates/';
|
||||
|
||||
$lang_file = BASE_DIR . '/modules/contactsnew/lang/' . $_SESSION['user_language'] . '.txt';
|
||||
$AVE_Template->config_load($lang_file);
|
||||
|
||||
switch($_REQUEST['action'])
|
||||
{
|
||||
case '':
|
||||
case 'full':
|
||||
exit ($contactsnew->form_display($alias_id));
|
||||
|
||||
case 'validate':
|
||||
$contactsnew->form_display($alias_id);
|
||||
$contactsnew->_json($contactsnew->form['ajax'], true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Админка
|
||||
*/
|
||||
if (defined('ACP') && isset($_REQUEST['mod']) && $_REQUEST['mod'] == 'contactsnew' && !empty($_REQUEST['moduleaction']))
|
||||
{
|
||||
$fid = !empty($_REQUEST['fid']) ? (int)$_REQUEST['fid'] : 0;
|
||||
|
||||
require_once(BASE_DIR . '/modules/contactsnew/class.contactsnew.php');
|
||||
|
||||
$contactsnew = new ContactsNew;
|
||||
$contactsnew->tpl_dir = BASE_DIR . '/modules/contactsnew/templates/';
|
||||
|
||||
$lang_file = BASE_DIR . '/modules/contactsnew/lang/' . $_SESSION['admin_language'] . '.txt';
|
||||
$AVE_Template->config_load($lang_file);
|
||||
|
||||
// создаём переменные с версией движка
|
||||
$ave14 = ((float)str_replace(',', '.', APP_VERSION) < 1.5);
|
||||
$AVE_Template->assign('ave14', $ave14);
|
||||
$AVE_Template->assign('ave15', !$ave14);
|
||||
|
||||
switch($_REQUEST['moduleaction'])
|
||||
{
|
||||
case '1':
|
||||
$contactsnew->forms_list();
|
||||
break;
|
||||
|
||||
case 'form_edit':
|
||||
$response = $contactsnew->form_edit($fid);
|
||||
break;
|
||||
|
||||
case 'form_save':
|
||||
$response = $contactsnew->form_save($fid);
|
||||
// если передан запрос на обновление полей, передаём tpl
|
||||
if (isset($_REQUEST['fields_reload']) && $_REQUEST['fields_reload'] == 1)
|
||||
{
|
||||
exit ($contactsnew->form_fields_fetch());
|
||||
}
|
||||
break;
|
||||
|
||||
case 'form_del':
|
||||
$contactsnew->form_del($fid);
|
||||
header('Location: index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp=' . SESSION);
|
||||
exit;
|
||||
|
||||
case 'form_copy':
|
||||
$fid_new = $contactsnew->form_copy($fid);
|
||||
$_SESSION['module_contactsnew_admin'][$fid_new]['edit_alert'] = array('text' => 'copied', 'theme' => 'accept');
|
||||
header('Location: index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=form_edit&fid=' . $fid_new . '&cp=' . SESSION);
|
||||
exit;
|
||||
|
||||
case 'email_validate':
|
||||
$response = (int)$contactsnew->_email_validate($_REQUEST['email']);
|
||||
break;
|
||||
|
||||
case 'alias_validate':
|
||||
$response = $contactsnew->_alias_validate($_REQUEST['alias'],$fid);
|
||||
$response = ($response === 'syn') ? 'syn' : (int)$response;
|
||||
break;
|
||||
|
||||
case 'history_list':
|
||||
$contactsnew->history_list($fid);
|
||||
break;
|
||||
|
||||
case 'email_del':
|
||||
$hid = !empty($_REQUEST['hid']) ? (int)$_REQUEST['hid'] : 0;
|
||||
$contactsnew->email_del($hid);
|
||||
$fid = !empty($_REQUEST['fid']) ? (int)$_REQUEST['fid'] : 0;
|
||||
header('Location: index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=history_list&fid=' . $fid . '&cp=' . SESSION);
|
||||
exit;
|
||||
|
||||
case 'history_dialog':
|
||||
$hid = !empty($_REQUEST['hid']) ? (int)$_REQUEST['hid'] : 0;
|
||||
$contactsnew->history_dialog($hid);
|
||||
break;
|
||||
|
||||
case 'history_dialog_submit':
|
||||
$hid = !empty($_REQUEST['hid']) ? (int)$_REQUEST['hid'] : 0;
|
||||
$contactsnew->history_dialog_submit($hid);
|
||||
break;
|
||||
|
||||
case 'dialog_status':
|
||||
$hid = !empty($_REQUEST['hid']) ? (int)$_REQUEST['hid'] : 0;
|
||||
$contactsnew->dialog_status($hid);
|
||||
break;
|
||||
}
|
||||
if ($_REQUEST['ajax']) exit((string)$response);
|
||||
}
|
||||
?>
|
@ -1,133 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Модуль "Контакты New"
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module: ContactsNew
|
||||
* @since 1.4 - 1.5
|
||||
* @author vudaltsov UPD Repellent
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
$module_sql_install = array();
|
||||
$module_sql_deinstall = array();
|
||||
$module_sql_update = array();
|
||||
|
||||
// Удаление
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS CPPREFIX_module_contactsnew_forms;";
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS CPPREFIX_module_contactsnew_fields;";
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS CPPREFIX_module_contactsnew_history;";
|
||||
|
||||
// Установка
|
||||
$module_sql_install[] = "
|
||||
CREATE TABLE IF NOT EXISTS `CPPREFIX_module_contactsnew_forms` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`alias` varchar(20) NOT NULL,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`protection` enum('0','1') NOT NULL DEFAULT '1',
|
||||
`rubheader` text NOT NULL,
|
||||
`form_tpl` text NOT NULL,
|
||||
`mail_set` text NOT NULL,
|
||||
`mail_tpl` text NOT NULL,
|
||||
`finish_tpl` text NOT NULL,
|
||||
`code_onsubmit` text NOT NULL,
|
||||
`code_onvalidate` text NOT NULL,
|
||||
`code_onsend` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=1;
|
||||
";
|
||||
|
||||
$module_sql_install[] = "
|
||||
CREATE TABLE IF NOT EXISTS `CPPREFIX_module_contactsnew_fields` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`form_id` int(10) NOT NULL,
|
||||
`active` enum('0','1') NOT NULL DEFAULT '1',
|
||||
`title` varchar(255) NOT NULL,
|
||||
`type` varchar(255) NOT NULL,
|
||||
`main` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`setting` text NOT NULL,
|
||||
`required` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`defaultval` varchar(255) NOT NULL,
|
||||
`attributes` text NOT NULL,
|
||||
`tpl` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=1;
|
||||
";
|
||||
|
||||
$module_sql_install[] = "
|
||||
CREATE TABLE IF NOT EXISTS `CPPREFIX_module_contactsnew_history` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`form_id` int(10) NOT NULL,
|
||||
`email` varchar(255) NOT NULL,
|
||||
`subject` varchar(255) NOT NULL,
|
||||
`status` enum('new','viewed','replied') NOT NULL DEFAULT 'new',
|
||||
`date` int(10) NOT NULL,
|
||||
`dialog` longtext NOT NULL,
|
||||
`postdata` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=1;
|
||||
";
|
||||
|
||||
// Обновление
|
||||
$module_sql_update[] = "
|
||||
UPDATE `CPPREFIX_module`
|
||||
SET
|
||||
ModuleAveTag = '" . $modul['ModuleAveTag'] . "',
|
||||
ModulePHPTag = '" . $modul['ModulePHPTag'] . "',
|
||||
ModuleVersion = '" . $modul['ModuleVersion'] . "'
|
||||
WHERE
|
||||
ModuleSysName = '" . $modul['ModuleSysName'] . "'
|
||||
LIMIT 1;
|
||||
";
|
||||
|
||||
// beta 3
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `CPPREFIX_module_contactsnew_forms`
|
||||
ADD IF NOT EXISTS `code_onsubmit` text NOT NULL
|
||||
AFTER `finish_tpl`";
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `CPPREFIX_module_contactsnew_forms`
|
||||
ADD IF NOT EXISTS `code_onvalidate` text NOT NULL
|
||||
AFTER `code_onsubmit`";
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `CPPREFIX_module_contactsnew_forms`
|
||||
ADD IF NOT EXISTS `code_onsend` text NOT NULL
|
||||
AFTER `code_onvalidate`";
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `CPPREFIX_module_contactsnew_forms`
|
||||
DROP INDEX IF EXISTS `alias`";
|
||||
|
||||
// beta 8
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `CPPREFIX_module_contactsnew_fields`
|
||||
ADD IF NOT EXISTS `active` enum('0','1') NOT NULL DEFAULT '1'
|
||||
AFTER `form_id`";
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `CPPREFIX_module_contactsnew_fields`
|
||||
DROP IF EXISTS `position`";
|
||||
|
||||
// v1.1 beta 1
|
||||
$module_sql_update[] = "
|
||||
CREATE TABLE IF NOT EXISTS `CPPREFIX_module_contactsnew_history` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`form_id` int(10) NOT NULL,
|
||||
`email` varchar(255) NOT NULL,
|
||||
`subject` varchar(255) NOT NULL,
|
||||
`status` enum('new','viewed','replied') NOT NULL DEFAULT 'new',
|
||||
`date` int(10) NOT NULL,
|
||||
`dialog` longtext NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=1;
|
||||
";
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `CPPREFIX_module_contactsnew_forms`
|
||||
ADD IF NOT EXISTS `protection` enum('0','1') NOT NULL DEFAULT '1'
|
||||
AFTER `title`";
|
||||
|
||||
// v1.1 beta 2
|
||||
$module_sql_update[] = "
|
||||
ALTER TABLE `CPPREFIX_module_contactsnew_history`
|
||||
ADD IF NOT EXISTS`postdata` text NOT NULL
|
||||
AFTER `dialog`";
|
||||
?>
|
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Файл-заглушка, предназначенный для запрета показа списка файлов в текущей директории,
|
||||
* если через адресную строку браузера было прямое общращение к данной директории.
|
||||
*/
|
||||
header('Location:/');
|
||||
exit;
|
||||
?>
|
1653
forms/class/forms.php
Normal file
1653
forms/class/forms.php
Normal file
File diff suppressed because it is too large
Load Diff
@ -42,8 +42,7 @@ $form_tpl = array(
|
||||
</div>
|
||||
[/tag:hide]',
|
||||
'ajax' => '[tag:hide:2:У вас нет прав для заполнения данной формы!]
|
||||
<div id=\\"[tag:formalias]\\">
|
||||
<form method=\\"post\\" enctype=\\"multipart/form-data\\" class=\\"form-horizontal\\" role=\\"form\\" action=\\"\\">
|
||||
<form id=\\"#form_[tag:formalias]\\" method=\\"post\\" enctype=\\"multipart/form-data\\" class=\\"form-horizontal\\" role=\\"form\\" action=\\"\\">
|
||||
<div class=\\"alert alert-warning alert-dismissable\\">
|
||||
Если форма не работает, убедитесь, что скрипт jquery.form.min.js подключен к странице
|
||||
<button type=\\"button\\" class=\\"close\\" data-dismiss=\\"alert\\" aria-hidden=\\"true\\">×</button>
|
||||
@ -72,20 +71,22 @@ $form_tpl = array(
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
$(document).on(\\\'click\\\', \\\'#captcha-ref\\\', function(){$(\\\'#captcha img\\\').attr(\\\'src\\\', \\\'[tag:path][tag:captcha]?refresh=\\\' + new Date().getTime());});
|
||||
$(\\\'#form_[tag:formalias]\\\').off();
|
||||
|
||||
$(\\\'#captcha-ref\\\').on(\\\'click\\\', function(){$(\\\'#captcha img\\\').attr(\\\'src\\\', \\\'[tag:path][tag:captcha]?refresh=\\\' + new Date().getTime());});
|
||||
function form_popover (action) {
|
||||
var _action = (action == undefined || !action) ? \\\'show\\\' : action;
|
||||
$(\\\'#[tag:formalias] .form-control.invalid\\\').each(function(index, element) {
|
||||
$(\\\'#form_[tag:formalias] .form-control.invalid\\\').each(function(index, element) {
|
||||
$(element).popover(_action);
|
||||
if (_action == \\\'hide\\\') $(element).removeClass(\\\'invalid\\\');
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on(\\\'submit\\\',\\\'#[tag:formalias] form\\\',function (e) {
|
||||
$(\\\'#form_[tag:formalias]\\\').on(\\\'submit\\\',function (e) {
|
||||
e.preventDefault();
|
||||
var form = $(this);
|
||||
form.ajaxSubmit({
|
||||
url: \\\'[tag:path]index.php?module=contactsnew\\\',
|
||||
url: \\\'[tag:path]index.php?module=forms\\\',
|
||||
data: {
|
||||
alias_id: \\\'[tag:formalias]\\\'
|
||||
},
|
||||
@ -102,7 +103,6 @@ $form_tpl = array(
|
||||
return false;
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
[/tag:hide]',
|
||||
'ajax_o' =>
|
||||
'[tag:hide:2:У вас нет прав для заполнения данной формы!]
|
||||
@ -135,11 +135,11 @@ $form_tpl = array(
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
$(document).on(\\\'submit\\\',\\\'#[tag:formalias] form\\\',function (e) {
|
||||
$(\\\'#[tag:formalias] form\\\').on(\\\'submit\\\', function (e) {
|
||||
e.preventDefault();
|
||||
var form = $(this);
|
||||
form.ajaxSubmit({
|
||||
url: \\\'[tag:path]index.php?module=contactsnew\\\',
|
||||
url: \\\'[tag:path]index.php?module=forms\\\',
|
||||
data: {
|
||||
alias_id: \\\'[tag:formalias]\\\',
|
||||
action: \\\'validate\\\'
|
||||
@ -177,13 +177,7 @@ $demo = array(
|
||||
),
|
||||
'format' => 'text',
|
||||
),
|
||||
'rubheader' => '<!--
|
||||
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
|
||||
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
|
||||
<script type="text/javascript" src="[tag:path]modules/contactsnew/js/jquery.form.min.js"></script>
|
||||
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>' . ($_REQUEST['demo'] != 'noajax' ? '
|
||||
<script src="http://malsup.github.io/min/jquery.form.min.js"></script>' : '') . '
|
||||
-->',
|
||||
'rubheader' => '',
|
||||
'form_tpl' => $form_tpl[$_REQUEST['demo']],
|
||||
'mail_tpl' => '[tag:if_user]
|
||||
Здравствуйте, [tag:uname]!
|
||||
@ -320,11 +314,11 @@ $demo = array(
|
||||
'tpl' => '<div class="form-group [tag:if_invalid]has-feedback has-error[/tag:if_invalid]">
|
||||
<div class="col-sm-offset-4 col-sm-4">
|
||||
<div class="checkbox" style="text-align:center">
|
||||
<span id="captcha">
|
||||
<span id="captcha">
|
||||
<img src="[tag:path][tag:captcha]" alt="Капча"></span><br>
|
||||
</div>
|
||||
<div style="text-align:center">
|
||||
<img id="captcha-ref" style="cursor: pointer; margin:10px 0 10px 0px;" src="[tag:path]modules/contactsnew/images/ref.png" alt="" title="Обновить код" width="30" height="30" border="0" />
|
||||
<img id="captcha-ref" style="cursor: pointer; margin:10px 0 10px 0px;" src="[tag:path]modules/forms/images/ref.png" alt="" title="Обновить код" width="30" height="30" border="0" />
|
||||
</div>
|
||||
<div class="col-sm-offset-2 col-sm-8">
|
||||
[tag:fld]
|
||||
@ -460,4 +454,4 @@ $demo = array(
|
||||
</div>'
|
||||
)
|
||||
)
|
||||
);
|
||||
);
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
8
forms/index.php
Normal file
8
forms/index.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
/**
|
||||
* Файл-заглушка, предназначенный для запрета показа списка файлов в текущей директории,
|
||||
* если через адресную строку браузера было прямое общращение к данной директории.
|
||||
*/
|
||||
header('Location:/');
|
||||
exit;
|
||||
?>
|
19
forms/info.php
Normal file
19
forms/info.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
if (! defined('BASE_DIR'))
|
||||
exit;
|
||||
|
||||
$module = array(
|
||||
'ModuleSysName' => 'forms',
|
||||
'ModuleVersion' => '1.26.0',
|
||||
'ModuleAutor' => 'AVE.cms Team',
|
||||
'ModuleCopyright' => '© 2007-' . date('Y') . ' AVE.cms',
|
||||
'ModuleIsFunction' => 1,
|
||||
'ModuleTemplate' => 0,
|
||||
'ModuleAdminEdit' => 1,
|
||||
'ModuleFunction' => 'mod_forms',
|
||||
'ModuleTag' => '[mod_forms:alias/id:email]',
|
||||
'ModuleTagLink' => null,
|
||||
'ModuleAveTag' => '#\\\[mod_forms:([A-Za-z0-9-_]{1,20})\\\]#',
|
||||
'ModulePHPTag' => "<?php mod_forms(''$1''); ?>"
|
||||
);
|
||||
?>
|
@ -1,8 +1,13 @@
|
||||
contacts = "Контакты New"
|
||||
mod_info = "В данном разделе приведен список всех контактных форм. Вы можете, добавить новую форму или отредактировать существующую."
|
||||
[name]
|
||||
MODULE_NAME = "Формы"
|
||||
MODULE_DESCRIPTION = "Данный модуль предназначен для создания веб-форм (например, обратной связи или простейшего оформления заказа), которые могут состоять из любого набора полей. Для вывода в публичной части сайта используйте тег <strong>[mod_forms:XXX]</strong>, где XXX - это id или алиас формы."
|
||||
|
||||
[module]
|
||||
contacts = "Формы"
|
||||
mod_info = "В данном разделе приведен список всех форм. Вы можете, добавить новую форму или отредактировать существующую."
|
||||
forms = "Список форм"
|
||||
form = "Форма"
|
||||
noforms = "В модуле пока нет ни одной контактной формы"
|
||||
noforms = "В модуле пока нет ни одной формы"
|
||||
form_new = "Создать форму"
|
||||
form_deleting = "Вы уверены, что хотите удалить форму?"
|
||||
|
||||
@ -18,10 +23,10 @@ demo = "Создать пример формы"
|
||||
demo_noajax = "без Ajax"
|
||||
demo_ajax = "Ajax, сервер возвращает код формы"
|
||||
demo_ajax_o = "Ajax, сервер возвращает результат валидации"
|
||||
alias_i = "Опционально. Алиас формы позволяет использовать легко запоминающийся тег [mod_contactsnew:alias] вместо [mod_contactsnew:id]. Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание, иметь длину не более 20 символов и быть уникальным в пределах модуля"
|
||||
alias_i = "Опционально. Алиас формы позволяет использовать легко запоминающийся тег [mod_forms:alias] вместо [mod_forms:id]. Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание, иметь длину не более 20 символов и быть уникальным в пределах модуля"
|
||||
alias_accept = "Этот алиас можно использовать"
|
||||
alias_er_syn = "Неверный алиас!<br> Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание и иметь длину не более 20 символов"
|
||||
alias_er_exists = "Неверный алиас!<br> Данный алиас уже привязан к другой контактной форме"
|
||||
alias_er_exists = "Неверный алиас!<br> Данный алиас уже привязан к другой форме"
|
||||
recs = "Получатели"
|
||||
name = "Имя"
|
||||
fields_sets = "Настройки полей"
|
||||
@ -35,7 +40,7 @@ pattern_i = "Шаблон для preg_match<br/> <em>Пример:</em> <strong
|
||||
pattern = "Валидация"
|
||||
defaultval = "По умолчанию"
|
||||
sets = "Параметры"
|
||||
attributes = "Атрибуты тега поля"
|
||||
attributes = "Аттрибуты тега поля"
|
||||
field_add = "Добавить поле"
|
||||
form_tpl = "Шаблон формы"
|
||||
mail_tpl = "Шаблон письма"
|
||||
@ -73,7 +78,7 @@ copied = "Форма успешно скопирована и сохранен
|
||||
deleting = "Удаление..."
|
||||
add_refresh = "Добавить и обновить"
|
||||
save = "Сохранить"
|
||||
return_to_forms = "Вернуться к списку контактных форм"
|
||||
return_to_forms = "Вернуться к списку форм"
|
||||
refresh = "Обновить"
|
||||
mail_set = "Настройки письма"
|
||||
format = "Формат"
|
||||
@ -127,6 +132,7 @@ code = "Исполняемый код"
|
||||
code_info = "Данные формы (валидация, шаблоны, получатели и т.д.) хранятся в переменной класса $this->form."
|
||||
code_onsubmit = "Код, исполняемый сразу после отправки формы (до валидации)"
|
||||
code_onvalidate = "Код, исполняемый после валидации формы"
|
||||
code_beforesend = "Код, исполняемый перед отправкой писем"
|
||||
code_onsend = "Код, исполняемый после отправки писем"
|
||||
|
||||
mfld_email = "Email"
|
||||
@ -166,7 +172,7 @@ attach = "Вложения"
|
||||
respose_sent = "Ответ успешно отправлен"
|
||||
|
||||
cn_actions = "Действия"
|
||||
cn_del_mail = "Вы уверены, что хотите удалить этот e-mail?"
|
||||
cn_del_mail = "Вы уверены, что хотите удалить этот e-mail?"
|
||||
cn_not_mail = "В этой форме нет писем..."
|
||||
cn_view = "Просмотр истории"
|
||||
cn_status = "Статус сообщений"
|
||||
@ -175,13 +181,4 @@ cn_count_messages = "сообщений: "
|
||||
cn_copy_to_clipboard = "Скопировать в буфер обмена"
|
||||
cn_return_list_form = "Вернуться к списку форм"
|
||||
cn_mod_info = "Важно: модуль использует метод отправки почты установленный в системных настройках, в разделе "
|
||||
cn_mod_info_a = "Настройки почты."
|
||||
info_attr_name = "Значение атрибута name для этого поля:"
|
||||
public_key_recaptcha_v3 = "Публичный ключ reCAPTCHA v3"
|
||||
title_pub_key_recap = "Открытый ключ reCAPTCHA v3 указанный в системных настройках, используется на стороне клиента (например в js скриптах)"
|
||||
found_key_recap_v3 = "В системных настройках обнаружены и будут использоваться модулем API ключи reCAPTCHA v3"
|
||||
notfound_key_recap_v3_1 ="API ключи reCAPTCHA v3 не обнаружены."
|
||||
notfound_key_recap_v3_2 =" Вы можете установить их в разделе "
|
||||
notfound_key_recap_v3_3 ="Системные настройки"
|
||||
demo_jqval_cap = "Без Ajax, с jQuery Validation Plugin и reCAPTCHA v3"
|
||||
demo_ajax_jqval_cap = "Ajax, с jQuery Validation Plugin и reCAPTCHA v3"
|
||||
cn_mod_info_a = "Настройки почты."
|
158
forms/module.php
Normal file
158
forms/module.php
Normal file
@ -0,0 +1,158 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Модуль "Формы"
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module: forms
|
||||
* @since 1.4
|
||||
* @author vudaltsov
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
if (! defined('BASE_DIR'))
|
||||
exit;
|
||||
|
||||
/**
|
||||
* Тег
|
||||
*
|
||||
* @param $alias_id
|
||||
*/
|
||||
function mod_forms($alias_id)
|
||||
{
|
||||
global $AVE_Template;
|
||||
|
||||
require_once(BASE_DIR . '/modules/forms/class/forms.php');
|
||||
|
||||
$forms = new Forms;
|
||||
$forms->tpl_dir = BASE_DIR . '/modules/forms/templates/';
|
||||
|
||||
$lang_file = BASE_DIR . '/modules/forms/lang/' . $_SESSION['user_language'] . '.txt';
|
||||
$AVE_Template->config_load($lang_file);
|
||||
|
||||
echo $forms->form_display($alias_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Паблик
|
||||
*/
|
||||
if (! defined('ACP') && (isset($_REQUEST['module']) && $_REQUEST['module'] == 'forms'))
|
||||
{
|
||||
global $AVE_Template;
|
||||
|
||||
$alias_id = $_REQUEST['alias_id'];
|
||||
|
||||
require_once(BASE_DIR . '/modules/forms/class/forms.php');
|
||||
|
||||
$forms = new Forms();
|
||||
$forms->tpl_dir = BASE_DIR . '/modules/forms/templates/';
|
||||
|
||||
$lang_file = BASE_DIR . '/modules/forms/lang/' . $_SESSION['user_language'] . '.txt';
|
||||
$AVE_Template->config_load($lang_file, 'module');
|
||||
|
||||
switch($_REQUEST['action'])
|
||||
{
|
||||
case '':
|
||||
case 'full':
|
||||
exit ($forms->form_display($alias_id));
|
||||
|
||||
case 'validate':
|
||||
$forms->form_display($alias_id);
|
||||
$forms->_json($forms->form['ajax'], true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Админка
|
||||
*/
|
||||
if (
|
||||
defined('ACP')
|
||||
&& (isset($_REQUEST['moduleaction']) && ! empty($_REQUEST['moduleaction']))
|
||||
&& (isset($_REQUEST['mod']) && $_REQUEST['mod'] == 'forms')
|
||||
)
|
||||
{
|
||||
$fid = !empty($_REQUEST['fid']) ? (int)$_REQUEST['fid'] : 0;
|
||||
|
||||
require_once(BASE_DIR . '/modules/forms/class/forms.php');
|
||||
|
||||
$forms = new Forms();
|
||||
$forms->tpl_dir = BASE_DIR . '/modules/forms/templates/';
|
||||
|
||||
$lang_file = BASE_DIR . '/modules/forms/lang/' . $_SESSION['admin_language'] . '.txt';
|
||||
$AVE_Template->config_load($lang_file, 'module');
|
||||
|
||||
// создаём переменные с версией движка
|
||||
$ave14 = ((float)str_replace(',', '.', APP_VERSION) < 1.5);
|
||||
$AVE_Template->assign('ave14', $ave14);
|
||||
$AVE_Template->assign('ave15', !$ave14);
|
||||
|
||||
switch($_REQUEST['moduleaction'])
|
||||
{
|
||||
case '1':
|
||||
$forms->forms_list();
|
||||
break;
|
||||
|
||||
case 'form_edit':
|
||||
$response = $forms->form_edit($fid);
|
||||
break;
|
||||
|
||||
case 'form_save':
|
||||
$response = $forms->form_save($fid);
|
||||
// если передан запрос на обновление полей, передаём tpl
|
||||
if (isset($_REQUEST['fields_reload']) && $_REQUEST['fields_reload'] == 1)
|
||||
{
|
||||
exit ($forms->form_fields_fetch());
|
||||
}
|
||||
break;
|
||||
|
||||
case 'form_del':
|
||||
$forms->form_del($fid);
|
||||
header('Location: index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp=' . SESSION);
|
||||
exit;
|
||||
|
||||
case 'form_copy':
|
||||
$fid_new = $forms->form_copy($fid);
|
||||
$_SESSION['module_forms_admin'][$fid_new]['edit_alert'] = array('text' => 'copied', 'theme' => 'accept');
|
||||
header('Location: index.php?do=modules&action=modedit&mod=forms&moduleaction=form_edit&fid=' . $fid_new . '&cp=' . SESSION);
|
||||
exit;
|
||||
|
||||
case 'email_validate':
|
||||
$response = (int)$forms->_email_validate($_REQUEST['email']);
|
||||
break;
|
||||
|
||||
case 'alias_validate':
|
||||
$response = $forms->_alias_validate($_REQUEST['alias'],$fid);
|
||||
$response = ($response === 'syn') ? 'syn' : (int)$response;
|
||||
break;
|
||||
|
||||
case 'history_list':
|
||||
$forms->history_list($fid);
|
||||
break;
|
||||
|
||||
case 'email_del':
|
||||
$hid = !empty($_REQUEST['hid']) ? (int)$_REQUEST['hid'] : 0;
|
||||
$forms->email_del($hid);
|
||||
$fid = !empty($_REQUEST['fid']) ? (int)$_REQUEST['fid'] : 0;
|
||||
header('Location: index.php?do=modules&action=modedit&mod=forms&moduleaction=history_list&fid=' . $fid . '&cp=' . SESSION);
|
||||
exit;
|
||||
|
||||
case 'history_dialog':
|
||||
$hid = !empty($_REQUEST['hid']) ? (int)$_REQUEST['hid'] : 0;
|
||||
$forms->history_dialog($hid);
|
||||
break;
|
||||
|
||||
case 'history_dialog_submit':
|
||||
$hid = !empty($_REQUEST['hid']) ? (int)$_REQUEST['hid'] : 0;
|
||||
$forms->history_dialog_submit($hid);
|
||||
break;
|
||||
|
||||
case 'dialog_status':
|
||||
$hid = !empty($_REQUEST['hid']) ? (int)$_REQUEST['hid'] : 0;
|
||||
$forms->dialog_status($hid);
|
||||
break;
|
||||
}
|
||||
|
||||
if ($_REQUEST['ajax'])
|
||||
exit((string)$response);
|
||||
}
|
||||
?>
|
81
forms/sql.php
Normal file
81
forms/sql.php
Normal file
@ -0,0 +1,81 @@
|
||||
<?php
|
||||
if (! defined('BASE_DIR'))
|
||||
exit;
|
||||
|
||||
/**
|
||||
* Модуль "Формы"
|
||||
*
|
||||
*/
|
||||
|
||||
$module_sql_install = array();
|
||||
$module_sql_deinstall = array();
|
||||
$module_sql_update = array();
|
||||
|
||||
// Удаление
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS %%PRFX%%_module_forms_forms;";
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS %%PRFX%%_module_forms_fields;";
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS %%PRFX%%_module_forms_history;";
|
||||
|
||||
// Установка
|
||||
$module_sql_install[] = "
|
||||
CREATE TABLE IF NOT EXISTS `%%PRFX%%_module_forms_forms` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`alias` varchar(20) NOT NULL,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`protection` enum('0','1') NOT NULL DEFAULT '1',
|
||||
`rubheader` text NOT NULL,
|
||||
`form_tpl` text NOT NULL,
|
||||
`mail_set` text NOT NULL,
|
||||
`mail_tpl` text NOT NULL,
|
||||
`finish_tpl` text NOT NULL,
|
||||
`code_onsubmit` text NOT NULL,
|
||||
`code_onvalidate` text NOT NULL,
|
||||
`code_beforesend` text NOT NULL,
|
||||
`code_onsend` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=1;
|
||||
";
|
||||
|
||||
$module_sql_install[] = "
|
||||
CREATE TABLE IF NOT EXISTS `%%PRFX%%_module_forms_fields` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`form_id` int(10) NOT NULL,
|
||||
`active` enum('0','1') NOT NULL DEFAULT '1',
|
||||
`title` varchar(255) NOT NULL,
|
||||
`type` varchar(255) NOT NULL,
|
||||
`main` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`setting` text NOT NULL,
|
||||
`required` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`defaultval` varchar(255) NOT NULL,
|
||||
`attributes` text NOT NULL,
|
||||
`tpl` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=1;
|
||||
";
|
||||
|
||||
$module_sql_install[] = "
|
||||
CREATE TABLE IF NOT EXISTS `%%PRFX%%_module_forms_history` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`form_id` int(10) NOT NULL,
|
||||
`email` varchar(255) NOT NULL,
|
||||
`subject` varchar(255) NOT NULL,
|
||||
`status` enum('new','viewed','replied') NOT NULL DEFAULT 'new',
|
||||
`date` int(10) NOT NULL,
|
||||
`dialog` longtext NOT NULL,
|
||||
`postdata` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=1;
|
||||
";
|
||||
|
||||
// Обновление
|
||||
$module_sql_update[] = "
|
||||
UPDATE `%%PRFX%%_module`
|
||||
SET
|
||||
ModuleAveTag = '" . $module['ModuleAveTag'] . "',
|
||||
ModulePHPTag = '" . $module['ModulePHPTag'] . "',
|
||||
ModuleVersion = '" . $module['ModuleVersion'] . "'
|
||||
WHERE
|
||||
ModuleSysName = '" . $module['ModuleSysName'] . "'
|
||||
LIMIT 1;
|
||||
";
|
||||
?>
|
@ -52,10 +52,10 @@ $smarty['start_alert_theme'] = '{$alert.theme}';
|
||||
<ul>
|
||||
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}" class="toprightDir"></a></li>
|
||||
<li><a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}">{#contacts#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}">{#forms#}</a></li>
|
||||
<li><strong class="code"><a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=form_edit&fid={$fid}&cp={$sess}" {if $ave14}style="float:none; display:inline;"{/if}>{$form.title|escape}</a></strong></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=history_list&fid={$fid}&cp={$sess}">{#history#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}">{#contacts#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}">{#forms#}</a></li>
|
||||
<li><strong class="code"><a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=form_edit&fid={$fid}&cp={$sess}" {if $ave14}style="float:none; display:inline;"{/if}>{$form.title|escape}</a></strong></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=history_list&fid={$fid}&cp={$sess}">{#history#}</a></li>
|
||||
<li><strong class="code"><em style="font-weight:lighter;">{$date|date_format:$TIME_FORMAT|pretty_date}</em> | {$subject|escape}</strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -116,7 +116,7 @@ $smarty['start_alert_theme'] = '{$alert.theme}';
|
||||
{else}
|
||||
<tr class="{if $status==='replied'}yellow{/if}">
|
||||
<td colspan="2" style="padding:15px 10px;">
|
||||
{if $status!=='replied'}<a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=dialog_status&hid={$hid}&status=replied&fid={$fid}&cp={$sess}" class="btn redBtn">{#set_replied#}</a>
|
||||
{if $status!=='replied'}<a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=dialog_status&hid={$hid}&status=replied&fid={$fid}&cp={$sess}" class="btn redBtn">{#set_replied#}</a>
|
||||
{else}
|
||||
<strong>{#marked_replied#}</strong>
|
||||
{/if}
|
||||
@ -127,7 +127,7 @@ $smarty['start_alert_theme'] = '{$alert.theme}';
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<form method="post" class="mainForm" id="response_form" action="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=history_dialog_submit&hid={$hid}&cp={$sess}" data-accept="{#saved#}" data-error="{#notsaved#}">
|
||||
<form method="post" class="mainForm" id="response_form" action="index.php?do=modules&action=modedit&mod=forms&moduleaction=history_dialog_submit&hid={$hid}&cp={$sess}" data-accept="{#saved#}" data-error="{#notsaved#}">
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#write_response#}</h5>
|
||||
@ -177,7 +177,7 @@ $smarty['start_alert_theme'] = '{$alert.theme}';
|
||||
<div class="rowElem">
|
||||
<input type="submit" class="btn basicBtn mousetrap" value="{#save_draft#} (Ctrl+S)" onClick="response_save();return false;" />
|
||||
<button type="submit" class="btn redBtn mousetrap" value="1" name="send">{#send#}</button>
|
||||
<a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=history_list&fid={$fid}&cp={$sess}" class="btn greenBtn">{#return_dialogs#}</a>
|
||||
<a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=history_list&fid={$fid}&cp={$sess}" class="btn greenBtn">{#return_dialogs#}</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
@ -106,21 +106,21 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
<ul>
|
||||
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}" class="toprightDir"></a></li>
|
||||
<li><a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}">{#contacts#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}">{#contacts#}</a></li>
|
||||
{if $fid}
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}">{#forms#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}">{#forms#}</a></li>
|
||||
<li><strong class="code">{$form.title|escape}</strong></li>
|
||||
{/if}
|
||||
<li>{if $fid}{#form_editing#}{else}{#form_creating#}{/if}</strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<form method="post" class="mainForm" id="form_edit" action="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=form_save&fid={$fid}&cp={$sess}" data-accept="{#saved#}" data-error="{#notsaved#}">
|
||||
<form method="post" class="mainForm" id="form_edit" action="index.php?do=modules&action=modedit&mod=forms&moduleaction=form_save&fid={$fid}&cp={$sess}" data-accept="{#saved#}" data-error="{#notsaved#}">
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#main_sets#}</h5>
|
||||
<div class="num">
|
||||
<a class="basicNum" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=history_list&fid={$fid}&cp={$sess}">{#history#}</a>
|
||||
<a class="basicNum" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=history_list&fid={$fid}&cp={$sess}">{#history#}</a>
|
||||
</div>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic settings">
|
||||
@ -145,7 +145,7 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
<td>
|
||||
<div class="pr12" style="display: table;">
|
||||
<input type="text" name="alias" id="form_alias" value="{$form.alias|escape}" class="mousetrap" data-accept="{#alias_accept#}" data-error-syn="{#alias_er_syn#}" data-error-exists="{#alias_er_exists#}" placeholder="{#alias#}" maxlength="20" size="40" />
|
||||
<input type="text" id="form_tag_{$fid}" value="[mod_contactsnew:{if $fid && $form.alias}{$form.alias}{elseif $fid}{$fid}{/if}]" readonly size="40" class="mousetrap" />
|
||||
<input type="text" id="form_tag_{$fid}" value="[mod_forms:{if $fid && $form.alias}{$form.alias}{elseif $fid}{$fid}{/if}]" readonly size="40" class="mousetrap" />
|
||||
<a style="text-align: center; padding: 5px 3px 4px 3px;" class="whiteBtn copyBtn topDir" href="javascript:void(0);" data-clipboard-action="copy" data-clipboard-target="#form_tag_{$form.id}" title="{#cn_copy_to_clipboard#}">
|
||||
<img style="margin-top: -3px; position: relative; top: 4px; padding: 0 3px;" class="clippy" src="{$ABS_PATH}admin/templates/images/clippy.svg" width="13"></a>
|
||||
</div>
|
||||
@ -168,8 +168,6 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
<td>
|
||||
<select style="width:300px" name="demo">
|
||||
<option value="">{#no#}</option>
|
||||
<option value="jqval_cap">{#demo_jqval_cap#}</option>
|
||||
<option value="ajax_jqval_cap">{#demo_ajax_jqval_cap#}</option>
|
||||
<option value="noajax">{#demo_noajax#}</option>
|
||||
<option value="ajax">{#demo_ajax#}</option>
|
||||
<option value="ajax_o">{#demo_ajax_o#}</option>
|
||||
@ -201,7 +199,7 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a class="toprightDir" title="{#tag_path#}" href="javascript:void(0);" onClick="textSelection_rubheader('[tag:path]','');"><strong>[tag:path]</strong></a></td>
|
||||
<td rowspan="{if $smarty.const.GOOGLE_PUBLIC_RECAPTCHA3_KEY && $smarty.const.GOOGLE_PRIVATE_RECAPTCHA3_KEY}4{else}3{/if}">
|
||||
<td rowspan="3">
|
||||
<textarea wrap="off" name="rubheader" id="rubheader">{$form.rubheader|escape}</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
@ -211,11 +209,6 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
<tr>
|
||||
<td><a class="toprightDir" title="{#tag_css#}" href="javascript:void(0);" onClick="textSelection_rubheader('[tag:css:]','');"><strong>[tag:css:FFF:P]</strong></a>, <a class="toprightDir" title="{#tag_js#}" href="javascript:void(0);" onClick="textSelection_rubheader('[tag:js:]','');"><strong>[tag:js:FFF:P]</strong></a></td>
|
||||
</tr>
|
||||
{if $smarty.const.GOOGLE_PUBLIC_RECAPTCHA3_KEY && $smarty.const.GOOGLE_PRIVATE_RECAPTCHA3_KEY}
|
||||
<tr>
|
||||
<td><a class="toprightDir" title="{#title_pub_key_recap#}" href="javascript:void(0);" onClick="textSelection_rubheader('{$smarty.const.GOOGLE_PUBLIC_RECAPTCHA3_KEY}','');"><strong>{#public_key_recaptcha_v3#}</strong></a></td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td>HTML tags</td>
|
||||
<td> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<ol>', '</ol>');"><strong>OL</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<ul>', '</ul>');"><strong>UL</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<li>', '</li>');"><strong>LI</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<p class="">', '</p>');"><strong>P</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<strong>', '</strong>');"><strong>B</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<em>', '</em>');"><strong>I</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<h1>', '</h1>');"><strong>H1</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<h2>', '</h2>');"><strong>H2</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<h3>', '</h3>');"><strong>H3</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<h4>', '</h4>');"><strong>H4</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<h5>', '</h5>');"><strong>H5</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<div class="" id="">', '</div>');"><strong>DIV</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<a href="" title="">', '</a>');"><strong>A</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<img src="" alt="" />', '');"><strong>IMG</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<span>', '</span>');"><strong>SPAN</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<pre>', '</pre>');"><strong>PRE</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('<br />', '');"><strong>BR</strong></a> | <a href="javascript:void(0);" onClick="textSelection_rubheader('\t', '');"><strong>TAB</strong></a> | </td>
|
||||
@ -257,7 +250,7 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong><a title="{#tag_fld#}" class="toprightDir" href="javascript:void(0);" onClick="textSelection_form_tpl('[tag:fld:]', '');">[tag:fld:XXX]</a></strong></td>
|
||||
<td rowspan="{if $smarty.const.GOOGLE_PUBLIC_RECAPTCHA3_KEY && $smarty.const.GOOGLE_PRIVATE_RECAPTCHA3_KEY}17{else}16{/if}"><textarea name="form_tpl" id="form_tpl" wrap="off">{$form.form_tpl|escape}</textarea></td>
|
||||
<td rowspan="16"><textarea name="form_tpl" id="form_tpl" wrap="off">{$form.form_tpl|escape}</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong><a title="{#tag_title#}" class="toprightDir" href="javascript:void(0);" onClick="textSelection_form_tpl('[tag:title:]', '');">[tag:title:XXX]</a></strong></td>
|
||||
@ -304,11 +297,6 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
<tr>
|
||||
<td><a class="toprightDir" href="javascript:void(0);" onClick="textSelection_form_tpl('[tag:sitehost]','');" title="{#tag_sitehost#}"><strong>[tag:sitehost]</strong></a></td>
|
||||
</tr>
|
||||
{if $smarty.const.GOOGLE_PUBLIC_RECAPTCHA3_KEY && $smarty.const.GOOGLE_PRIVATE_RECAPTCHA3_KEY}
|
||||
<tr>
|
||||
<td><a class="toprightDir" href="javascript:void(0);" onClick="textSelection_form_tpl('{$smarty.const.GOOGLE_PUBLIC_RECAPTCHA3_KEY}','');" title="{#title_pub_key_recap#}"><strong>{#public_key_recaptcha_v3#}</strong></a></td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td>HTML Tags</td>
|
||||
<td> | <a href="javascript:void(0);" onClick='textSelection_form_tpl("<form action=\"\" method=\"post\" id=\"[tag:formalias]\" enctype=\"multipart/form-data\" role=\"form\">", "\n</form>\n");'><strong>FORM</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<ol>', '</ol>');"><strong>OL</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<ul>', '</ul>');"><strong>UL</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<li>', '</li>');"><strong>LI</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<p class="">', '</p>');"><strong>P</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<strong>', '</strong>');"><strong>B</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<em>', '</em>');"><strong>I</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<h1>', '</h1>');"><strong>H1</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<h2>', '</h2>');"><strong>H2</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<h3>', '</h3>');"><strong>H3</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<h4>', '</h4>');"><strong>H4</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<h5>', '</h5>');"><strong>H5</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<div class="" id="">', '</div>');"><strong>DIV</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<a href="" title="">', '</a>');"><strong>A</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<img src="" alt="" />', '');"><strong>IMG</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<span>', '</span>');"><strong>SPAN</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<pre>', '</pre>');"><strong>PRE</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('<br />', '');"><strong>BR</strong></a> | <a href="javascript:void(0);" onClick="textSelection_form_tpl('\t', '');"><strong>TAB</strong></a> | </td>
|
||||
@ -317,7 +305,7 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
</table>
|
||||
<div class="rowElem">
|
||||
<input type="submit" class="btn basicBtn mousetrap" value="{#save#} (Ctrl+S)" />
|
||||
<a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}" class="btn greenBtn">{#return_to_forms#}</a>
|
||||
<a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}" class="btn greenBtn">{#return_to_forms#}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -494,7 +482,7 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
</table>
|
||||
<div class="rowElem">
|
||||
<input type="submit" class="btn basicBtn mousetrap" value="{#save#} (Ctrl+S)" />
|
||||
<a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}" class="btn greenBtn">{#return_to_forms#}</a>
|
||||
<a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}" class="btn greenBtn">{#return_to_forms#}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -549,7 +537,7 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
</table>
|
||||
<div class="rowElem">
|
||||
<input type="submit" class="btn basicBtn mousetrap" value="{#save#} (Ctrl+S)" />
|
||||
<a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}" class="btn greenBtn">{#return_to_forms#}</a>
|
||||
<a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}" class="btn greenBtn">{#return_to_forms#}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -574,6 +562,12 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
<tr>
|
||||
<td><textarea name="code_onvalidate" id="code_onvalidate" wrap="off">{$form.code_onvalidate|escape}</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h6>{#code_beforesend#}</h6></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><textarea name="code_beforesend" id="code_beforesend" wrap="off">{$form.code_beforesend|escape}</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h6>{#code_onsend#}</h6></td>
|
||||
</tr>
|
||||
@ -584,9 +578,10 @@ $smarty['_refresh'] = '{#refresh#}';
|
||||
</table>
|
||||
<div class="rowElem">
|
||||
<input type="submit" class="btn basicBtn mousetrap" value="{#save#} (Ctrl+S)" />
|
||||
<a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}" class="btn greenBtn">{#return_to_forms#}</a>
|
||||
<a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}" class="btn greenBtn">{#return_to_forms#}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/if}
|
||||
</form>
|
||||
|
||||
@ -624,7 +619,7 @@ function form_save (fields_reload, data) {
|
||||
if (data.fields_reload == 1) fields_appendto.height(fields_appendto.height()).empty().append(response).height('auto').updateContent().css('opacity',1);
|
||||
}
|
||||
else {
|
||||
document.location.href = 'index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=form_edit&fid='+parseInt(response)+'&cp='+$sess;
|
||||
document.location.href = 'index.php?do=modules&action=modedit&mod=forms&moduleaction=form_edit&fid='+parseInt(response)+'&cp='+$sess;
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
@ -634,7 +629,7 @@ function form_save (fields_reload, data) {
|
||||
}
|
||||
|
||||
// навешиваем функционал на пришедший аяксом контент
|
||||
(function($)
|
||||
(function($)
|
||||
{
|
||||
$.fn.updateContent = function()
|
||||
{
|
||||
@ -657,7 +652,7 @@ $(document)
|
||||
var alias = input.val();
|
||||
if (alias > '') {
|
||||
$.ajax({
|
||||
url: 'index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=alias_validate&cp='+$sess,
|
||||
url: 'index.php?do=modules&action=modedit&mod=forms&moduleaction=alias_validate&cp='+$sess,
|
||||
data: {
|
||||
alias: alias,
|
||||
ajax: 1,
|
||||
@ -675,13 +670,13 @@ $(document)
|
||||
$.jGrowl(input.attr('data-error-exists'), {theme: 'error'});
|
||||
alias = $fid ? $fid : '';
|
||||
}
|
||||
$('#form_tag_'+$fid).val('[mod_contactsnew:'+alias+']');
|
||||
$('#form_tag_'+$fid).val('[mod_forms:'+alias+']');
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
alias = $fid ? $fid : '';
|
||||
$('#form_tag_'+$fid).val('[mod_contactsnew:'+alias+']');
|
||||
$('#form_tag_'+$fid).val('[mod_forms:'+alias+']');
|
||||
}
|
||||
})
|
||||
// кнопки добавления
|
||||
@ -708,7 +703,7 @@ $(document)
|
||||
e.preventDefault();
|
||||
var email = $(this).val();
|
||||
$.ajax({
|
||||
url: 'index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=email_validate&cp='+$sess,
|
||||
url: 'index.php?do=modules&action=modedit&mod=forms&moduleaction=email_validate&cp='+$sess,
|
||||
data: {
|
||||
email: email,
|
||||
ajax: 1
|
@ -216,13 +216,7 @@
|
||||
<tr class="form_field_tpl_tr {if !$field_tpl_open[$field_id]}hide{/if}">
|
||||
<td colspan="8">
|
||||
<div class="col-half">
|
||||
<h6>{#attributes#} {#info_attr_name#}
|
||||
<div class="pr12" style="display: inline"><span style="color:#2474B0">name="</span>
|
||||
<input type="text" id="field_name_{$form.id}" value="form-{if $form.alias}{$form.alias}{else}{$form.id}{/if}[{$field.id}]" style="width:120px; display: table-cell" readonly class="mousetrap" /><span style="color:#2474B0">"</span>
|
||||
<a style="display: table-cell; text-align: center" class="whiteBtn copyBtn topDir" href="javascript:void(0);" data-clipboard-action="copy" data-clipboard-target="#field_name_{$form.id}" title="{#cn_copy_to_clipboard#}">
|
||||
<img style="margin-top: -3px; position: relative; top: 4px; padding: 0 3px;" class="clippy" src="{$ABS_PATH}admin/templates/images/clippy.svg" width="13"></a>
|
||||
</div>
|
||||
</h6>
|
||||
<h6>{#attributes#}</h6>
|
||||
<textarea name="fields[{$field.id}][attributes]" id="field_attr[{$field.id}]" placeholder="{#attributes#}" class="mousetrap" rows="8">{$field.attributes|escape}</textarea>
|
||||
<div> |
|
||||
php |
|
||||
@ -401,5 +395,4 @@
|
||||
<script>
|
||||
$('.form_field_tpl_tr.hide').hide();
|
||||
</script>
|
||||
<!-- /Скрываем поля -->
|
||||
<script type="text/javascript">var clipboard = new Clipboard('.copyBtn');</script>
|
||||
<!-- /Скрываем поля -->
|
19
contactsnew/templates/forms.tpl → forms/templates/forms.tpl
Executable file → Normal file
19
contactsnew/templates/forms.tpl → forms/templates/forms.tpl
Executable file → Normal file
@ -13,7 +13,6 @@
|
||||
<ul style="list-style: none; margin-left:0px;">
|
||||
<li>{#mod_info#}</li>
|
||||
<li><strong>{#cn_mod_info#}<a class="doclink" href="index.php?do=settings&cp={$sess}">{#cn_mod_info_a#}</a></strong></li>
|
||||
<li>{if $smarty.const.GOOGLE_PUBLIC_RECAPTCHA3_KEY && $smarty.const.GOOGLE_PRIVATE_RECAPTCHA3_KEY}<span style="color:green">{#found_key_recap_v3#}</span>{else}<span style="color:red">{#notfound_key_recap_v3_1#}</span>{#notfound_key_recap_v3_2#}<a class="doclink" href="index.php?do=settings&sub=case&cp={$sess}">{#notfound_key_recap_v3_3#}</a>{/if}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@ -22,7 +21,7 @@
|
||||
<ul>
|
||||
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}" class="toprightDir"></a></li>
|
||||
<li><a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}">{#contacts#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}">{#contacts#}</a></li>
|
||||
<li><strong class="code">{#forms#}</strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -31,7 +30,7 @@
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#forms#}</h5>
|
||||
<div class="num">
|
||||
<a class="basicNum" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=form_edit&cp={$sess}" target="_self">{#form_new#}</a>
|
||||
<a class="basicNum" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=form_edit&cp={$sess}" target="_self">{#form_new#}</a>
|
||||
</div>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm" id="forms">
|
||||
@ -61,28 +60,28 @@
|
||||
<tr>
|
||||
<td align="center">{$form.id}</td>
|
||||
<td align="center">
|
||||
<strong><a class="toprightDir" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=form_edit&fid={$form.id}&cp={$sess}" title="{#edit#}">{$form.title|stripslashes|escape}
|
||||
<strong><a class="toprightDir" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=form_edit&fid={$form.id}&cp={$sess}" title="{#edit#}">{$form.title|stripslashes|escape}
|
||||
</a></strong>
|
||||
</td>
|
||||
<td nowrap="nowrap">{if $form.history_new > 0}<strong><a class="topDir doclink btn redBtn" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=history_list&fid={$form.id}&cp={$sess}" title="{#look#}">{#list_new#}: {$form.history_new}</a></strong>{else}<a class="btn whiteBtn" style="cursor: default" href="javascript:void(0);">{#list_new#}: {$form.history_new}{/if}</a></td>
|
||||
<td nowrap="nowrap">{if $form.history_new > 0}<strong><a class="topDir doclink btn redBtn" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=history_list&fid={$form.id}&cp={$sess}" title="{#look#}">{#list_new#}: {$form.history_new}</a></strong>{else}<a class="btn whiteBtn" style="cursor: default" href="javascript:void(0);">{#list_new#}: {$form.history_new}{/if}</a></td>
|
||||
<td nowrap="nowrap"><a style="cursor: default" class="btn blueBtn" href="javascript:void(0);">{#list_viewed#}: {$form.history_viewed}</a></td>
|
||||
<td nowrap="nowrap"><a style="cursor: default" class="btn greenBtn" href="javascript:void(0);">{#list_replied#}: {$form.history_replied}</a></td>
|
||||
<td nowrap="nowrap"><a title="{#cn_count_messages#}{$form.history_new+$form.history_viewed+$form.history_replied}" class="topDir btn greyishBtn" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=history_list&fid={$form.id}&cp={$sess}">{#cn_view#}</a></td>
|
||||
<td nowrap="nowrap"><a title="{#cn_count_messages#}{$form.history_new+$form.history_viewed+$form.history_replied}" class="topDir btn greyishBtn" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=history_list&fid={$form.id}&cp={$sess}">{#cn_view#}</a></td>
|
||||
<td>
|
||||
<div class="pr12" style="display: table">
|
||||
<input type="text" id="form_tag_{$form.id}" value="[mod_contactsnew:{if $form.alias}{$form.alias}{else}{$form.id}{/if}]" style="width:180px; display: table-cell" readonly class="mousetrap" />
|
||||
<input type="text" id="form_tag_{$form.id}" value="[mod_forms:{if $form.alias}{$form.alias}{else}{$form.id}{/if}]" style="width:180px; display: table-cell" readonly class="mousetrap" />
|
||||
<a style="display: table-cell; text-align: center" class="whiteBtn copyBtn topDir" href="javascript:void(0);" data-clipboard-action="copy" data-clipboard-target="#form_tag_{$form.id}" title="{#cn_copy_to_clipboard#}">
|
||||
<img style="margin-top: -3px; position: relative; top: 4px; padding: 0 3px;" class="clippy" src="{$ABS_PATH}admin/templates/images/clippy.svg" width="13"></a>
|
||||
</div>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a class="topDir icon_sprite ico_edit" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=form_edit&fid={$form.id}&cp={$sess}" title="{#edit#}"></a>
|
||||
<a class="topDir icon_sprite ico_edit" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=form_edit&fid={$form.id}&cp={$sess}" title="{#edit#}"></a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a class="topleftDir icon_sprite ico_copy" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=form_copy&fid={$form.id}&cp={$sess}" title="{#copy#}"></a>
|
||||
<a class="topleftDir icon_sprite ico_copy" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=form_copy&fid={$form.id}&cp={$sess}" title="{#copy#}"></a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a class="topleftDir icon_sprite ico_delete ConfirmDelete" dir="{#deleting#}" name="{#form_deleting#}" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=form_del&fid={$form.id}&cp={$sess}" title="{#delete#}"></a>
|
||||
<a class="topleftDir icon_sprite ico_delete ConfirmDelete" dir="{#deleting#}" name="{#form_deleting#}" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=form_del&fid={$form.id}&cp={$sess}" title="{#delete#}"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{foreachelse}
|
@ -24,9 +24,9 @@ $smarty['stat_viewed'] = '{#stat_viewed#}';
|
||||
<ul>
|
||||
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}" class="toprightDir"></a></li>
|
||||
<li><a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}">{#contacts#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}">{#forms#}</a></li>
|
||||
<li><strong class="code"><a href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=form_edit&fid={$fid}&cp={$sess}" {if $ave14}style="float:none; display:inline;"{/if}>{$form.title|escape}</a></strong></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}">{#contacts#}</a></li>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}">{#forms#}</a></li>
|
||||
<li><strong class="code"><a href="index.php?do=modules&action=modedit&mod=forms&moduleaction=form_edit&fid={$fid}&cp={$sess}" {if $ave14}style="float:none; display:inline;"{/if}>{$form.title|escape}</a></strong></li>
|
||||
<li>{#history#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -35,7 +35,7 @@ $smarty['stat_viewed'] = '{#stat_viewed#}';
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#history#}</h5>
|
||||
<div class="num">
|
||||
<a class="basicNum" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=1&cp={$sess}" target="_self">{#cn_return_list_form#}</a>
|
||||
<a class="basicNum" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=1&cp={$sess}" target="_self">{#cn_return_list_form#}</a>
|
||||
</div>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm" id="forms">
|
||||
@ -62,7 +62,7 @@ $smarty['stat_viewed'] = '{#stat_viewed#}';
|
||||
<span class="date_text dgrey">{$dialog.date|date_format:$TIME_FORMAT|pretty_date}</span>
|
||||
</td>
|
||||
<td>
|
||||
<strong><a class="toprightDir" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=history_dialog&hid={$dialog.id}&cp={$sess}" title="{#look#}">{$dialog.subject|stripslashes|escape}</a></strong>
|
||||
<strong><a class="toprightDir" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=history_dialog&hid={$dialog.id}&cp={$sess}" title="{#look#}">{$dialog.subject|stripslashes|escape}</a></strong>
|
||||
</td>
|
||||
<td>
|
||||
<a href="mailto:{$dialog.email}" title="{#write_email#}" class="topDir">{$dialog.email}</a>
|
||||
@ -78,7 +78,7 @@ $smarty['stat_viewed'] = '{#stat_viewed#}';
|
||||
{/if}
|
||||
</td>
|
||||
<td align="center">
|
||||
<a class="topleftDir icon_sprite ico_delete ConfirmDelete" dir="{#deleting#}" name="{#cn_del_mail#}" href="index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=email_del&hid={$dialog.id}&fid={$fid}&cp={$sess}" title="{#delete#}"></a>
|
||||
<a class="topleftDir icon_sprite ico_delete ConfirmDelete" dir="{#deleting#}" name="{#cn_del_mail#}" href="index.php?do=modules&action=modedit&mod=forms&moduleaction=email_del&hid={$dialog.id}&fid={$fid}&cp={$sess}" title="{#delete#}"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{foreachelse}
|
||||
@ -109,7 +109,7 @@ function status_change (sel) {
|
||||
var td = sel.parents('td');
|
||||
var hid = sel.attr('data-hid');
|
||||
$.ajax({
|
||||
url: 'index.php?do=modules&action=modedit&mod=contactsnew&moduleaction=dialog_status',
|
||||
url: 'index.php?do=modules&action=modedit&mod=forms&moduleaction=dialog_status',
|
||||
type: 'POST',
|
||||
data: {
|
||||
hid: hid,
|
Loading…
x
Reference in New Issue
Block a user