Changeset 10097 for trunk/include


Ignore:
Timestamp:
Apr 6, 2011, 10:55:40 AM (13 years ago)
Author:
mistic100
Message:

bug:2152 Comments revalidation when modified

Location:
trunk/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/functions_comment.inc.php

    r8728 r10097  
    264264        $GLOBALS['user']['id'].'\'';
    265265    }
     266   
     267    // should the updated comment must be validated
     268    if (!$conf['comments_update_validation'] or is_admin())
     269    {
     270      $comment_action='validate'; //one of validate, moderate, reject
     271    }
     272    else
     273    {
     274      $comment_action='moderate'; //one of validate, moderate, reject
     275    }
     276
    266277    $query = '
    267278UPDATE '.COMMENTS_TABLE.'
    268279  SET content = \''.$comment['content'].'\',
    269       validation_date = now()
     280      validated = \''.($comment_action=='validate' ? 'true':'false').'\',
     281      validation_date = '.($comment_action=='validate' ? 'NOW()':'NULL').'
    270282  WHERE id = '.$comment['comment_id'].
    271283$user_where_clause.'
    272284;';
    273285    $result = pwg_query($query);
    274     if ($result) {
     286   
     287    // mail admin and ask to validate the comment
     288    if ($result and $conf['email_admin_on_comment_validation'] and 'moderate' == $comment_action)
     289    {
     290      include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
     291
     292      $comment_url = get_absolute_root_url().'comments.php?comment_id='.$comment['comment_id'];
     293
     294      $keyargs_content = array
     295      (
     296        get_l10n_args('Author: %s', stripslashes($GLOBALS['user']['username']) ),
     297        get_l10n_args('Comment: %s', stripslashes($comment['content']) ),
     298        get_l10n_args('', ''),
     299        get_l10n_args('Manage this user comment: %s', $comment_url),
     300        get_l10n_args('', ''),
     301        get_l10n_args('(!) This comment requires validation', ''),
     302      );
     303
     304      pwg_mail_notification_admins
     305      (
     306        get_l10n_args('Comment by %s', stripslashes($GLOBALS['user']['username']) ),
     307        $keyargs_content
     308      );
     309    }
     310    // just mail admin
     311    else if ($result)
     312    {
    275313      email_admin('edit', array('author' => $GLOBALS['user']['username'],
    276314                                'content' => stripslashes($comment['content'])) );
    277315    }
    278316  }
     317 
     318  return $comment_action;
    279319}
    280320
  • trunk/include/picture_comment.inc.php

    r8728 r10097  
    3939}
    4040
    41 if ( $page['show_comments'] and isset( $_POST['content'] ) )
     41if (!isset($comment_action))
    4242{
    43   if ( is_a_guest() and !$conf['comments_forall'] )
    44   {
    45     die ('Session expired');
    46   }
    47 
    48   $comm = array(
    49     'author' => trim( @$_POST['author'] ),
    50     'content' => trim( $_POST['content'] ),
    51     'image_id' => $page['image_id'],
    52    );
    53 
    54   include_once(PHPWG_ROOT_PATH.'include/functions_comment.inc.php');
    55 
    56   $comment_action = insert_user_comment($comm, @$_POST['key'], $infos );
    57 
    58   switch ($comment_action)
    59   {
    60     case 'moderate':
    61       array_push( $infos, l10n('An administrator must authorize your comment before it is visible.') );
    62     case 'validate':
    63       array_push( $infos, l10n('Your comment has been registered'));
    64       break;
    65     case 'reject':
    66       set_status_header(403);
    67       array_push($infos, l10n('Your comment has NOT been registered because it did not pass the validation rules') );
    68       break;
    69     default:
    70       trigger_error('Invalid comment action '.$comment_action, E_USER_WARNING);
    71   }
    72 
    73   $template->assign(
    74       ($comment_action=='reject') ? 'errors' : 'infos',
    75       $infos
    76     );
    77 
    78   // allow plugins to notify what's going on
    79   trigger_action( 'user_comment_insertion',
    80       array_merge($comm, array('action'=>$comment_action) )
    81     );
    82 }
    83 elseif ( isset($_POST['content']) )
    84 {
    85   set_status_header(403);
    86   die('ugly spammer');
     43  if ( $page['show_comments'] and isset( $_POST['content'] ) )
     44  {
     45    if ( is_a_guest() and !$conf['comments_forall'] )
     46    {
     47      die ('Session expired');
     48    }
     49
     50    $comm = array(
     51      'author' => trim( @$_POST['author'] ),
     52      'content' => trim( $_POST['content'] ),
     53      'image_id' => $page['image_id'],
     54     );
     55
     56    include_once(PHPWG_ROOT_PATH.'include/functions_comment.inc.php');
     57
     58    $comment_action = insert_user_comment($comm, @$_POST['key'], $infos );
     59
     60    switch ($comment_action)
     61    {
     62      case 'moderate':
     63        array_push( $infos, l10n('An administrator must authorize your comment before it is visible.') );
     64      case 'validate':
     65        array_push( $infos, l10n('Your comment has been registered'));
     66        break;
     67      case 'reject':
     68        set_status_header(403);
     69        array_push($infos, l10n('Your comment has NOT been registered because it did not pass the validation rules') );
     70        break;
     71      default:
     72        trigger_error('Invalid comment action '.$comment_action, E_USER_WARNING);
     73    }
     74
     75    $template->assign(
     76        ($comment_action=='reject') ? 'errors' : 'infos',
     77        $infos
     78      );
     79
     80    // allow plugins to notify what's going on
     81    trigger_action( 'user_comment_insertion',
     82        array_merge($comm, array('action'=>$comment_action) )
     83      );
     84  }
     85  elseif ( isset($_POST['content']) )
     86  {
     87    set_status_header(403);
     88    die('ugly spammer');
     89  }
    8790}
    8891
Note: See TracChangeset for help on using the changeset viewer.