Добавляем в системный журнал функцию блокировки по 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();
}
Написанное актуально для
Drupal 6.x
Комментарии:
Нету комментариев для вывода...