Добавляем в системный журнал функцию блокировки по 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&nbsp;&nbsp;[ ' . $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
Теги:
защита от спама
Добавлено: 27 Июля 2018 08:22:41 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...