Если каптча нужна для формы регистрации то делаем
Jun 1, 2015
Если каптча нужна для формы регистрации то делаем так:
- Копируем сниппет «modcaptcha.check_captcha», назовем его «modcaptcha.preHook» и немного меняем ему код, эти строки:
if($response->isError()){
$result = $response->getMessage();
}
else{
$result = 'true';
}
меняем на эти:
if($response->isError()){
$result = false;
}
else{
$result = true;
}
Это нужно для Login'а ибо прехук должен возвращать булево значение.
- В вызов сниппета Register добавляем 2 параметра:
&preHooks=`modcaptcha.preHook`
&captcha_key=`mycaptcha`
первый это сниппет для прехука, второй ключ каптчи
- В форму регистрации добавляем
<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 этого не происходит.