старый код jcomments

В этой теме я не буду писать много букв, так как завтра 9 мая, надо идти за мясом, а поделиться информацией по поводу запрета на вставку ссылок в комментарии Jcomments можно в пару абзацев. Объясню, что кудой вставить в код плагина, чтобы на сайте Joomla не было спама при работе JC с обычной капчей.

Вообще проблема нарисовалась у меня после обновления движка до 3.9.5, после чего в него не получается интегрировать reCAPTCHA от Google, а без неё сайт есть подарок для спамера. Конечно, решение искать буду, но ограничение на ссылки в комментариях пока помогает, так как спамить без линков глупо.

Итак, нам нужно внести правки в файл:

/components/jcomments/jcomments.php

Там вам надо найти две строки:

if (isset($_REQUEST['jtxf'])) {

require_once(JCOMMENTS_SITE . '/jcomments.ajax.php');

И заменить их на:

if (isset($_REQUEST['jtxf'])) {

    $mystring = JRequest::getVar('comment', '', 'post', 'string');

if (preg_match("/(http|https)/i", $mystring)) {echo "OK"; exit;}

    require_once (JCOMMENTS_BASE.'/jcomments.ajax.php');

У меня это была строка 136, где-то рядом будет и у вас.

новый код JC

Этот код даёт запрет на публикацию ссылок в комментарии, если в тексте есть линк, то он просто не отправляется на публикацию. На обычные комментарии этот никак не влияет.

Проверено на Joomla 3.9.5-3.9.6, PHP 7.3.1 и Jcomments 3.0.7.

Как только найду вариант рабочей интеграции в плагин комментариев reCAPTCHA 2, то сразу поделюсь результатом.