1. Открываем файл по пути "/system/languages/ru/controllers/comments/comments.php". После шестой строки:
define('LANG_COMMENTS_OPT_IS_GUESTS_HINT', 'Незарегистрированные пользователи смогут добавлять комментарии');
define('LANG_COMMENTS_CAPCHA_FOR_GUESTS_HINT', 'Отображать капчу при добавлении комментариея гостем чтобы избежать спама в комментариях');
define('LANG_COMMENTS_CAPCHA_FOR_GUESTS_HINT', 'Show the captcha by adding a guest commentary to avoid comment spam');
2. Дальше открываем файл по пути: "/system/controllers/comments/backend/forms/form_options.php". После 16 строки(после блока
'title' => LANG_COMMENTS_OPT_IS_GUESTS, 'hint' => LANG_COMMENTS_OPT_IS_GUESTS_HINT, )),
'title' => LANG_COMMENTS_CAPCHA_FOR_GUESTS, 'hint' => LANG_COMMENTS_CAPCHA_FOR_GUESTS_HINT, )),
3. Теперь идём в файл "/templates/имя_используемого_шаблона(исходный шаблон — default)/controllers/comments/list.tpl.php". После шестой строки:
<?php $is_karma_allowed = $user->is_logged && !cmsUser::isPermittedLimitHigher('comments', 'karma', $user->karma); ?>
<?php $captcha_for_guests = cmsEventsManager::hook('captcha_html'); ?>
<?php echo $user->is_logged ? html_editor('content') : html_textarea('content'); ?>
<?php if (!$user->is_logged && $enable_capcha) { echo $captcha_for_guests; } ?>
4. Теперь открываем файл "/system/controllers/comments/actions/submit.php". В этом файле сразу после 136-ой строки (после блока кода:
'user_id' => $user->id, 'parent_id' => $parent_id, 'target_controller' => $target_controller, 'target_subject' => $target_subject, 'target_id' => $target_id, 'content' => $content, 'content_html' => $content_html, 'author_url' => $user->ip );
if (!$user->is_logged && $enable_capcha) { $is_captcha_for_comments_valid = cmsEventsManager::hook('captcha_validate', $this->request); if (!$is_captcha_for_comments_valid) { 'error' => 'capcha_invalid', 'message' => LANG_CAPTCHA_ERROR ); $template->renderJSON($result_capcha_invalid); } }
Теперь смотрим в админеке комментариев в опциях должен появиться параметр "Показывать капчу гостям" и если вы его включите то для всех кто не зарегистрировался при попытке добавить комментарий будет выводиться капча. Демо здесь, recapcha для гостей включена.
Архив с обновлёнными файлами для добавления рекапчи в комментарии. Работает на 2.5.0-2.5.1 с другими версиями не тестился, чтобы установить просто извлекаем всё из архива в корень сайта с заменой предварительно сделав бэкап.