Если каптча нужна для формы регистрации то делаем так: 1. Копируем сниппет «modcaptcha.check_captcha», назовем его «modcaptcha.preHook» и немного меняем ему код, эти строки:
if($response->isError()){ $result = $response->getMessage(); } else{ $result = 'true'; }
меняем на эти:
if($response->isError()){ $result = false; } else{ $result = true; }
Это нужно для Login'а ибо прехук должен возвращать булево значение.
2. В вызов сниппета Register добавляем 2 параметра:
&preHooks=`modcaptcha.preHook` &captcha_key=`mycaptcha`
первый это сниппет для прехука, второй ключ каптчи 3. В форму регистрации добавляем
<input type="text" name="mycaptcha"> [[!$modcaptcha? &captcha_key=`mycaptcha`]]
После этих манипуляций должно работать.
PS У меня версия modx 2.3.3 там modCaptcha не заработал. Пришлось подправить немного процессор «modcaptcha/web/check», строку
$code = $this->getProperty('code');
заменил на
$code = $this->modx->request->parameters[$this->getProperty('method')][$key];
Не понятно ошибка это была или раньше modProcessor подгружал в свойства переменные из глобальных массивов, но в версии 2.3.3 этого не происходит.

Вернуться к списку комментариев