We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 32854
    • 9 Posts
    Вообщем, установил свежайший 2.0.5, на него не менее свежайший quip 1.2.2 и наткнулся на интересную проблему - при попытке что-то запостить, QuipReply просто зависает секунд на 10, после чего выводится белая страница. По быстрому порыв в исходниках, выяснилось, что во всем виноват StopForumSpam класс, который дергается в процессорах создания и предпросмотра комментариев. Открыв этот класс, я просто обомлел от удивления - там запрашивается сервис http://www.stopforumspam.com/ (который очень кстати прилег на час-другой отдохнуть) каждый раз при постинге сообщений. Очень плохая музыка. Очень плохое решение. Никакой подстраховки на случай недоступности сервиса или тормозных каналов автор просто не предполагал. Как и отключение (хотя, может я просто невнимательно читал документацию и исходники) всей это жуткой конструкции. Такие дела.

    Уверен, что будут еще люди, которые столкнутся с этой проблемой. Поэтому могу посоветовать вам простой наколеночный вариант решения проблемы:
    if ($modx->loadClass('stopforumspam.StopForumSpam',$quip->config['modelPath'],true,true)) {
        $sfspam = new StopForumSpam($modx);
        $spamResult = $sfspam->check($_SERVER['REMOTE_ADDR'],$_POST['email']);
        if (!empty($spamResult)) {
            $spamFields = implode($modx->lexicon('quip.spam_marked')."\n<br />",$spamResult);
            $errors['email'] = $modx->lexicon('quip.spam_blocked',array(
                'fields' => $spamFields,
            ));
        }
    } else {
        $modx->log(modX::LOG_LEVEL_ERROR,'[Quip] '.$modx->lexicon('quip.sfs_err_load'));
    }
    

    Найти этот кусок кода в файлах \core\components\quip\processors\web\comment\preview.php и \core\components\quip\processors\web\comment\create.php и заккоментировать его на радостях.
    Конечно же найдутся белки истерички, которые будут орать, что их задница останется неприкрытой перед угрозой ужаснейшего спама, но все лучше, чем иметь полностью неработающую систему комментариев на сайте. Всем спасибо.

    Будет отлично, если кто-то предложит альтерантивный вариант решения проблемы без выпиливания класса, но с сохранением работоспособности системы комментирования в моменты "отдыха" сервиса stopforumspam