Ignore:
Timestamp:
Dec 23, 2013, 11:58:09 AM (10 years ago)
Author:
mistic100
Message:

update for 2.6

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/comments_blacklist/main.inc.php

    r19838 r26113  
    44Version: auto
    55Description: Define a list of words which are not authorized in a comment.
    6 Plugin URI: http://piwigo.org/ext/extension_view.php?eid=637
     6Plugin URI: auto
    77Author: Mistic
    88Author URI: http://www.strangeplanet.fr
     
    1111defined('PHPWG_ROOT_PATH') or die('Hacking attempt!');
    1212
    13 defined('COMM_BLACKLIST_ID') or define('COMM_BLACKLIST_ID', basename(dirname(__FILE__)));
     13define('COMM_BLACKLIST_ID',      basename(dirname(__FILE__)));
    1414define('COMM_BLACKLIST_PATH' ,   PHPWG_PLUGINS_PATH . COMM_BLACKLIST_ID . '/');
    1515define('COMM_BLACKLIST_ADMIN',   get_root_url() . 'admin.php?page=plugin-' . COMM_BLACKLIST_ID);
     
    2323{
    2424  add_event_handler('get_admin_plugin_menu_links', 'comm_blacklist_admin_plugin_menu_links');
    25  
    26   function comm_blacklist_admin_plugin_menu_links($menu)
    27   {
    28     array_push($menu, array(
    29       'NAME' => 'Comments Blacklist',
    30       'URL' => COMM_BLACKLIST_ADMIN,
    31     ));
    32     return $menu;
    33   }
    3425}
    3526else
    3627{
    3728  add_event_handler('user_comment_check', 'comm_blacklist_user_comment_check', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
    38   add_event_handler('user_comment_check_albums', 'comm_blacklist_user_comment_check', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
    39   add_event_handler('user_comment_check_guestbook', 'comm_blacklist_user_comment_check', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
    40   include_once(COMM_BLACKLIST_PATH . 'include/functions.inc.php');
    4129}
    4230
     
    4735function comm_blacklist_init()
    4836{
    49   global $conf, $pwg_loaded_plugins;
     37  global $conf;
    5038 
    51   // apply upgrade if needed
    52   if (
    53     COMM_BLACKLIST_VERSION == 'auto' or
    54     $pwg_loaded_plugins[COMM_BLACKLIST_ID]['version'] == 'auto' or
    55     version_compare($pwg_loaded_plugins[COMM_BLACKLIST_ID]['version'], COMM_BLACKLIST_VERSION, '<')
    56   )
    57   {
    58     include_once(COMM_BLACKLIST_PATH . 'include/install.inc.php');
    59     comm_blacklist_install();
    60    
    61     if ( $pwg_loaded_plugins[COMM_BLACKLIST_ID]['version'] != 'auto' and COMM_BLACKLIST_VERSION != 'auto' )
    62     {
    63       $query = '
    64 UPDATE '. PLUGINS_TABLE .'
    65 SET version = "'. COMM_BLACKLIST_VERSION .'"
    66 WHERE id = "'. COMM_BLACKLIST_ID .'"';
    67       pwg_query($query);
    68      
    69       $pwg_loaded_plugins[COMM_BLACKLIST_ID]['version'] = COMM_BLACKLIST_VERSION;
    70      
    71       if (defined('IN_ADMIN'))
    72       {
    73         $_SESSION['page_infos'][] = 'Comments Blacklist updated to version '. COMM_BLACKLIST_VERSION;
    74       }
    75     }
    76   }
     39  include_once(COMM_BLACKLIST_PATH . 'maintain.inc.php');
     40  $maintain = new comments_blacklist_maintain(COMM_BLACKLIST_ID);
     41  $maintain->autoUpdate(COMM_BLACKLIST_VERSION, 'install');
    7742 
    78   // load plugin language file
    79   load_language('plugin.lang', COMM_BLACKLIST_PATH);
    80  
    81   // prepare plugin configuration
    8243  $conf['comments_blacklist'] = unserialize($conf['comments_blacklist']);
    8344}
    8445
     46/**
     47 * admin link
     48 */
     49function comm_blacklist_admin_plugin_menu_links($menu)
     50{
     51  $menu[] = array(
     52    'NAME' => 'Comments Blacklist',
     53    'URL' => COMM_BLACKLIST_ADMIN,
     54    );
     55  return $menu;
     56}
    8557
    86 ?>
     58/**
     59 * comment check
     60 */
     61function comm_blacklist_user_comment_check($comment_action, $comm)
     62{
     63  global $conf;
     64 
     65  if ($comment_action==$conf['comments_blacklist']['action']
     66      or $comment_action=='reject' or !isset($comm['content'])
     67    )
     68  {
     69    return $comment_action;
     70  }
     71 
     72  $blacklist = @file(COMM_BLACKLIST_FILE, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
     73 
     74  if (empty($blacklist))
     75  {
     76    return $comment_action;
     77  }
     78 
     79  $blacklist = array_map(create_function('$w', 'return preg_quote($w);'), $blacklist);
     80  $blacklist = implode('|', $blacklist);
     81 
     82  if (preg_match('#\b('.$blacklist.')\b#i', $comm['content']) or
     83      (isset($comm['author']) and preg_match('#\b('.$blacklist.')\b#i', $comm['author']))
     84    )
     85  {
     86    return $conf['comments_blacklist']['action'];
     87  }
     88 
     89  return $comment_action;
     90}
Note: See TracChangeset for help on using the changeset viewer.