Касперский блокирует модуль ad

Главные вкладки

Аватар пользователя CSoft CSoft 3 августа 2011 в 16:11

Привет, друзья!

Впервые поставил модуль ad, очень классная вещь, гибкие и удобные настройки.

Всё супер, да вот только Касперский (уверен, и другие баннерорезки), увидев в адресе "ad", убивает мою рекламу, которая является не чистой даже, а ссылками на сайты партнёров компании. От того и обидно, что я не монету зарабатываю ведь.

Что нарыл пока сам. Реклама генерируется по ссылке:

sites/all/modules/ad/serve.php?m=jquery&q=1&t=1&u=node&l=node

Можно поменять имя папки модуля на, например, advertisement. Касперскому этого хватило, не знаю, как другим программам.

Затем остаётся уже по клику адрес ad/redirect/... поменять тем же образом. Тут что остаётся - с помощью hook_menu создать свой путь и обрабатывать редирект соответствующей функцией модуля + через hook_nodeapi в таблице {ads} менять адрес на свой.

В общем, костыли. Может, есть другие решения, да получше? Я, в принципе, могу всё это сделать, но уже даже папку переименовывать - как-то неправильно Sad

Буду рад любым советам!

Ссылка по теме: Advertisement » Issues » ad module blocked by ad blockers

Комментарии

Аватар пользователя CSoft CSoft 3 августа 2011 в 16:23

Честно - искал до этого, но не нашёл. Киньте кто-нибудь ссылку, пожалуйста, если помните, где тема!

Аватар пользователя CSoft CSoft 4 августа 2011 в 1:31

Ну всё, сделал так, как написал, Каспер по крайней мере теперь ничего не видит, всё работает. Других программ у меня для проверки нет, так что, вы там посмотрите у себя, кто повторит мой рецепт, отпишитесь, это полезно знать для решения подобной задачи.

Сам рецепт:

function MODULE_menu() {
  $items = array();

  // Создадим свой адрес для обработки кликов по рекламе, который не будет блокироваться
  $items['advertisement/redirect/%'] = array(
    'access arguments' => array('show advertisements'),
    'type' => MENU_CALLBACK,
    'page callback' => 'ad_redirect',
    'page arguments' => (array(2)),
  );

  return $items;
}

function MODULE_nodeapi(&$node, $op, $teaser, $page) {
  switch ($op) {
    case 'insert':
    case 'update':
      // Заменяем в пути модуля ad слово "ad" на "advertisement", чтобы спецпрограммы не резали баннер
      if (isset($node->adtype)) {
        db_query("UPDATE {ads} SET redirect = '%s' WHERE aid = %d", url('advertisement/redirect/'. $node->nid, array('absolute' => TRUE)), $node->nid);
      }
      break;
  }
}

Ну и перед этим всем отключить модуль ad, переименовать папку в advertisement, включить назад, блоки вернуть на место (они слетят), ноды с рекламой пересохранить, чтобы новые пути прописались.

Profit.