Инфо SmartAddons SJ Contact Ajax - работа с полями

a_MeR

Гуру форума
Регистрация
26 Апр 2009
Сообщения
153
Реакции
77
SJ Contact Ajax - аякс модуль обратной связи с возможностью указать дату (например, для записи на приём), включить капчу,вывести google-карту и некоторые другие дополнительные информационные поля.

Для просмотра ссылки Войди или Зарегистрируйся| Для просмотра ссылки Войди или Зарегистрируйся

Модуль хорош тем, что в нём есть сразу многое, при этом основным его недостатком можно назвать отсутствие возможности гибкой настройки (управление опциями реализовано по минимуму).

На практике пришлось столкнулся с необходимостью убрать поле "дата" (применимо для всех обязательных полей). Для решения данного вопроса перепробовал разные варианты, в итоге опишу рабочий:

Модифицируем следующий файлы:

1) делаем поле "дата" необязательным для заполнения, для этого
удаляем из modules\mod_sj_contact_ajax\tmpl\default_js.php следующий код:


case "date":
var re = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
if (!re.test(value)) {
result.valid = false;
result.mes = "Please enter a valid date";
}
saveValidationState(input, result.valid);
showValidationMessage(input, result);
break;


а также удаляем строчку:

var dateValid = $date.data("validated");

и все такие конструкции: && dateValid и такие || $date_value == ''


а также такой блок:

var timer5 = 0;
$date.on("blur", function () {
if (timer5) {
clearTimeout(timer5);
timer5 = 0;
}
timer5 = setTimeout(function () {
validateInput($date, "date");
}, 1000);
});

var timer6 = 0;
$date.on("keyup", function () {
if (timer6) {
clearTimeout(timer6);
timer6 = 0;
}
timer6 = setTimeout(function () {
validateInput($date, "date");
}, 1000);
});


и еще несколько строчек:


if ($date_value == '') {
validateInput($date, "date");
}





2) Убираем из формы отображение поля "дата", для этого
удаляем из modules\mod_sj_contact_ajax\tmpl\default.php следующий код:


<div class="el-control">
<label for="cainput_date"><?php echo JText::_('DATE_LABEL'); ?></label>
<input type="text" autocomplete="off" name="cainput_date" class="el-input" id="cainput_date"
placeholder="<?php echo JText::_('DATE_LABEL'); ?>">
<span class="ca-tooltip" title="" data-toggle="tooltip"
data-original-title="<?php echo JText::_('DATE_ERROR'); ?>">
<i class="icon-exclamation-sign el-error"></i>
</span>
<i class="icon-ok-sign el-ok"></i>
</div>



__________________________________

Во многих квикстартах от SmartAddons, где используется данный модуль, созданы отдельные шаблоны для sj contact ajax, которые хранятся в папке \templates\ваш_шаблон\html\mod_sj_contact_ajax\, и обычно называются theme1.php, theme1_js.php, то есть это файлы, в которых нужно внести аналогичные правки.

Надеюсь, данное описание кому-то пригодится :sun:
 

Вложения

  • img-2017-04-08-21-56-23.png
    img-2017-04-08-21-56-23.png
    285,2 KB · Просмотры: 16
  • img-2017-04-08-22-01-39.png
    img-2017-04-08-22-01-39.png
    513,3 KB · Просмотры: 19
  • img-2017-04-08-22-09-33.png
    img-2017-04-08-22-09-33.png
    55,5 KB · Просмотры: 17
  • img-2017-04-08-22-10-07.png
    img-2017-04-08-22-10-07.png
    88,4 KB · Просмотры: 16
  • img-2017-04-08-22-08-50.png
    img-2017-04-08-22-08-50.png
    93,8 KB · Просмотры: 16
Последнее редактирование:
SJ Contact Ajax ver. 1.3.2 есть?
 
Назад
Сверху