Замена стандартной капчи в InstantCMS на капчу с рекламой

+38
4.47K
По просьбе трудящихся (т.е. меня) теперь есть руководство по внедрению капчи Parrotify. Это такая капча с рекламой, на которой можно заработать. Я попросил у разработчиков parrotify.com составить данное руководство и они через некоторое время, за что им большое спасибо составили его, причём сразу для двух веток ICMS. Кроме того будем считать это ещё один шажок в продвижении ICMS.

Ссылка на руководство — перейти.

Продублирую здесь.
Для 1.10.х

1 В папке /core/classes/ необходимо создать файл с именем parrotify.class.php со следующим кодом:
  1.  
  2. <?php
  3.  
  4. class parrotify
  5. {
  6.  
  7. const validateURL = 'http://api.parrotify.com/validate';
  8.  
  9. public static function validate($value)
  10. {
  11. $cookie = $_COOKIE["_cpathca"];
  12. $data = array(
  13. 'captcha[value]' => $value,
  14. 'captcha[key]' => $cookie ? $cookie : null,
  15. );
  16.  
  17. $data = http_build_query($data);
  18.  
  19. $options = array(
  20. 'http'=> array(
  21. 'method' => 'POST',
  22. 'header' => 'Content-type: application/x-www-form-urlencoded',
  23. 'content' => $data,
  24. ),
  25. );
  26. $context = stream_context_create($options);
  27. $fp = fopen(self::validateURL, 'rb', false, $context);
  28. $result = stream_get_contents($fp);
  29. fclose($fp);
  30.  
  31. return $result == 1;
  32. }
  33. }
Класс будет проверять правильность пользовательского ввода.

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

  1. <div id="parrotify_captcha"></div>
  2. <script>
  3. parrotifyCaptcha.create('parrotify_captcha', {name:'<?= $input_name ?>'});
  4. </script>
Теперь вместо стандарной капчи будет выводиться Parrotify Captcha

3 В файле /templates/_default_/template.php после 35 строки необходимо добавить добавить 2 строки:
  1.  
  2. //подключаем parrotify captcha
  3. $this->addHead('<script src="http://api.parrotify.com/start_ajax.js"></script>');
4 И наконец в файле /core/cms.php необходимо заменить тело функции checkCaptchaCode на код:
  1.  
  2. cmsCore::loadClass('parrotify');
  3. return parrotify::validate($code);
Это и есть проверка правильности ввода.

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

  1. $_LANG['SECUR_SPAM_TEXT'] = '';
Удалим со страницы регистрации фразу Введите число, изображенное на картинке ;)

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

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

The END
Для 2.х

1 создать папку /system/sontrollers/parrotifyCaptcha, в ней создать два файла, frontend.php с содержимым:
  1.  
  2. <?php
  3.  
  4. class parrotifyCaptcha extends cmsController
  5. {
  6. const validateURL = 'http://api.parrotify.com/validate';
  7.  
  8. public function onCaptchaHtml($params=array())
  9. {
  10. $html = '<div id="parrotify_captcha" style="padding-bottom:.5em"><script src="http://api.parrotify.com/start.js"></script></div>';
  11. return $html;
  12. }
  13.  
  14. public function onCaptchaValidate($request)
  15. {
  16. $cookie = $_COOKIE["_cpathca"];
  17. $data = array(
  18. 'captcha[value]' => $request->get('captcha_name'),
  19. 'captcha[key]' => $cookie ? $cookie : null,
  20. );
  21.  
  22. $data = http_build_query($data);
  23.  
  24. $options = array(
  25. 'http'=> array(
  26. 'method' => 'POST',
  27. 'header' => 'Content-type: application/x-www-form-urlencoded',
  28. 'content' => $data,
  29. ),
  30. );
  31. $context = stream_context_create($options);
  32. $fp = fopen(self::validateURL, 'rb', false, $context);
  33. $result = stream_get_contents($fp);
  34. fclose($fp);
  35.  
  36. return $result == 1;
  37. }
  38.  
  39. }
и файл manifest.php с содержимым:
  1.  
  2. <?php
  3.  
  4. return array(
  5. 'hooks' => array(
  6. 'captcha_html',
  7. 'captcha_validate',
  8. ),
  9. );
2 переименовать файл /system/controllers/recaptcha/manifest.php в manifest-kill.php. Данное действие полностью отключит рекапчу.

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

The END.
Надеюсь меня не заругают за копипаст...

UPD
Разместил у себя на сайте. tos.sitefresh.net/
0
PolarOne PolarOne 10 лет назад #
Довольно таки интересно. Не знал о таком сервисе.
P.S.: куда уже только не пихают рекламу!)))
0
Май Май 10 лет назад #
Капча с рекламой? Чего только не придумают ) А где можно примеры посмотреть, демо?
0
Principal Principal 10 лет назад #
0
shaman888 shaman888 10 лет назад #
0
Май Май 10 лет назад #
Спасибо за примеры. С одной сторону круто - выглядит симпатично, и главное такая капча не пробиваема в принципе. Но по использованию есть сомнение - не будет ли какой то процент уходить по рекламе и забывать о регистрации на сайте? Доходы там копеечные, не стоят потери пользователей. Хотя, если кому то сайт очень интересен, то никакая реклама не свернет его с истинного пути ) Наверное попробую эту штуку на новом проекте. Шаман, спасибо за наводку, плюсую.
0
shaman888 shaman888 10 лет назад #
Всё от проекта зависит. Сайт который я указал рассчитан на разовых пользователей. Тем кому интересно будут подписываться на рассылку. Но это уже пока только в планах.
0
Principal Principal 10 лет назад #
мага круто! И тут самое главное то что ее не пройдет не один бот! Так как сервис оплачивает аж 50 копеек за каждый правильный ввод капчи... И еще сервис работает с Яндексом, сплошные плюсы... Спасибо! +1
0
Май Май 10 лет назад #
Минусы тоже есть. Кто то может уйти по рекламе и забудет о регистрации. А так да, очень круто придумали чуваки )
0
Principal Principal 10 лет назад #
Не проверял, а реклама не в новом окне открывается?
Сам скрипт быстро поставил, все работает как часы, понравилась простота и возможности админки сервиса...
Там реклама то реклама, лучше чем на главной :)
0
Principal Principal 10 лет назад #
нет проверки на накрутку..., могут быть диверсии :)
0
shaman888 shaman888 10 лет назад #
ничего страшного, главное чтобы деньги платили :)
-2
letsgo letsgo 10 лет назад #
Платить они будут меньше половины того, что вы могли бы заработать вставив под свою капчу, свой рекламный баннер. Плюс, фактически доступ чужого кода на свой сайт, что не гуд. В общем может вам решение и нужное, но тем кто захочет применить, лучше риски оценить. Не раз уже безобидные вроде сервисы, оборачивались негативным.
0
lezginka.ru lezginka.ru 10 лет назад #
вообще-то хорошая идея сделать плагин для гугл...

т.е. в плагин вводится вопросы и ответы, которые должны идентифицировать юзверя...а гугл там нужен - в вдруг ему будет интересна реклама
0
Су-27 Су-27 10 лет назад #
А мне понравилась каптча - лучше один раз ввести предложение в этой каптче, чем 10 раз перегружать страницу в re-каптче, где читабельность букв отбивает всякое желание регистрироваться laugh Конечно плюс hoho
0
Raiden Raiden 10 лет назад #
Пользовательское соглашение::
4.7 Пользователь соглашается с тем, что работа с системой дело бесплатное и добровольное, никаких выплат и обязательств Администрация на себя не берёт.
Вот никогда мне эти соглашения не нравились...
letsgo, не тут ли собака зарыта?
+1
shaman888 shaman888 10 лет назад #
у меня пока 47 рублей накапали. как 300 наберу попробую снять денег, потом отпишусь.
для эксперименту можете мне натыкать рекламных переходов и комментов наставить, я потом отпишусь joke
0
Raiden Raiden 10 лет назад #
можете мне натыкать
Я- то натыкаю, ток найти бы куда тыкать) laugh
0
shaman888 shaman888 10 лет назад #
коммент нужно написать просто
0
Raiden Raiden 10 лет назад #
Да я не сразу сайт увидел) Уже ваяю, хочется узнать, не гон ли
0
Raiden Raiden 10 лет назад #
Спойлер
0
Kreator Kreator 10 лет назад #
Отлично, плюсанул везде. Установил - будем посмотреть.
Кто раньше ставил? Выплаты получали?
0
Сергей Сергей 10 лет назад #
Для меня гуд+ благодарю shaman888.
0
Kreator Kreator 10 лет назад #
Как сделать показ капчи при каждом входе на сайт?
0
shaman888 shaman888 10 лет назад #
тебе зачем? Что такой сайт популярный, что не каждому можно войти? scratch
0
Kreator Kreator 10 лет назад #
Каждый пусть заходит - лишь бы не робот
+1
А. МИхаилович ГОлубь А. МИхаилович ГОлубь 10 лет назад #
Если регистрацию прошёл значит не робот. а если не зарегистрирован то и не зайдёт)
Олег Васильевич я Олег Васильевич я 10 лет назад #
Комментарий удален
0
smm_grin smm_grin 10 лет назад #
Как по мне то все идеально, но было бы лучше чтобы сделали решение с возможностью своей рекламы)) Подумайте может кто сделает)) я бы купил такое решение
0
Principal Principal 10 лет назад #
В самой системе это реализовано. Можно поставить галочку и крутить только свои баннеры...
0
Oleg Oleg 10 лет назад #
Я бы еще вот это бы поменял
$_LANG['TYPE_CAPTCHA'] ='Введите фразу, указанную на картинке!';
$_LANG['ERR_CAPTCHA'] ='Неверно указана фраза на картинке!';
0
shaman888 shaman888 10 лет назад #
тогда уже "под картинкой"
0
Oleg Oleg 10 лет назад #
согласен
0
Oleg Oleg 10 лет назад #
вот теперь капча не работает, что-то видимо у них глючит, лучше свою поставить
0
Principal Principal 10 лет назад #
Только что проверил, все работает. Когда не работало? Что показывалось? Какой был результат, были ошибки, не показывалась капча, невозможно было зарегится, зайти?
0
myertelive myertelive 10 лет назад #
У меня возникла пробллема с заменой:
п.4 И наконец в файле /core/cms.php необходимо заменить тело функции checkCaptchaCode на код:
Код PHP:
  1. cmsCore::loadClass('parrotify');
  2. return parrotify::validate($code);
У меня такой код: Строка 2245
Код PHP:
  1. */
  2. public static function checkCaptchaCode($code){
  3. if(!isset($_SESSION['captcha_keystring']) || !isset($code)) { return false; }
  4. if(!$_SESSION['captcha_keystring'] || !$code) { return false; }
  5. $real_code = $_SESSION['captcha_keystring'];
  6. unset($_SESSION['captcha_keystring']);
  7. return ($real_code === $code);
  8. }
  9. // MAIL ROUTINES ////////////////////////////////////////////////////////////////////////////////////////////////////////
Что здесь и где менять?
0
shaman888 shaman888 10 лет назад #
должно стать так:
Код PHP:
  1. */
  2. public static function checkCaptchaCode($code){
  3. cmsCore::loadClass('parrotify');
  4. return parrotify::validate($code);
  5. }
  6. // MAIL ROUTINES ////////////////////////////////////////////////////////////////////////////////////////////////////////
0
myertelive myertelive 10 лет назад #
Попробую, отпишусь. Спасибо
+1
Oleg Oleg 10 лет назад #
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
+1
Principal Principal 10 лет назад #
Спасибо за инфу, очень печально, получается это лохотрон, выплаты и начисления они значит остановили а показ рекламы не остановили, поставили бы тогда заглушки что ли... о каком таком выходи в ноль они говорят и почему мы должны на их выход в ноль работать, почему за наш счет должно происходить развитие их системы... бред какой то, разочаровали, могли бы поставить 2 копейки за правильной ввод изначально и минималку в 50 копеек так работаю САР а они реально очень много сразу пообещали и защиту от накруток не поставили, явно для того что бы набрать площадок лично для себя...
+1
shaman888 shaman888 10 лет назад #
Согласен. Печально. У меня будет стоять до выхода мигратора на двойку, а дальше видно будет. Буду держать в курсе событий. На текущий момент набежала сумма 180руб
0
shaman888 shaman888 10 лет назад #
к стати у меня они сейчас в место рекламы отображается обычная капча и надпись вверху "здесь могла быть ваша реклама"
+1
Parrotify Parrotify 10 лет назад #
Всем привет!
Прежде всего хотим поблагодарить всех кто поставил наш виджет. И извиниться за то, что временно закрыли выплаты. Сейчас мы заканчиваем модификацию сервиса и в ближайшее время он снова откроется с новыми плюшками. Все средства которые были вами заработаны никуда не денутся- вы так же сможете их выводить как и раньше. Кроме того, будет доступна функция пополнения баланса для рекламодателей.
Спасибо что с нами и верите нам!
0
Фёдор Фёдор 10 лет назад #
Здравствуйте! При переходе по ссылке для активации которая пришла в письме выдается такое сообщение: Fatal error: Undefined class constant 'CONST_APPROVED' in /home/kozitsin/data/www/parrotify.com/.protected/models/Account.php on line 154 В чем причина?
0
Parrotify Parrotify 10 лет назад #
Здравствуйте, теперь все в порядке!
0
Oleg Oleg 10 лет назад #
уже почти месяц прошел, капча работала, реклама показывалась, а деньги не платятся
0
Parrotify Parrotify 10 лет назад #
Мы уже заканчиваем работы по таргетингу и совсем скоро полностью вновь откроем выплаты.
0
Parrotify Parrotify 10 лет назад #
Всем привет! Хотим сообщить, что мы открыли статистику и выплаты! Устанавливайте виджет Parrotify Captcha к себе на сайт и зарабатывайте на рекламе! Спасибо, что с нами!

PS
В ближайших планах у нас развитие "Партнерской программы", поэтому следите за новостями!
0
Oleg Oleg 10 лет назад #
Ерунда какая-то, что-то вы фуфлить начали

Дата Показы Переходы CTR,% Оветы Доход
19.06.2014 26 1 3.85 6 1.1
18.06.2014 116 2 1.72 24 3.4
17.06.2014 95 1 1.05 21 2.6
16.06.2014 47 2 4.26 13 2.3

А вот за прошлый месяц, только почему-то единственный день, который видно в статистике, зачем закрывать статистику за прошлый месяц?

18.05.2014 104 5 4.81 18 19
0
Parrotify Parrotify 10 лет назад #
Добрый день!

Статистика работает в штатном режиме, никто ничего не накручивает.
Если вы правда считаете, что в подсчетах закралась ошибка просим вас сообщить нам на support@parrotify.com, мы постараемся максимально быстро дать ответ!
0
Def Def 10 лет назад #
а кто нибудь пробовал прикрутить каптчу от яндекса? очень было бы удобно
0
molchun molchun 9 лет назад #
Капча давно переехала на http://reklamper.com. Соответственно, и скрипты нужно заменить

Еще от автора

Шаблон на компьютерную-интернет тематику
Это переделка сайта с ucoz. Создавался он на той система только по тому, что там без проблем можно было прикрутить домен третьего уровня.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.