Drupal → Добавляем в системный журнал функцию блокировки по ip
Код добавляет в записи системного журнала ссылку на блокировку адреса:
После клика на ссылке, адрес попадает в чёрный список (admin/user/rules
).
/** * Implements hook_menu(). */ function mymodule_menu() { $items = array(); $items['ban/%'] = array( 'page callback' => 'mymodule_ban_by_ip', 'page arguments' => array(1), 'access arguments' => array('administer permissions'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements template_preprocess_page(). */ function mymodule_preprocess_page(&$vars) { $item = menu_get_item(); if ($item['path'] == 'admin/reports/event/%') { $link = '<a href="' . $GLOBALS['base_path'] . 'ban/$1?destination=' . $_GET['q'] . '">забанить</a>'; $vars['content'] = preg_replace( '#<th>' . t('Hostname') . '</th><td>(.+?)</td>#', '<th>' . t('Hostname') . '</th><td>$1 [ ' . $link . ' ]</td>', $vars['content'] ); } } /** * Ban user by IP. */ function mymodule_ban_by_ip($ip) { if ($ip != ip_address()) { db_query("INSERT INTO {access} (mask, type, status) VALUES ('%s', '%s', %d)", $ip, 'host', 0); drupal_set_message('Адрес заблокирован'); } drupal_goto(); }
Комментарии
пасибо, то что надо
здорово, спасибо.
Эта функция есть только в данном модуле или в самом друпале? Проще говоря, модуль только добавляет ссылку на бан ип или добавляет функцию бана в друпал?
функция по ограничению доступа есть в ядре шестого друпала, из семёрки она убрана
у меня почему то при нажатии на линк пустая белая страница с адресом /ban/27.159.194.78?destination=admin/reports/event/3116
что я неправильно сделал? создал ipban папку, файлы ipban.module, ipban.info
функции переименовал в ipban_menu(), ipban_preprocess_page(&$vars), ipban_ban_by_ip($ip)
А можно по подробней, куда этот код вставить?
Переехал на новый сервер и чет перестал модуль работать. В записи системного журнала показывает ip адрес не посетителя-комментатора, а ip адрес сайта. Как исправить?
Первый раз самозабанился, пришлось в phpmyadmin вручную удалить запись в таблице acess))
Оставить комментарий