0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 862 Просмотров
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Собственно, сабж. Как?

Есть штатный тип поля captcha, но если его объявить в форме, то выводится он как простое текстовое поле. Что нужно для нормального вывода и функционирование CAPTCHA?
Плагин включен, ключи указаны, версия 2
« Последнее редактирование: 16.03.2016, 07:57:24 от b2z »
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Странно. Должно выводится без танцев с бубном. В com_users же работает.

P.S.
У себя пока не приходилось использовать.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
в com_users выводятся все поля в цикле, берутся из XML, может плагин срабатывает при как раз рендере из XML?
у меня в частности модуль, простая форма обратной связи
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
в общем, если понял правильно, поля, описанные в /libraries/cms/form/field/, рендерятся только изнутри JForm, который вызывается при построении форм в компонентах
если инпут прописывать в шаблоне вида напрямую, то поля из /libraries/cms/form/field/ не рендерятся

вопрос: как в модуле, без использования компонента, построить форму с использованием XML и JForm? или я в очередной раз изобретаю велосипед на 10 колесах?
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Решение, найденное с помощью Istaan:

1) форма (тег form) должна обязательно иметь атрибут name

2) в шаблоне вида пишем:
Код: php
<?php
$captcha_plugin = JFactory::getApplication()->getParams()->get('captcha', JFactory::getConfig()->get('captcha'));
if (($captcha_field = JCaptcha::getInstance($captcha_plugin, array('namespace' => 'имя формы (содержимое атрибута name тега form)')))!= null)
echo $captcha_field->display('captcha', 'id поля', 'класс поля (необязателен)');
?>

3) там, где обрабатываем результаты формы (хелпер модуля в моем случае) пишем в самом начале, сразу после проверки сессионного токена:
Код: php
$captcha_plugin = JFactory::getApplication()->getParams()->get('captcha', JFactory::getConfig()->get('captcha'));
$captcha_result = JCaptcha::getInstance($captcha_plugin)->checkAnswer($input->getString('g-recaptcha-response'));
if (!$captcha_result) {
// тут вывод сообщения об ошибке
return;
}

Решено.
« Последнее редактирование: 16.03.2016, 01:23:58 от AlekVolsk »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[РЕШЕНО] Дублирование при создании

Автор platonische

Ответов: 7
Просмотров: 924
Последний ответ 12.02.2021, 11:24:26
от platonische
[РЕШЕНО] onChange в админке на field modal

Автор platonische

Ответов: 1
Просмотров: 381
Последний ответ 30.01.2021, 16:40:45
от platonische
com_ajax использование модуля

Автор Wertos

Ответов: 32
Просмотров: 4680
Последний ответ 24.11.2019, 18:33:57
от CB9T
[РЕШЕНО] Сохранение значений полей добавленных динамически элементу

Автор platonische

Ответов: 30
Просмотров: 2056
Последний ответ 10.11.2019, 15:42:33
от platonische
[РЕШЕНО] Присвоить значения динамическому полю SimpleXMLElement

Автор platonische

Ответов: 4
Просмотров: 757
Последний ответ 08.11.2019, 11:13:27
от platonische