Капча с рекламой, на которой можно заработать.
Работа с сайтом parrotify.com
Руководство
http://smages.com/images/koryazzmz.jpg

Руководство для 1.10.X

1 В папке /core/classes/ необходимо создать файл с именем parrotify.class.php со следующим кодом:

Код:
<?php
 
class parrotify
{
 
    const validateURL = 'http://api.parrotify.com/validate';
 
    public static function validate($value)
    {
        $cookie = $_COOKIE["_cpathca"];
        $data = array(
            'captcha[value]' => $value,
            'captcha[key]'   => $cookie ? $cookie : null,
        );
 
        $data = http_build_query($data);
 
        $options = array(
            'http'=> array(
                'method'  => 'POST',
                'header'  => 'Content-type: application/x-www-form-urlencoded',
                'content' => $data,
            ),
        );
        $context = stream_context_create($options);
        $fp = fopen(self::validateURL, 'rb', false, $context);
        $result = stream_get_contents($fp);
        fclose($fp);
 
        return $result == 1;
    }
}

Класс будет проверять правильность пользовательского ввода.

2 Заменить содержимое файла /templates/_default_/special/captcha.php на следующий код:

Код:
<div id="parrotify_captcha"></div>
<script>
    parrotifyCaptcha.create('parrotify_captcha', {name:'<?= $input_name ?>'});
</script>

Теперь вместо стандарной капчи будет выводиться Parrotify Captcha

3 В файле /templates/_default_/template.php после 35 строки необходимо добавить добавить 2 строки:

Код:
 
    //подключаем parrotify captcha
    $this->addHead('<script src="http://api.parrotify.com/start_ajax.js"></script>');

4 И наконец в файле /core/cms.php необходимо заменить тело функции checkCaptchaCode на код:

Код:
 
    cmsCore::loadClass('parrotify');
    return parrotify::validate($code);

Это и есть проверка правильности ввода.

5 В самый конец файла /languages/ru/components/registration.php добавить строку:

Код:
$_LANG['SECUR_SPAM_TEXT']          = '';

Удалим со страницы регистрации фразу Введите число, изображенное на картинке ;)

После всех этих манипуляций при добавлении комментариев и регистрации пользователей будет отображаться капча Parrotify.

Не забывайте зарегистрироваться на parrotify.com и добавить свой домен

Руководство для 2.0

1 создать папку /system/sontrollers/parrotifyCaptcha, в ней создать два файла, frontend.php с содержимым:

Код:
<?php
 
class parrotifyCaptcha extends cmsController
{
    const validateURL = 'http://api.parrotify.com/validate';
 
    public function onCaptchaHtml($params=array())
    {
        $html = '<div id="parrotify_captcha" style="padding-bottom:.5em"><script src="http://api.parrotify.com/start.js"></script></div>';
        return $html;
    }
 
    public function onCaptchaValidate($request)
    {
        $cookie = $_COOKIE["_cpathca"];
        $data = array(
            'captcha[value]' => $request->get('captcha_name'),
            'captcha[key]'   => $cookie ? $cookie : null,
        );
 
        $data = http_build_query($data);
 
        $options = array(
            'http'=> array(
                'method'  => 'POST',
                'header'  => 'Content-type: application/x-www-form-urlencoded',
                'content' => $data,
            ),
        );
        $context = stream_context_create($options);
        $fp = fopen(self::validateURL, 'rb', false, $context);
        $result = stream_get_contents($fp);
        fclose($fp);
 
        return $result == 1;
    }
 
}

и файл manufest.php с содержимым:

Код:
<?php
 
return array(
    'hooks' => array(
        'captcha_html',
        'captcha_validate',
    ),
);

2 переименовать файл /system/controllers/recaptcha/manifest.php в manifest-kill.php. Данное действие полностью отключит рекапчу.

Не забывайте зарегистрироваться на parrotify.com и добавить свой домен

Теги: альтернатива,капче ,instantcms