Ignore:
Timestamp:
12/22/13 20:30:51 (6 years ago)
Author:
mistic100
Message:

update for 2.6 + clean

Location:
extensions/Comments_on_Albums/trunk
Files:
2 added
5 deleted
8 edited
1 moved

Legend:

Unmodified
Added
Removed
  • extensions/Comments_on_Albums/trunk/admin.php

    r23490 r26089  
    11<?php 
    22/* Code adapted from admin/comments.php */ 
    3 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
    4  
    5 global $template, $conf, $user; 
    6 load_language('plugin.lang', COA_PATH); 
    7  
    8 // +-----------------------------------------------------------------------+ 
    9 // |                               tabsheet                                | 
    10 // +-----------------------------------------------------------------------+ 
    11 include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); 
    12  
    13 if (isset($_GET['section']) and $_GET['section'] == 'albums') 
    14 { 
    15   $page['tab'] = 'albums'; 
    16 }  
    17 else  
    18 { 
    19   $page['tab'] = 'pictures'; 
    20 } 
    21  
    22 $tabsheet = new tabsheet(); 
    23 $tabsheet->add('pictures', l10n('Comments on photos'), get_root_url().'admin.php?page=comments'); 
    24 $tabsheet->add('albums', l10n('Comments on albums'), get_root_url().'admin.php?page=comments&amp;section=albums'); 
    25 $tabsheet->select($page['tab']); 
    26 $tabsheet->assign(); 
    27  
    28  
    29 if ($page['tab'] == 'albums')  
    30 { 
    31   // clear template sended by original page 
    32   $template->clear_assign(array('ADMIN_CONTENT', 'comments', 'LIST', 'F_ACTION')); 
    33  
    34   // +-----------------------------------------------------------------------+ 
    35   // |                                actions                                | 
    36   // +-----------------------------------------------------------------------+ 
    37   if (!empty($_POST))  
    38   { 
    39     if (empty($_POST['comments'])) 
     3defined('COA_ID') or die('Hacking attempt!'); 
     4 
     5$page['active_menu'] = get_active_menu('comments'); 
     6 
     7include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
     8 
     9if (isset($_GET['start']) and is_numeric($_GET['start'])) 
     10{ 
     11  $page['start'] = $_GET['start']; 
     12} 
     13else 
     14{ 
     15  $page['start'] = 0; 
     16} 
     17 
     18// +-----------------------------------------------------------------------+ 
     19// | Check Access and exit when user status is not ok                      | 
     20// +-----------------------------------------------------------------------+ 
     21 
     22check_status(ACCESS_ADMINISTRATOR); 
     23 
     24// +-----------------------------------------------------------------------+ 
     25// |                                actions                                | 
     26// +-----------------------------------------------------------------------+ 
     27if (!empty($_POST)) 
     28{ 
     29  if (empty($_POST['comments'])) 
     30  { 
     31    $page['errors'][] = l10n('Select at least one comment'); 
     32  } 
     33  else 
     34  { 
     35    include_once(COA_PATH.'include/functions_comment.inc.php'); 
     36    check_input_parameter('comments', $_POST, true, PATTERN_ID); 
     37 
     38    if (isset($_POST['validate'])) 
    4039    { 
    41       array_push( 
    42         $page['errors'], 
    43         l10n('Select at least one comment') 
     40      validate_user_comment_albums($_POST['comments']); 
     41 
     42      $page['infos'][] = l10n_dec( 
     43        '%d user comment validated', '%d user comments validated', 
     44        count($_POST['comments']) 
    4445        ); 
    4546    } 
    46     else 
     47 
     48    if (isset($_POST['reject'])) 
    4749    { 
    48       include_once(COA_PATH.'include/functions_comment.inc.php'); // custom functions 
    49       check_input_parameter('comments', $_POST, true, PATTERN_ID); 
    50  
    51       if (isset($_POST['validate_albums']))  
    52       { 
    53         validate_user_comment_albums($_POST['comments']); 
    54  
    55         array_push( 
    56           $page['infos'],  
    57           l10n_dec( 
    58             '%d user comment validated', '%d user comments validated', 
    59             count($_POST['comments']) 
    60             ) 
    61           ); 
    62       } 
    63  
    64       if (isset($_POST['reject_albums']))  
    65       { 
    66         delete_user_comment_albums($_POST['comments']); 
    67  
    68         array_push( 
    69           $page['infos'],  
    70           l10n_dec( 
    71             '%d user comment rejected', '%d user comments rejected', 
    72             count($_POST['comments']) 
    73             ) 
    74           ); 
    75       } 
     50      delete_user_comment_albums($_POST['comments']); 
     51 
     52      $page['infos'][] = l10n_dec( 
     53        '%d user comment rejected', '%d user comments rejected', 
     54        count($_POST['comments']) 
     55        ); 
    7656    } 
    7757  } 
    78  
    79   // +-----------------------------------------------------------------------+ 
    80   // |                             template init                             | 
    81   // +-----------------------------------------------------------------------+ 
    82  
    83   $template->set_filename('comments', dirname(__FILE__) .'/../template/admin_comments.tpl'); 
    84  
    85   $template->assign( 
    86     array( 
    87       'F_ACTION' => get_root_url().'admin.php?page=comments&amp;section=albums' 
    88       ) 
    89     ); 
    90      
    91   if (count($page['infos']) != 0)  
    92   { 
    93     $template->assign('infos', $page['infos']); 
    94   } 
    95  
    96   // +-----------------------------------------------------------------------+ 
    97   // |                           comments display                            | 
    98   // +-----------------------------------------------------------------------+ 
    99   $list = array(); 
    100  
    101   $query = ' 
    102 SELECT  
    103     com.id,  
    104     com.category_id,  
    105     com.date,  
     58} 
     59 
     60// +-----------------------------------------------------------------------+ 
     61// |                             template init                             | 
     62// +-----------------------------------------------------------------------+ 
     63 
     64$template->set_filename('comments', 'comments.tpl'); 
     65$template->set_prefilter('comments', 'coa_admin_add_category_name'); 
     66 
     67$template->assign('F_ACTION', COA_ADMIN); 
     68 
     69// +-----------------------------------------------------------------------+ 
     70// | Tabs                                                                  | 
     71// +-----------------------------------------------------------------------+ 
     72 
     73include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); 
     74 
     75$tabsheet = new tabsheet(); 
     76$tabsheet->set_id('comments'); 
     77$tabsheet->select('albums'); 
     78$tabsheet->assign(); 
     79 
     80// +-----------------------------------------------------------------------+ 
     81// |                           comments display                            | 
     82// +-----------------------------------------------------------------------+ 
     83 
     84$nb_total = 0; 
     85$nb_pending = 0; 
     86 
     87$query = ' 
     88SELECT 
     89    COUNT(*) AS counter, 
     90    validated 
     91  FROM '.COA_TABLE.' 
     92  GROUP BY validated 
     93;'; 
     94$result = pwg_query($query); 
     95while ($row = pwg_db_fetch_assoc($result)) 
     96{ 
     97  $nb_total+= $row['counter']; 
     98 
     99  if ('false' == $row['validated']) 
     100  { 
     101    $nb_pending = $row['counter']; 
     102  } 
     103} 
     104 
     105if (!isset($_GET['filter']) and $nb_pending > 0) 
     106{ 
     107  $page['filter'] = 'pending'; 
     108} 
     109else 
     110{ 
     111  $page['filter'] = 'all'; 
     112} 
     113 
     114if (isset($_GET['filter']) and 'pending' == $_GET['filter']) 
     115{ 
     116  $page['filter'] = 'pending'; 
     117} 
     118 
     119$template->assign( 
     120  array( 
     121    'nb_total' => $nb_total, 
     122    'nb_pending' => $nb_pending, 
     123    'filter' => $page['filter'], 
     124    ) 
     125  ); 
     126 
     127$where_clauses = array('1=1'); 
     128 
     129if ('pending' == $page['filter']) 
     130{ 
     131  $where_clauses[] = 'validated=\'false\''; 
     132} 
     133 
     134$query = ' 
     135SELECT 
     136    com.id, 
     137    com.category_id, 
     138    com.date, 
    106139    com.author, 
    107     u.'.$conf['user_fields']['username'].' AS username,  
    108     com.content,  
     140    u.'.$conf['user_fields']['username'].' AS username, 
     141    com.content, 
    109142    cat.name, 
    110143    img.id AS image_id, 
    111     img.path 
     144    img.path, 
     145    com.validated 
    112146  FROM '.COA_TABLE.' AS com 
    113147    LEFT JOIN '.CATEGORIES_TABLE.' AS cat 
     
    115149    LEFT JOIN '.USERS_TABLE.' AS u 
    116150      ON u.'.$conf['user_fields']['id'].' = com.author_id 
    117     LEFT JOIN '.USER_CACHE_CATEGORIES_TABLE.' AS ucc  
     151    LEFT JOIN '.USER_CACHE_CATEGORIES_TABLE.' AS ucc 
    118152      ON ucc.cat_id = com.category_id AND ucc.user_id = '.$user['id'].' 
    119153    LEFT JOIN '.IMAGES_TABLE.' AS img 
    120154      ON img.id = ucc.user_representative_picture_id 
    121   WHERE validated = \'false\' 
     155  WHERE '.implode(' AND ', $where_clauses).' 
    122156  ORDER BY com.date DESC 
     157  LIMIT '.$page['start'].', '.$conf['comments_page_nb_comments'].' 
    123158;'; 
    124   $result = pwg_query($query); 
    125  
    126   while ($row = pwg_db_fetch_assoc($result))  
    127   { 
    128     // author 
    129     if (empty($row['author_id']))  
    130     { 
    131       $author_name = $row['author']; 
    132     }  
    133     else  
    134     { 
    135       $author_name = stripslashes($row['username']); 
    136     } 
    137      
    138     // thumbnail 
    139     $row['thumb'] = DerivativeImage::thumb_url( 
    140       array( 
    141         'id'=>$row['image_id'], 
    142         'path'=>$row['path'], 
    143         ) 
    144      ); 
    145  
    146     // comment content 
    147     $template->append( 
    148       'comments',  
    149       array( 
    150         'ID' => $row['id'], 
    151         'CAT_URL' => PHPWG_ROOT_PATH.'admin.php?page=album-'.$row['category_id'], 
    152         'CAT_NAME' => trigger_event('render_category_name', $row['name']), 
    153         'TN_SRC' => $row['thumb'], 
    154         'AUTHOR' => trigger_event('render_comment_author', $author_name), 
    155         'DATE' => format_date($row['date'], true), 
    156         'CONTENT' => trigger_event('render_comment_content', $row['content'], 'album'), 
    157         ) 
    158       ); 
    159  
    160     array_push($list, $row['id']); 
    161   } 
    162  
    163   $template->assign('LIST', implode(',', $list)); 
    164  
    165   // +-----------------------------------------------------------------------+ 
    166   // |                           sending html code                           | 
    167   // +-----------------------------------------------------------------------+ 
    168  
    169   $template->assign_var_from_handle('ADMIN_CONTENT', 'comments'); 
    170  
    171 } 
    172  
    173 ?> 
     159$result = pwg_query($query); 
     160 
     161while ($row = pwg_db_fetch_assoc($result)) 
     162{ 
     163  $thumb = DerivativeImage::thumb_url( 
     164    array( 
     165      'id'=>$row['image_id'], 
     166      'path'=>$row['path'], 
     167      ) 
     168   ); 
     169 
     170  if (empty($row['author_id'])) 
     171  { 
     172    $author_name = $row['author']; 
     173  } 
     174  else 
     175  { 
     176    $author_name = stripslashes($row['username']); 
     177  } 
     178 
     179  $template->append( 
     180    'comments', 
     181    array( 
     182      'ID' => $row['id'], 
     183      'U_PICTURE' => get_root_url().'admin.php?page=album-'.$row['category_id'], 
     184      'CATEGORY_NAME' => trigger_change('render_category_name', $row['name']), 
     185      'TN_SRC' => $thumb, 
     186      'AUTHOR' => trigger_change('render_comment_author', $author_name), 
     187      'DATE' => format_date($row['date'], true), 
     188      'CONTENT' => trigger_change('render_comment_content', $row['content'], 'album'), 
     189      'IS_PENDING' => ('false' == $row['validated']), 
     190      ) 
     191    ); 
     192} 
     193 
     194// +-----------------------------------------------------------------------+ 
     195// |                            navigation bar                             | 
     196// +-----------------------------------------------------------------------+ 
     197 
     198$navbar = create_navigation_bar( 
     199  get_root_url().'admin.php'.get_query_string_diff(array('start')), 
     200  ('pending' == $page['filter'] ? $nb_pending : $nb_total), 
     201  $page['start'], 
     202  $conf['comments_page_nb_comments'] 
     203  ); 
     204 
     205$template->assign('navbar', $navbar); 
     206 
     207// +-----------------------------------------------------------------------+ 
     208// |                           sending html code                           | 
     209// +-----------------------------------------------------------------------+ 
     210 
     211$template->assign_var_from_handle('ADMIN_CONTENT', 'comments'); 
     212 
     213 
     214function coa_admin_add_category_name($content) 
     215{ 
     216  $search = '<img src="{$comment.TN_SRC}">'; 
     217  $add = '<br>{$comment.CATEGORY_NAME}'; 
     218  return str_replace($search, $search.$add, $content); 
     219} 
  • extensions/Comments_on_Albums/trunk/include/coa_albums.php

    r21347 r26089  
    11<?php 
    22/* Code adapted from include/picture_comment.inc.php and picture.php */ 
    3 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
    4  
    5 global $conf, $user; 
     3defined('COA_ID') or die('Hacking attempt!'); 
     4 
     5global $template, $page, $conf, $pwg_loaded_plugins, $user; 
    66 
    77// +-----------------------------------------------------------------------+ 
     
    1212$url_self = duplicate_index_url(array( 
    1313  'category' => array( 
    14     'id' => $category['id'],  
    15     'name' => $category['name'],  
     14    'id' => $category['id'], 
     15    'name' => $category['name'], 
    1616    'permalink' => $category['permalink'] 
    17     ),  
     17    ), 
    1818  array('start') 
    1919  )); 
     
    2323// |                                actions                                | 
    2424// +-----------------------------------------------------------------------+ 
    25 if (isset($_GET['action']))  
     25if (isset($_GET['action'])) 
    2626{ 
    27   switch ($_GET['action'])  
    28   { 
    29     case 'edit_comment' :  
    30     { 
    31       include_once(COA_PATH.'include/functions_comment.inc.php'); // custom fonctions 
     27  switch ($_GET['action']) 
     28  { 
     29    case 'edit_comment' : 
     30    { 
     31      include_once(COA_PATH.'include/functions_comment.inc.php'); 
    3232      check_input_parameter('comment_to_edit', $_GET, false, PATTERN_ID); 
    3333      $author_id = get_comment_author_id_albums($_GET['comment_to_edit']); 
    3434 
    35       if (can_manage_comment('edit', $author_id))  
    36       { 
    37         if (!empty($_POST['content']))  
     35      if (can_manage_comment('edit', $author_id)) 
     36      { 
     37        if (!empty($_POST['content'])) 
    3838        { 
    3939          check_pwg_token(); 
     
    4242              'comment_id' => $_GET['comment_to_edit'], 
    4343              'category_id' => $category['id'], 
    44               'content' => $_POST['content'] 
     44              'content' => $_POST['content'], 
     45              'website_url' => @$_POST['website_url'], 
    4546              ), 
    4647            $_POST['key'] 
    4748            ); 
    48            
     49 
    4950          $perform_redirect = false; 
    5051          switch ($comment_action) 
     
    6970          } 
    7071          unset($_POST['content']); 
    71         }  
    72         else  
     72        } 
     73        else 
    7374        { 
    7475          $edit_comment = $_GET['comment_to_edit']; 
    7576        } 
     77 
     78        $template->assign('DISPLAY_COMMENTS_BLOCK', true); 
    7679        break; 
    7780      } 
    7881    } 
    79     case 'delete_comment' :  
     82    case 'delete_comment' : 
    8083    { 
    8184      check_pwg_token(); 
    82        
    83       include_once(COA_PATH.'include/functions_comment.inc.php'); // custom fonctions 
    84        
     85 
     86      include_once(COA_PATH.'include/functions_comment.inc.php'); 
     87 
    8588      check_input_parameter('comment_to_delete', $_GET, false, PATTERN_ID); 
    86        
     89 
    8790      $author_id = get_comment_author_id_albums($_GET['comment_to_delete']); 
    8891 
    89       if (can_manage_comment('delete', $author_id))  
     92      if (can_manage_comment('delete', $author_id)) 
    9093      { 
    9194        delete_user_comment_albums($_GET['comment_to_delete']); 
     
    9497      redirect($url_self); 
    9598    } 
    96     case 'validate_comment' :  
     99    case 'validate_comment' : 
    97100    { 
    98101      check_pwg_token(); 
    99        
    100       include_once(COA_PATH.'include/functions_comment.inc.php'); // custom fonctions 
    101        
     102 
     103      include_once(COA_PATH.'include/functions_comment.inc.php'); 
     104 
    102105      check_input_parameter('comment_to_validate', $_GET, false, PATTERN_ID); 
    103        
     106 
    104107      $author_id = get_comment_author_id_albums($_GET['comment_to_validate']); 
    105108 
    106       if (can_manage_comment('validate', $author_id))  
     109      if (can_manage_comment('validate', $author_id)) 
    107110      { 
    108111        validate_user_comment_albums($_GET['comment_to_validate']); 
     
    118121// |                            insert comment                             | 
    119122// +-----------------------------------------------------------------------+ 
    120 if ($category['commentable'] and isset($_POST['content']))  
     123if ($category['commentable'] and isset($_POST['content'])) 
    121124{ 
    122   if (is_a_guest() and !$conf['comments_forall'])  
     125  if (is_a_guest() and !$conf['comments_forall']) 
    123126  { 
    124127    die('Session expired'); 
    125128  } 
    126    
     129 
    127130  $comm = array( 
    128131    'author' => trim( @$_POST['author'] ), 
     
    133136   ); 
    134137 
    135   include_once(COA_PATH.'include/functions_comment.inc.php'); // custom fonctions 
    136    
     138  include_once(COA_PATH.'include/functions_comment.inc.php'); 
     139 
    137140  $comment_action = insert_user_comment_albums($comm, @$_POST['key'], $page['errors']); 
    138141 
    139   switch ($comment_action)  
     142  switch ($comment_action) 
    140143  { 
    141144    case 'moderate': 
    142       array_push($page['infos'], l10n('An administrator must authorize your comment before it is visible.')); 
     145      $page['infos'][] = l10n('An administrator must authorize your comment before it is visible.'); 
    143146    case 'validate': 
    144       array_push($page['infos'], l10n('Your comment has been registered')); 
     147      $page['infos'][] = l10n('Your comment has been registered'); 
    145148      break; 
    146149    case 'reject': 
    147150      set_status_header(403); 
    148       array_push($page['errors'], l10n('Your comment has NOT been registered because it did not pass the validation rules')); 
     151      $page['errors'][] = l10n('Your comment has NOT been registered because it did not pass the validation rules'); 
    149152      break; 
    150153    default: 
    151154      trigger_error('Invalid comment action '.$comment_action, E_USER_WARNING); 
    152155  } 
    153      
     156 
    154157  // allow plugins to notify what's going on 
    155158  trigger_action( 'user_comment_insertion', 
    156159      array_merge($comm, array('action'=>$comment_action) ) 
    157160    ); 
    158      
     161 
    159162  $template->assign('DISPLAY_COMMENTS_BLOCK', true); 
    160 }  
    161 else if (isset($_POST['content']))  
     163} 
     164else if (isset($_POST['content'])) 
    162165{ 
    163166  set_status_header(403); 
     
    169172// |                           display comments                            | 
    170173// +-----------------------------------------------------------------------+ 
    171 if ($category['commentable'])  
     174if ($category['commentable']) 
    172175{ 
    173   if (!is_admin())  
     176  if (isset($_GET['coa_open'])) 
     177  { 
     178    $template->assign('DISPLAY_COMMENTS_BLOCK', true); 
     179  } 
     180 
     181  if (!is_admin()) 
    174182  { 
    175183    $validated_clause = " AND validated = 'true'"; 
    176   }  
    177   else  
     184  } 
     185  else 
    178186  { 
    179187    $validated_clause = null; 
     
    182190  // number of comments for this category 
    183191  $query = ' 
    184 SELECT  
     192SELECT 
    185193    COUNT(*) AS nb_comments 
    186194  FROM '.COA_TABLE.' 
     
    190198  $row = pwg_db_fetch_assoc(pwg_query($query)); 
    191199 
    192   // navigation bar creation, can't use $_GET['start'] because used by thumbnails navigation bar 
    193   if (isset($_GET['start_comments']))  
     200  // navigation bar creation 
     201  // can't use $_GET['start'] because used by thumbnails navigation bar 
     202  if (isset($_GET['start_comments'])) 
    194203  { 
    195204    $page['start_comments'] = $_GET['start_comments']; 
    196   }  
    197   else  
     205  } 
     206  else 
    198207  { 
    199208    $page['start_comments'] = 0; 
    200209  } 
    201   include_once(COA_PATH.'include/functions.inc.php'); // custom fonctions 
    202  
    203   $navigation_bar = create_comment_navigation_bar( 
    204     duplicate_index_url(array(), array('start')), 
     210 
     211  $navigation_bar = create_navigation_bar( 
     212    add_url_params(duplicate_index_url(array(), array('start_comments')), array('coa_open'=>null)), 
    205213    $row['nb_comments'], 
    206214    $page['start_comments'], 
    207     $conf['nb_comment_page'] 
     215    $conf['nb_comment_page'], 
     216    false, 
     217    'start_comments' 
    208218    ); 
    209219 
     
    215225    ); 
    216226 
    217   if ($row['nb_comments'] > 0)  
     227  if ($row['nb_comments'] > 0) 
    218228  { 
    219229    // comments order (get, session, conf) 
     
    225235 
    226236    $template->assign(array( 
    227       'COMMENTS_ORDER_URL' => add_url_params( duplicate_index_url(), array('comments_order'=> ($comments_order == 'ASC' ? 'DESC' : 'ASC') ) ), 
     237      'COMMENTS_ORDER_URL' => add_url_params(duplicate_index_url(), array('comments_order'=> ($comments_order == 'ASC' ? 'DESC' : 'ASC'), 'coa_open'=>null ) ), 
    228238      'COMMENTS_ORDER_TITLE' => $comments_order == 'ASC' ? l10n('Show latest comments first') : l10n('Show oldest comments first'), 
    229239      )); 
    230        
     240 
    231241    // get comments 
    232242    $query = ' 
     
    235245    com.author, 
    236246    com.author_id, 
    237     u.'.$conf['user_fields']['username'].' AS username, 
    238247    u.'.$conf['user_fields']['email'].' AS user_email, 
     248    com.date, 
     249    com.category_id, 
     250    com.website_url, 
    239251    com.email, 
    240     com.date, 
    241     com.website_url, 
    242     com.category_id, 
    243252    com.content, 
    244253    com.validated 
     
    253262    $result = pwg_query($query); 
    254263 
    255     while ($row = pwg_db_fetch_assoc($result))  
     264    while ($row = pwg_db_fetch_assoc($result)) 
    256265    { 
    257266      if ($row['author'] == 'guest') 
     
    259268        $row['author'] = l10n('guest'); 
    260269      } 
    261        
     270 
    262271      $email = null; 
    263272      if (!empty($row['user_email'])) 
     
    269278        $email = $row['email']; 
    270279      } 
    271        
     280 
    272281      // comment content 
    273282      $tpl_comment = array( 
     
    275284        'AUTHOR' => trigger_event('render_comment_author', $row['author']), 
    276285        'DATE' => format_date($row['date'], true), 
     286        'CONTENT' => trigger_event('render_comment_content', $row['content'], 'album'), 
    277287        'WEBSITE_URL' => $row['website_url'], 
    278         'CONTENT' => trigger_event('render_comment_content', $row['content'], 'album'), 
    279288        ); 
    280        
     289 
    281290      // rights 
    282       if (can_manage_comment('delete', $row['author_id']))  
     291      if (can_manage_comment('delete', $row['author_id'])) 
    283292      { 
    284293        $tpl_comment['U_DELETE'] = add_url_params( 
    285           $url_self,  
     294          $url_self, 
    286295          array( 
    287296            'action' => 'delete_comment', 
     
    291300          ); 
    292301      } 
    293       if (can_manage_comment('edit', $row['author_id']))  
     302      if (can_manage_comment('edit', $row['author_id'])) 
    294303      { 
    295304        $tpl_comment['U_EDIT'] = add_url_params( 
    296           $url_self,  
     305          $url_self, 
    297306          array( 
    298307            'action' => 'edit_comment', 
     
    300309            ) 
    301310          ); 
    302         if (isset($edit_comment) and ($row['id'] == $edit_comment))  
     311        if (isset($edit_comment) and ($row['id'] == $edit_comment)) 
    303312        { 
    304313          $tpl_comment['IN_EDIT'] = true; 
     
    307316          $tpl_comment['CONTENT'] = $row['content']; 
    308317          $tpl_comment['PWG_TOKEN'] = get_pwg_token(); 
     318          $tpl_comment['U_CANCEL'] = $url_self; 
    309319        } 
    310320      } 
     
    312322      { 
    313323        $tpl_comment['EMAIL'] = $email; 
    314          
    315         if ($row['validated'] != 'true')  
     324 
     325        if ($row['validated'] != 'true') 
    316326        { 
    317327          $tpl_comment['U_VALIDATE'] = add_url_params( 
    318             $url_self,  
     328            $url_self, 
    319329            array( 
    320330              'action' => 'validate_comment', 
     
    325335        } 
    326336      } 
    327        
     337 
    328338      $template->append('comments', $tpl_comment); 
    329339    } 
     
    332342  // comment form 
    333343  $show_add_comment_form = true; 
    334   if (isset($edit_comment))  
     344  if (isset($edit_comment)) 
    335345  { 
    336346    $show_add_comment_form = false; 
    337347  } 
    338   if (is_a_guest() and !$conf['comments_forall'])  
     348  if (is_a_guest() and !$conf['comments_forall']) 
    339349  { 
    340350    $show_add_comment_form = false; 
    341351  } 
    342352 
    343   if ($show_add_comment_form)  
     353  if ($show_add_comment_form) 
    344354  { 
    345355    $key = get_ephemeral_key(3, $category['id']); 
    346      
    347     $template->assign('comment_add',  
    348       array( 
     356 
     357    $tpl_var = array( 
    349358        'F_ACTION' =>         $url_self, 
    350359        'KEY' =>              $key, 
    351         'CONTENT' =>          stripslashes(@$_POST['content']), 
     360        'CONTENT' =>          '', 
    352361        'SHOW_AUTHOR' =>      !is_classic_user(), 
    353362        'AUTHOR_MANDATORY' => $conf['comments_author_mandatory'], 
    354         'AUTHOR' =>           stripslashes(@$_POST['author']), 
    355         'WEBSITE_URL' =>      stripslashes(@$_POST['website_url']), 
     363        'AUTHOR' =>           '', 
     364        'WEBSITE_URL' =>      '', 
    356365        'SHOW_EMAIL' =>       !is_classic_user() or empty($user['email']), 
    357366        'EMAIL_MANDATORY' =>  $conf['comments_email_mandatory'], 
    358         'EMAIL' =>            stripslashes(@$_POST['email']),  
    359         ) 
    360       ); 
    361   } 
    362    
     367        'EMAIL' =>            '', 
     368        ); 
     369 
     370    if ('reject'==@$comment_action) 
     371    { 
     372      foreach (array('content', 'author', 'website_url', 'email') as $k) 
     373      { 
     374        $tpl_var[strtoupper($k)] = htmlspecialchars( stripslashes(@$_POST[$k]) ); 
     375      } 
     376    } 
     377    $template->assign('comment_add', $tpl_var); 
     378  } 
     379 
    363380  // template 
    364381  $template->assign(array( 
    365     'COA_PATH' => COA_PATH, // for css 
    366     'COA_ABSOLUTE_PATH' => dirname(__FILE__) .'/../', // for template 
     382    'COA_PATH' => COA_PATH, 
     383    'COA_ABSOLUTE_PATH' => realpath(COA_PATH) . '/', 
    367384    )); 
    368    
    369   $template->set_filename('comments_on_albums', dirname(__FILE__) .'/../template/albums.tpl'); 
    370   if (isset($pwg_loaded_plugins['rv_tscroller']) AND count($page['navigation_bar']) != 0) 
     385 
     386  $template->set_filename('comments_on_albums', realpath(COA_PATH . 'template/albums.tpl')); 
     387 
     388  if (isset($pwg_loaded_plugins['rv_tscroller']) and count($page['navigation_bar']) != 0) 
    371389  { 
    372390    $template->assign('COMMENTS_ON_TOP', true); 
     
    378396  } 
    379397} 
    380  
    381 ?> 
  • extensions/Comments_on_Albums/trunk/include/coa_comments_page.php

    r24609 r26089  
    1 <?php  
     1<?php 
    22/* inspired by comments.php */ 
    3 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
    4 load_language('plugin.lang', COA_PATH); 
     3defined('COA_ID') or die('Hacking attempt!'); 
     4 
     5global $template, $page, $conf, $user; 
    56 
    67// +-----------------------------------------------------------------------+ 
     
    1011$template->set_prefilter('comments', 'coa_add_button'); 
    1112 
    12 function coa_add_button($content, &$smarty)  
    13 {     
     13function coa_add_button($content, &$smarty) 
     14{ 
    1415  $search ='<form class="filter" action="{$F_ACTION}" method="get">'; 
    15   $replacement = ' 
    16 <form class="filter"> 
     16 
     17  $add = ' 
    1718<fieldset> 
    18 <legend>{\'Display comments on\'|@translate}</legend> 
    19 <span style="font-size:1.1em;"><a href="comments.php" {if $COA_MODE=="photos"}style="font-weight:bold;"{/if}>{\'Photos\'|@translate}</a> |  
    20 <a href="comments.php?display_mode=albums" {if $COA_MODE=="albums"}style="font-weight:bold;"{/if}>{\'Albums\'|@translate}</a></span> 
    21 </fieldset> 
    22 </form>'; 
    23  
    24   return str_replace($search, $replacement.$search, $content); 
     19  <legend>{\'Display comments on\'|@translate}</legend> 
     20  <span style="font-size:1.1em;"><a href="comments.php" {if $COA_MODE=="photos"}style="font-weight:bold;"{/if}>{\'Photos\'|@translate}</a> | 
     21  <a href="comments.php?display_mode=albums" {if $COA_MODE=="albums"}style="font-weight:bold;"{/if}>{\'Albums\'|@translate}</a></span> 
     22</fieldset>'; 
     23 
     24  return str_replace($search, $add.$search, $content); 
    2525} 
    2626 
     
    2929//                        comments on albums page                          | 
    3030// +-----------------------------------------------------------------------+ 
    31 if ( isset($_GET['display_mode']) and $_GET['display_mode'] == 'albums' )  
    32 { 
    33   include_once(COA_PATH.'include/functions_comment.inc.php'); // custom functions 
    34    
    35   // reset some template vars 
    36   $template->clear_assign(array('comments', 'navbar', 'sort_by_options')); 
    37    
    38   // sort_by : database fields proposed for sorting comments list 
    39   $sort_by = array( 
    40     'date' => l10n('comment date'), 
    41     'category_id' => l10n('album') 
    42     ); 
    43   $template->assign('sort_by_options', $sort_by); 
    44    
    45   // clean where_clauses from unknown column 
    46   foreach ($page['where_clauses'] as &$cond) 
    47   { 
    48     if (strpos($cond, 'ic.image_id') !== false) 
    49     { 
    50       $cond = get_sql_condition_FandF(array( 
     31if (!isset($_GET['display_mode']) or $_GET['display_mode'] != 'albums') 
     32{ 
     33  return; 
     34} 
     35 
     36$url_self = PHPWG_ROOT_PATH.'comments.php' 
     37  .get_query_string_diff(array('edit_albums','delete_albums','validate_albums','pwg_token')); 
     38 
     39// reset some template vars 
     40$template->clear_assign(array('F_ACTION', 'comments', 'navbar', 'sort_by_options')); 
     41 
     42// sort_by : database fields proposed for sorting comments list 
     43global $sort_by; 
     44$sort_by = array( 
     45  'date' => l10n('comment date'), 
     46  'category_id' => l10n('Album') 
     47  ); 
     48$template->assign(array( 
     49  'F_ACTION' => PHPWG_ROOT_PATH.'comments.php?display_mode=albums', 
     50  'sort_by_options' => $sort_by, 
     51  )); 
     52 
     53// clean where_clauses from unknown column 
     54foreach ($page['where_clauses'] as &$cond) 
     55{ 
     56  if (strpos($cond, 'ic.image_id') !== false) 
     57  { 
     58    $cond = get_sql_condition_FandF( 
     59      array( 
    5160        'forbidden_categories' => 'category_id', 
    5261        'visible_categories' => 'category_id' 
    5362        ), 
    54         '', true); 
    55     } 
    56   } 
    57   unset($cond); 
    58  
    59   // +-----------------------------------------------------------------------+ 
    60   // |                         comments management                           | 
    61   // +-----------------------------------------------------------------------+ 
    62   $comment_id = null; 
    63   $action = null; 
    64  
    65   $actions = array('delete_albums', 'validate_albums', 'edit_albums'); // different indexes to not interfer with the main process 
    66   foreach ($actions as $loop_action)  
    67   { 
    68     if (isset($_GET[$loop_action]))  
    69     { 
    70       $action = $loop_action; 
    71       check_input_parameter($action, $_GET, false, PATTERN_ID); 
    72       $comment_id = $_GET[$action]; 
    73       break; 
    74     } 
    75   } 
    76  
    77   if (isset($action))  
    78   { 
    79     $comment_author_id = get_comment_author_id_albums($comment_id); 
    80      
    81     if (can_manage_comment(str_replace('_albums', null, $action), $comment_author_id))  
    82     { 
    83       $perform_redirect = false; 
    84  
    85       if ('delete_albums' == $action)  
     63      '', true 
     64      ); 
     65  } 
     66} 
     67unset($cond); 
     68 
     69// +-----------------------------------------------------------------------+ 
     70// |                         comments management                           | 
     71// +-----------------------------------------------------------------------+ 
     72 
     73$comment_id = null; 
     74$action = null; 
     75 
     76$actions = array('delete_albums', 'validate_albums', 'edit_albums'); 
     77foreach ($actions as $loop_action) 
     78{ 
     79  if (isset($_GET[$loop_action])) 
     80  { 
     81    $action = $loop_action; 
     82    check_input_parameter($action, $_GET, false, PATTERN_ID); 
     83    $comment_id = $_GET[$action]; 
     84    break; 
     85  } 
     86} 
     87 
     88if (isset($action)) 
     89{ 
     90  include_once(COA_PATH.'include/functions_comment.inc.php'); 
     91 
     92  $comment_author_id = get_comment_author_id_albums($comment_id); 
     93 
     94  if (can_manage_comment(str_replace('_albums', null, $action), $comment_author_id)) 
     95  { 
     96    $perform_redirect = false; 
     97 
     98    if ('delete_albums' == $action) 
     99    { 
     100      check_pwg_token(); 
     101      delete_user_comment_albums($comment_id); 
     102      $perform_redirect = true; 
     103    } 
     104    if ('validate_albums' == $action) 
     105    { 
     106      check_pwg_token(); 
     107      validate_user_comment_albums($comment_id); 
     108      $perform_redirect = true; 
     109    } 
     110    if ('edit_albums' == $action) 
     111    { 
     112      if (!empty($_POST['content'])) 
    86113      { 
    87114        check_pwg_token(); 
    88         delete_user_comment_albums($comment_id); 
    89         $perform_redirect = true; 
    90       } 
    91       if ('validate_albums' == $action)  
    92       { 
    93         check_pwg_token(); 
    94         validate_user_comment_albums($comment_id); 
    95         $perform_redirect = true; 
    96       } 
    97       if ('edit_albums' == $action)  
    98       { 
    99         if (!empty($_POST['content']))  
     115        $comment_action = update_user_comment_albums( 
     116          array( 
     117            'comment_id' => $_GET['edit_albums'], 
     118            'category_id' => $_POST['image_id'], 
     119            'content' => $_POST['content'], 
     120            'website_url' => @$_POST['website_url'], 
     121            ), 
     122          $_POST['key'] 
     123          ); 
     124 
     125        switch ($comment_action) 
    100126        { 
    101           check_pwg_token(); 
    102           update_user_comment_albums( 
    103             array( 
    104               'comment_id' => $_GET['edit_albums'], 
    105               'category_id' => $_POST['image_id'], 
    106               'content' => $_POST['content'] 
    107               ),  
    108             $_POST['key'] 
    109             ); 
    110            
    111           $perform_redirect = true; 
    112         }  
    113         else  
    114         { 
    115           $edit_comment = $_GET['edit_albums']; 
     127          case 'moderate': 
     128            $_SESSION['page_infos'][] = l10n('An administrator must authorize your comment before it is visible.'); 
     129          case 'validate': 
     130            $_SESSION['page_infos'][] = l10n('Your comment has been registered'); 
     131            $perform_redirect = true; 
     132            break; 
     133          case 'reject': 
     134            $_SESSION['page_errors'][] = l10n('Your comment has NOT been registered because it did not pass the validation rules'); 
     135            break; 
     136          default: 
     137            trigger_error('Invalid comment action '.$comment_action, E_USER_WARNING); 
    116138        } 
    117139      } 
    118       if ($perform_redirect)  
     140      else 
    119141      { 
    120         $redirect_url =  
    121           PHPWG_ROOT_PATH 
    122           .'comments.php' 
    123           .get_query_string_diff(array('delete_albums','validate_albums','edit_albums','pwg_token')); 
    124          
    125         redirect($redirect_url); 
     142        $edit_comment = $_GET['edit_albums']; 
    126143      } 
    127144    } 
    128   } 
    129  
    130   // +-----------------------------------------------------------------------+ 
    131   // |                            navigation bar                             | 
    132   // +-----------------------------------------------------------------------+ 
    133   if (isset($_GET['start']) and is_numeric($_GET['start']))  
    134   { 
    135     $start = $_GET['start']; 
    136   }  
    137   else  
    138   { 
    139     $start = 0; 
    140   } 
    141  
    142   $query = ' 
     145    if ($perform_redirect) 
     146    { 
     147      redirect($url_self); 
     148    } 
     149  } 
     150} 
     151 
     152// +-----------------------------------------------------------------------+ 
     153// |                            navigation bar                             | 
     154// +-----------------------------------------------------------------------+ 
     155 
     156if (isset($_GET['start']) and is_numeric($_GET['start'])) 
     157{ 
     158  $start = $_GET['start']; 
     159} 
     160else 
     161{ 
     162  $start = 0; 
     163} 
     164 
     165$query = ' 
    143166SELECT COUNT(DISTINCT(com.id)) 
    144   FROM '.COA_TABLE.' AS com 
    145   LEFT JOIN '.USERS_TABLE.' As u 
     167  FROM '.CATEGORIES_TABLE.' AS cat 
     168  INNER JOIN '.COA_TABLE.' AS com 
     169    ON cat.id = com.category_id 
     170  LEFT JOIN '.USERS_TABLE.' AS u 
    146171    ON u.'.$conf['user_fields']['id'].' = com.author_id 
    147172  WHERE '.implode(' 
    148173    AND ', $page['where_clauses']).' 
    149174;'; 
    150   list($counter) = pwg_db_fetch_row(pwg_query($query)); 
    151  
    152   $url = PHPWG_ROOT_PATH 
    153       .'comments.php' 
    154     .get_query_string_diff(array('start','delete_albums','validate_albums','edit_albums','pwg_token')); 
    155      
    156   $navbar = create_navigation_bar( 
    157     $url,  
    158     $counter,  
    159     $start,  
    160     $page['items_number'],  
    161     '' 
    162     ); 
    163    
    164   $template->assign('navbar', $navbar); 
    165  
    166   // +-----------------------------------------------------------------------+ 
    167   // |                        last comments display                          | 
    168   // +-----------------------------------------------------------------------+ 
    169   $comments = array(); 
    170   $element_ids = array(); 
    171   $category_ids = array(); 
    172  
    173   $query = ' 
     175list($counter) = pwg_db_fetch_row(pwg_query($query)); 
     176 
     177$url = PHPWG_ROOT_PATH.'comments.php' 
     178  .get_query_string_diff(array('start','delete_albums','validate_albums','edit_albums','pwg_token')); 
     179 
     180$navbar = create_navigation_bar( 
     181  $url, 
     182  $counter, 
     183  $start, 
     184  $page['items_number'], 
     185  '' 
     186  ); 
     187 
     188$template->assign('navbar', $navbar); 
     189 
     190// +-----------------------------------------------------------------------+ 
     191// |                        last comments display                          | 
     192// +-----------------------------------------------------------------------+ 
     193 
     194$comments = array(); 
     195$element_ids = array(); 
     196$category_ids = array(); 
     197 
     198$query = ' 
    174199SELECT 
    175200    com.id AS comment_id, 
     
    184209    com.content, 
    185210    com.validated 
    186   FROM '.COA_TABLE.' AS com 
     211  FROM '.CATEGORIES_TABLE.' AS cat 
     212    INNER JOIN '.COA_TABLE.' AS com 
     213      ON cat.id = com.category_id 
    187214    LEFT JOIN '.USERS_TABLE.' As u 
    188215      ON u.'.$conf['user_fields']['id'].' = com.author_id 
     
    198225    com.validated 
    199226  ORDER BY '.$page['sort_by'].' '.$page['sort_order']; 
    200 if ('all' != $page['items_number'])  
    201 { 
    202   $query.= ' 
    203   LIMIT '.$page['items_number'].' OFFSET '.$start; 
    204 } 
     227  if ('all' != $page['items_number']) 
     228  { 
     229    $query.= ' 
     230    LIMIT '.$page['items_number'].' OFFSET '.$start; 
     231  } 
    205232$query.= ' 
    206233;'; 
    207   $result = pwg_query($query); 
    208  
    209   while ($row = pwg_db_fetch_assoc($result))  
    210   { 
    211     array_push($comments, $row); 
    212     array_push($element_ids, $row['category_id']); 
    213   } 
    214  
    215   if (count($comments) > 0)  
    216   { 
    217     // retrieving category informations 
    218     $query = ' 
    219 SELECT  
    220     cat.id,  
    221     cat.name,  
    222     cat.permalink,  
    223     cat.uppercats,  
     234$result = pwg_query($query); 
     235 
     236while ($row = pwg_db_fetch_assoc($result)) 
     237{ 
     238  $comments[] = $row; 
     239  $element_ids[] = $row['category_id']; 
     240} 
     241 
     242if (count($comments) > 0) 
     243{ 
     244  // retrieving category informations 
     245  $query = ' 
     246SELECT 
     247    cat.id, 
     248    cat.name, 
     249    cat.permalink, 
     250    cat.uppercats, 
    224251    com.id as comment_id, 
    225252    img.id AS image_id, 
     
    228255    LEFT JOIN '.COA_TABLE.' AS com 
    229256      ON com.category_id = cat.id 
    230     LEFT JOIN '.USER_CACHE_CATEGORIES_TABLE.' AS ucc  
     257    LEFT JOIN '.USER_CACHE_CATEGORIES_TABLE.' AS ucc 
    231258      ON ucc.cat_id = cat.id AND ucc.user_id = '.$user['id'].' 
    232259    LEFT JOIN '.IMAGES_TABLE.' AS img 
     
    236263      'forbidden_categories' => 'cat.id', 
    237264      'visible_categories' => 'cat.id' 
    238       ),  
     265      ), 
    239266    'WHERE' 
    240267    ).' 
    241268    AND cat.id IN ('.implode(',', $element_ids).') 
    242269;'; 
    243     $categories = hash_from_query($query, 'comment_id'); 
    244  
    245     foreach ($comments as $comment)  
    246     { 
    247       // source of the thumbnail picture 
    248       $comment['src_image'] = new SrcImage($categories[$comment['comment_id']]); 
    249      
    250       // category url 
    251       $comment['cat_url'] = duplicate_index_url( 
     270  $categories = hash_from_query($query, 'comment_id'); 
     271 
     272  foreach ($comments as $comment) 
     273  { 
     274    // source of the thumbnail picture 
     275    $comment['src_image'] = new SrcImage($categories[$comment['comment_id']]); 
     276 
     277    // category url 
     278    $comment['cat_url'] = make_index_url( 
     279      array( 
     280        'section' => 'categories', 
     281        'category' => $categories[$comment['comment_id']], 
     282        ) 
     283      ); 
     284 
     285    $email = null; 
     286    if (!empty($comment['user_email'])) 
     287    { 
     288      $email = $comment['user_email']; 
     289    } 
     290    else if (!empty($comment['email'])) 
     291    { 
     292      $email = $comment['email']; 
     293    } 
     294 
     295    // comment content 
     296    $tpl_comment = array( 
     297      'ID' => $comment['comment_id'], 
     298      'U_PICTURE' => $comment['cat_url'], 
     299      'src_image' => $comment['src_image'], 
     300      'ALT' => trigger_event('render_category_name', $categories[$comment['comment_id']]['name']), 
     301      'AUTHOR' => trigger_event('render_comment_author', $comment['author']), 
     302      'WEBSITE_URL' => $comment['website_url'], 
     303      'DATE' => format_date($comment['date'], true), 
     304      'CONTENT' => trigger_event('render_comment_content', $comment['content'], 'album'), 
     305      ); 
     306 
     307    if (is_admin()) 
     308    { 
     309      $tpl_comment['EMAIL'] = $email; 
     310    } 
     311 
     312    // rights 
     313    if (can_manage_comment('delete', $comment['author_id'])) 
     314    { 
     315      $tpl_comment['U_DELETE'] = add_url_params( 
     316        $url_self, 
    252317        array( 
    253           'category' => array( 
    254             'id' => $categories[$comment['comment_id']]['id'],  
    255             'name' => $categories[$comment['comment_id']]['name'],  
    256             'permalink' => $categories[$comment['comment_id']]['permalink'], 
    257             ), 
    258           array('start') 
     318          'delete_albums' => $comment['comment_id'], 
     319          'pwg_token' => get_pwg_token(), 
    259320          ) 
    260321        ); 
    261          
    262       $email = null; 
    263       if (!empty($comment['user_email'])) 
     322    } 
     323    if (can_manage_comment('edit', $comment['author_id'])) 
     324    { 
     325      $tpl_comment['U_EDIT'] = add_url_params( 
     326        $url_self, 
     327        array( 
     328          'edit_albums' => $comment['comment_id'], 
     329          ) 
     330        ); 
     331 
     332      if (isset($edit_comment) and ($comment['comment_id'] == $edit_comment)) 
    264333      { 
    265         $email = $comment['user_email']; 
     334        $tpl_comment['IN_EDIT'] = true; 
     335        $key = get_ephemeral_key(2, $comment['category_id']); 
     336        $tpl_comment['KEY'] = $key; 
     337        $tpl_comment['IMAGE_ID'] = $comment['category_id']; 
     338        $tpl_comment['CONTENT'] = $comment['content']; 
     339        $tpl_comment['PWG_TOKEN'] = get_pwg_token(); 
     340        $tpl_comment['U_CANCEL'] = $url_self; 
    266341      } 
    267       else if (!empty($comment['email'])) 
     342    } 
     343    if (can_manage_comment('validate', $comment['author_id'])) 
     344    { 
     345      if ('true' != $comment['validated']) 
    268346      { 
    269         $email = $comment['email']; 
    270       } 
    271        
    272       // comment content 
    273       $tpl_comment = array( 
    274         'ID' => $comment['comment_id'], 
    275         'U_PICTURE' => $comment['cat_url'], 
    276         'ALT' => trigger_event('render_category_name', $categories[$comment['comment_id']]['name']), 
    277         'src_image' => $comment['src_image'], 
    278         'AUTHOR' => trigger_event('render_comment_author', $comment['author']), 
    279         'WEBSITE_URL' => $comment['website_url'], 
    280         'DATE' => format_date($comment['date'], true), 
    281         'CONTENT' => trigger_event('render_comment_content', $comment['content'], 'album'), 
    282         ); 
    283          
    284       if (is_admin()) 
    285       { 
    286         $tpl_comment['EMAIL'] = $email; 
    287       } 
    288  
    289       // rights 
    290       if (can_manage_comment('delete', $comment['author_id']))  
    291       { 
    292         $tpl_comment['U_DELETE'] = add_url_params( 
    293           $url,  
     347        $tpl_comment['U_VALIDATE'] = add_url_params( 
     348          $url_self, 
    294349          array( 
    295             'delete_albums' => $comment['comment_id'], 
     350            'validate_albums'=> $comment['comment_id'], 
    296351            'pwg_token' => get_pwg_token(), 
    297352            ) 
    298353          ); 
    299354      } 
    300       if (can_manage_comment('edit', $comment['author_id']))  
    301       { 
    302         $tpl_comment['U_EDIT'] = add_url_params( 
    303           $url,  
    304           array( 
    305             'edit_albums' => $comment['comment_id'], 
    306             ) 
    307           ); 
    308  
    309         if (isset($edit_comment) and ($comment['comment_id'] == $edit_comment))  
    310         { 
    311           $tpl_comment['IN_EDIT'] = true; 
    312           $key = get_ephemeral_key(2, $comment['category_id']); 
    313           $tpl_comment['KEY'] = $key; 
    314           $tpl_comment['IMAGE_ID'] = $comment['category_id']; 
    315           $tpl_comment['CONTENT'] = $comment['content']; 
    316           $tpl_comment['PWG_TOKEN'] = get_pwg_token(); 
    317         } 
    318       } 
    319       if (can_manage_comment('validate', $comment['author_id']))  
    320       { 
    321         if ('true' != $comment['validated'])  
    322         { 
    323           $tpl_comment['U_VALIDATE'] = add_url_params( 
    324             $url,  
    325             array( 
    326               'validate_albums'=> $comment['comment_id'], 
    327               'pwg_token' => get_pwg_token(), 
    328               ) 
    329             ); 
    330         } 
    331       } 
    332        
    333       $template->append('comments', $tpl_comment); 
    334     } 
    335   } 
    336  
    337   // +-----------------------------------------------------------------------+ 
    338   // |                            template                                   | 
    339   // +-----------------------------------------------------------------------+ 
    340   // add a line to display category name 
    341   $template->set_prefilter('comments', 'coa_change_comments_list'); 
    342    
    343   function coa_change_comments_list($content, &$smarty) { 
    344     $search[0] = '<a href="{$comment.U_PICTURE}">'; 
    345     $replacement[0] = $search[0].'{$comment.ALT}<br/>'; 
    346     $search[1] = '<input type="submit"'; 
    347     $replacement[1] = '<input type=hidden name=display_mode value=albums>'.$search[1]; 
    348     return str_replace($search, $replacement, $content); 
    349   } 
    350 } 
    351  
    352 ?> 
     355    } 
     356 
     357    $template->append('comments', $tpl_comment); 
     358  } 
     359} 
     360 
     361// +-----------------------------------------------------------------------+ 
     362// |                            template                                   | 
     363// +-----------------------------------------------------------------------+ 
     364// add a line to display category name 
     365$template->set_prefilter('comments', 'coa_change_comments_list'); 
     366 
     367function coa_change_comments_list($content, &$smarty) { 
     368  $search = '<a href="{$comment.U_PICTURE}">'; 
     369  $replacement = $search.'{$comment.ALT}<br>'; 
     370  return str_replace($search, $replacement, $content); 
     371} 
  • extensions/Comments_on_Albums/trunk/include/functions_comment.inc.php

    r21347 r26089  
    11<?php 
    22/* This is a copy of include/functions_comment.inc.php but adapted for Comments On Albums */ 
     3defined('COA_ID') or die('Hacking attempt!'); 
    34 
    45include_once(PHPWG_ROOT_PATH.'include/functions_comment.inc.php'); 
    5 add_event_handler('user_comment_check_albums', 'user_comment_check', 
    6   EVENT_HANDLER_PRIORITY_NEUTRAL, 2); 
    76 
    87/** 
    9  * Tries to insert a user comment in the database and returns one of : 
    10  * validate, moderate, reject 
    11  * @param array comm contains author, content, category_id 
    12  * @param string key secret key sent back to the browser 
    13  * @param array infos out array of messages 
     8 * Tries to insert a user comment and returns action to perform. 
     9 * 
     10 * @param array &$comm 
     11 * @param string $key secret key sent back to the browser 
     12 * @param array &$infos output array of error messages 
     13 * @return string validate, moderate, reject 
    1414 */ 
    15 function insert_user_comment_albums( &$comm, $key, &$infos ) 
     15function insert_user_comment_albums(&$comm, $key, &$infos) 
    1616{ 
    1717  global $conf, $user; 
     
    3737  if (!is_classic_user()) 
    3838  { 
    39     if ( empty($comm['author']) ) 
     39    if (empty($comm['author'])) 
    4040    { 
    4141      if ($conf['comments_author_mandatory']) 
    4242      { 
    43         array_push($infos, l10n('Username is mandatory') ); 
     43        $infos[] = l10n('Username is mandatory'); 
    4444        $comment_action='reject'; 
    4545      } 
     
    4747    } 
    4848    $comm['author_id'] = $conf['guest_id']; 
    49     // if a guest try to use the name of an already existing user, he must be 
    50     // rejected 
    51     if ( $comm['author'] != 'guest' ) 
     49    // if a guest try to use the name of an already existing user, 
     50    // he must be rejected 
     51    if ($comm['author'] != 'guest') 
    5252    { 
    5353      $query = ' 
    5454SELECT COUNT(*) AS user_exists 
    5555  FROM '.USERS_TABLE.' 
    56   WHERE '.$conf['user_fields']['username']." = '".addslashes($comm['author'])."'"; 
     56  WHERE '.$conf['user_fields']['username']." = '".addslashes($comm['author'])."' 
     57;"; 
    5758      $row = pwg_db_fetch_assoc( pwg_query( $query ) ); 
    58       if ( $row['user_exists'] == 1 ) 
     59      if ($row['user_exists'] == 1) 
    5960      { 
    60         array_push($infos, l10n('This login is already used by another user') ); 
     61        $infos[] = l10n('This login is already used by another user'); 
    6162        $comment_action='reject'; 
    6263      } 
     
    6970  } 
    7071 
    71   if ( empty($comm['content']) ) 
    72   { // empty comment content 
     72  // content 
     73  if (empty($comm['content'])) 
     74  { 
    7375    $comment_action='reject'; 
    7476  } 
    7577 
    76   if ( !verify_ephemeral_key(@$key, $comm['category_id']) ) 
     78  // key 
     79  if (!verify_ephemeral_key(@$key, $comm['category_id'])) 
    7780  { 
    7881    $comment_action='reject'; 
    7982    $_POST['cr'][] = 'key'; 
    8083  } 
    81    
     84 
    8285  // website 
    8386  if (!empty($comm['website_url'])) 
     
    8992    if (!url_check_format($comm['website_url'])) 
    9093    { 
    91       array_push($infos, l10n('Your website URL is invalid')); 
     94      $infos[] = l10n('Your website URL is invalid'); 
    9295      $comment_action='reject'; 
    9396    } 
    9497  } 
    95    
     98 
    9699  // email 
    97100  if (empty($comm['email'])) 
     
    103106    else if ($conf['comments_email_mandatory']) 
    104107    { 
    105       array_push($infos, l10n('Email address is missing. Please specify an email address.') ); 
     108      $infos[] = l10n('Email address is missing. Please specify an email address.'); 
    106109      $comment_action='reject'; 
    107110    } 
     
    109112  else if (!email_check_format($comm['email'])) 
    110113  { 
    111     array_push($infos, l10n('mail address must be like xxx@yyy.eee (example : jack@altern.org)')); 
     114    $infos[] = l10n('mail address must be like xxx@yyy.eee (example : jack@altern.org)'); 
    112115    $comment_action='reject'; 
    113116  } 
    114    
     117 
    115118  // anonymous id = ip address 
    116119  $ip_components = explode('.', $comm['ip']); 
     
    138141 
    139142    list($counter) = pwg_db_fetch_row(pwg_query($query)); 
    140     if ( $counter > 0 ) 
    141     { 
    142       array_push( $infos, l10n('Anti-flood system : please wait for a moment before trying to post another comment') ); 
     143    if ($counter > 0) 
     144    { 
     145      $infos[] = l10n('Anti-flood system : please wait for a moment before trying to post another comment'); 
    143146      $comment_action='reject'; 
    144147    } 
     
    146149 
    147150  // perform more spam check 
    148   $comment_action = trigger_event('user_comment_check_albums', 
     151  $comment_action = trigger_event('user_comment_check', 
    149152      $comment_action, $comm 
    150153    ); 
    151154 
    152   if ( $comment_action!='reject' ) 
     155  if ($comment_action!='reject') 
    153156  { 
    154157    $query = ' 
     
    168171  ) 
    169172'; 
    170  
    171173    pwg_query($query); 
    172  
    173174    $comm['id'] = pwg_db_insert_id(COA_TABLE); 
    174175 
     
    191192      if ('moderate' == $comment_action) 
    192193      { 
    193         $keyargs_content[] = get_l10n_args('', ''); 
    194194        $keyargs_content[] = get_l10n_args('(!) This comment requires validation', ''); 
    195195      } 
    196196 
    197       pwg_mail_notification_admins 
    198       ( 
     197      pwg_mail_notification_admins( 
    199198        get_l10n_args('Comment by %s', stripslashes($comm['author']) ), 
    200199        $keyargs_content 
     
    202201    } 
    203202  } 
     203 
    204204  return $comment_action; 
    205205} 
    206206 
    207207/** 
    208  * Tries to delete a user comment in the database 
    209  * only admin can delete all comments 
    210  * other users can delete their own comments 
    211  * so to avoid a new sql request we add author in where clause 
     208 * Tries to delete a (or more) user comment. 
     209 *    only admin can delete all comments 
     210 *    other users can delete their own comments 
    212211 * 
    213  * @param comment_id 
     212 * @param int|int[] $comment_id 
     213 * @return bool false if nothing deleted 
    214214 */ 
    215 function delete_user_comment_albums($comment_id)  
     215function delete_user_comment_albums($comment_id) 
    216216{ 
    217217  $user_where_clause = ''; 
     
    220220    $user_where_clause = '   AND author_id = \''.$GLOBALS['user']['id'].'\''; 
    221221  } 
    222    
     222 
    223223  if (is_array($comment_id)) 
     224  { 
    224225    $where_clause = 'id IN('.implode(',', $comment_id).')'; 
     226  } 
    225227  else 
     228  { 
    226229    $where_clause = 'id = '.$comment_id; 
    227    
     230  } 
     231 
    228232  $query = ' 
    229233DELETE FROM '.COA_TABLE.' 
     
    231235$user_where_clause.' 
    232236;'; 
    233   $result = pwg_query($query); 
    234    
    235   if ($result)  
    236   { 
    237     email_admin('delete',  
     237 
     238  if (pwg_db_changes(pwg_query($query))) 
     239  { 
     240    email_admin('delete', 
    238241                array('author' => $GLOBALS['user']['username'], 
    239242                      'comment_id' => $comment_id 
    240243                  )); 
    241   } 
    242    
    243   trigger_action('user_comment_deletion', $comment_id, 'category'); 
     244    trigger_action('user_comment_deletion', $comment_id, 'category'); 
     245 
     246    return true; 
     247  } 
     248 
     249  return false; 
    244250} 
    245251 
    246252/** 
    247  * Tries to update a user comment in the database 
    248  * only admin can update all comments 
    249  * users can edit their own comments if admin allow them 
    250  * so to avoid a new sql request we add author in where clause 
     253 * Tries to update a user comment 
     254 *    only admin can update all comments 
     255 *    users can edit their own comments if admin allow them 
    251256 * 
    252  * @param comment_id 
    253  * @param post_key 
    254  * @param content 
     257 * @param array $comment 
     258 * @param string $post_key secret key sent back to the browser 
     259 * @return string validate, moderate, reject 
    255260 */ 
    256261function update_user_comment_albums($comment, $post_key) 
     
    260265  $comment_action = 'validate'; 
    261266 
    262   if ( !verify_ephemeral_key($post_key, $comment['category_id']) ) 
     267  if (!verify_ephemeral_key($post_key, $comment['category_id'])) 
    263268  { 
    264269    $comment_action='reject'; 
     
    275280  // perform more spam check 
    276281  $comment_action = 
    277     trigger_event('user_comment_check_albums', 
     282    trigger_event('user_comment_check', 
    278283      $comment_action, 
    279284      array_merge($comment, 
     
    282287      ); 
    283288 
     289  // website 
     290  if (!empty($comment['website_url'])) 
     291  { 
     292    if (!preg_match('/^https?/i', $comment['website_url'])) 
     293    { 
     294      $comment['website_url'] = 'http://'.$comment['website_url']; 
     295    } 
     296    if (!url_check_format($comment['website_url'])) 
     297    { 
     298      $page['errors'][] = l10n('Your website URL is invalid'); 
     299      $comment_action='reject'; 
     300    } 
     301  } 
     302 
    284303  if ( $comment_action!='reject' ) 
    285304  { 
     
    294313UPDATE '.COA_TABLE.' 
    295314  SET content = \''.$comment['content'].'\', 
     315      website_url = '.(!empty($comment['website_url']) ? '\''.$comment['website_url'].'\'' : 'NULL').', 
    296316      validated = \''.($comment_action=='validate' ? 'true':'false').'\', 
    297317      validation_date = '.($comment_action=='validate' ? 'NOW()':'NULL').' 
     
    300320;'; 
    301321    $result = pwg_query($query); 
    302      
     322 
    303323    // mail admin and ask to validate the comment 
    304     if ($result and $conf['email_admin_on_comment_validation'] and 'moderate' == $comment_action)  
     324    if ($result and $conf['email_admin_on_comment_validation'] and 'moderate' == $comment_action) 
    305325    { 
    306326      include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php'); 
     
    314334        get_l10n_args('', ''), 
    315335        get_l10n_args('Manage this user comment: %s', $comment_url), 
    316         get_l10n_args('', ''), 
    317336        get_l10n_args('(!) This comment requires validation', ''), 
    318337      ); 
    319338 
    320       pwg_mail_notification_admins 
    321       ( 
     339      pwg_mail_notification_admins( 
    322340        get_l10n_args('Comment by %s', stripslashes($GLOBALS['user']['username']) ), 
    323341        $keyargs_content 
     
    331349    } 
    332350  } 
    333    
     351 
    334352  return $comment_action; 
    335353} 
    336354 
     355/** 
     356 * Returns the author id of a comment 
     357 * 
     358 * @param int $comment_id 
     359 * @param bool $die_on_error 
     360 * @return int 
     361 */ 
    337362function get_comment_author_id_albums($comment_id, $die_on_error=true) 
    338363{ 
     
    355380    } 
    356381  } 
    357    
     382 
    358383  list($author_id) = pwg_db_fetch_row($result); 
    359384 
     
    362387 
    363388/** 
    364  * Tries to validate a user comment in the database 
    365  * @param int or array of int comment_id 
     389 * Tries to validate a user comment. 
     390 * 
     391 * @param int|int[] $comment_id 
    366392 */ 
    367393function validate_user_comment_albums($comment_id) 
    368394{ 
    369395  if (is_array($comment_id)) 
     396  { 
    370397    $where_clause = 'id IN('.implode(',', $comment_id).')'; 
     398  } 
    371399  else 
     400  { 
    372401    $where_clause = 'id = '.$comment_id; 
    373      
     402  } 
     403 
    374404  $query = ' 
    375405UPDATE '.COA_TABLE.' 
     
    379409;'; 
    380410  pwg_query($query); 
    381    
     411 
    382412  trigger_action('user_comment_validation', $comment_id, 'category'); 
    383413} 
    384 ?> 
  • extensions/Comments_on_Albums/trunk/language/en_UK/plugin.lang.php

    r21347 r26089  
    66$lang['Last comments on albums'] = 'Last comments on albums'; 
    77$lang['Display last posted comments on albums'] = 'Display last posted comments on albums'; 
     8$lang['%d comment on album'] = '%d comment on album'; 
     9$lang['%d comments on albums'] = '%d comments on albums'; 
     10$lang['Photos'] = 'Photos'; 
    811 
    912?> 
  • extensions/Comments_on_Albums/trunk/language/fr_FR/plugin.lang.php

    r21347 r26089  
    66$lang['Last comments on albums'] = 'Derniers commentaires sur les albums'; 
    77$lang['Display last posted comments on albums'] = 'Affiche les derniers commentaires postés sur les albums'; 
     8$lang['%d comment on album'] = '%d commentaire sur un album'; 
     9$lang['%d comments on albums'] = '%d commentaires sur albums'; 
     10$lang['Photos'] = 'Photos'; 
     11 
    812?> 
  • extensions/Comments_on_Albums/trunk/main.inc.php

    r24545 r26089  
    99*/ 
    1010 
    11 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
     11defined('PHPWG_ROOT_PATH') or die('Hacking attempt!'); 
    1212 
    1313if (mobile_theme()) 
     
    1818global $prefixeTable; 
    1919 
    20 // +-----------------------------------------------------------------------+ 
    21 //          Global variables 
    22 // +-----------------------------------------------------------------------+ 
    23 defined('COA_ID') or define('COA_ID', basename(dirname(__FILE__))); 
     20 
     21define('COA_ID',      basename(dirname(__FILE__))); 
    2422define('COA_PATH' ,   PHPWG_PLUGINS_PATH . COA_ID . '/'); 
    2523define('COA_TABLE' ,  $prefixeTable . 'comments_categories'); 
     
    2826 
    2927 
    30 // +-----------------------------------------------------------------------+ 
    31 //          Triggers 
    32 // +-----------------------------------------------------------------------+ 
    3328add_event_handler('init', 'coa_init'); 
     29 
    3430function coa_init() 
    3531{ 
    3632  global $user, $conf, $pwg_loaded_plugins; 
    37    
     33 
     34  include_once(COA_PATH . 'maintain.inc.php'); 
     35  $maintain = new Comments_on_Albums_maintain(COA_ID); 
     36  $maintain->autoUpdate(COA_VERSION, 'install'); 
     37 
    3838  // luciano doesn't use comments 
    3939  // incompatible with dynamic display of Stripped & Collumns 
    4040  if ($user['theme'] == 'luciano' or $user['theme'] == 'stripped_black_bloc') return; 
    41    
    42   // apply upgrade if needed 
    43   if ( 
    44     COA_VERSION == 'auto' or 
    45     $pwg_loaded_plugins[COA_ID]['version'] == 'auto' or 
    46     version_compare($pwg_loaded_plugins[COA_ID]['version'], COA_VERSION, '<') 
    47   ) 
    48   { 
    49     // call install function 
    50     include_once(COA_PATH . 'include/install.inc.php'); 
    51     coa_install(); 
    52      
    53     // update plugin version in database 
    54     if ( $pwg_loaded_plugins[COA_ID]['version'] != 'auto' and COA_VERSION != 'auto' ) 
    55     { 
    56       $query = ' 
    57 UPDATE '. PLUGINS_TABLE .' 
    58 SET version = "'. COA_VERSION .'" 
    59 WHERE id = "'. COA_ID .'"'; 
    60       pwg_query($query); 
    61        
    62       $pwg_loaded_plugins[COA_ID]['version'] = COA_VERSION; 
    63        
    64       if (defined('IN_ADMIN')) 
    65       { 
    66         $_SESSION['page_infos'][] = 'Comments on Albums updated to version '. COA_VERSION; 
    67       } 
    68     } 
    69   } 
    70    
    71   // add events handlers 
     41 
     42  include_once(COA_PATH . 'include/events.inc.php'); 
     43 
    7244  if (defined('IN_ADMIN')) 
    7345  { 
     46    add_event_handler('tabsheet_before_select', 'coa_tabsheet_before_select', EVENT_HANDLER_PRIORITY_NEUTRAL, 2); 
    7447    add_event_handler('loc_begin_admin_page', 'coa_admin_intro'); 
    75     add_event_handler('loc_end_admin', 'coa_admin_comments'); 
    7648  } 
    7749  else 
    7850  { 
    7951    add_event_handler('loc_after_page_header', 'coa_albums'); 
    80     add_event_handler('loc_after_page_header', 'coa_comments_page'); 
    81   }   
     52    add_event_handler('loc_end_comments', 'coa_comments'); 
     53  } 
     54 
    8255  add_event_handler('get_stuffs_modules', 'coa_register_stuffs_module'); 
     56 
     57  load_language('plugin.lang', COA_PATH); 
    8358} 
    84  
    85  
    86 // +-----------------------------------------------------------------------+ 
    87 //          Functions 
    88 // +-----------------------------------------------------------------------+ 
    89  
    90 function coa_albums()  
    91 { 
    92   global $template, $page, $conf, $pwg_loaded_plugins; 
    93    
    94   if ( !empty($page['section']) AND $page['section'] == 'categories' AND isset($page['category']) AND $page['body_id'] == 'theCategoryPage' ) 
    95   {     
    96     trigger_action('loc_begin_coa'); 
    97     include(COA_PATH . 'include/coa_albums.php'); 
    98   } 
    99 } 
    100  
    101 function coa_comments_page()  
    102 { 
    103   global $template, $page, $conf, $user; 
    104    
    105   if (isset($page['body_id']) AND $page['body_id'] == 'theCommentsPage')  
    106   { 
    107     include(COA_PATH . 'include/coa_comments_page.php'); 
    108   } 
    109 } 
    110  
    111 function coa_admin_intro()  
    112 { 
    113   global $page; 
    114    
    115   if ($page['page'] == 'intro')  
    116   {   
    117     include(COA_PATH . 'include/coa_admin_intro.php'); 
    118   }  
    119 } 
    120  
    121 function coa_admin_comments()  
    122 { 
    123   global $page; 
    124    
    125   if ($page['page'] == 'comments')  
    126   {   
    127     include(COA_PATH . 'include/coa_admin_comments.php'); 
    128   } 
    129 } 
    130  
    131 function coa_register_stuffs_module($modules)  
    132 { 
    133   load_language('plugin.lang', COA_PATH); 
    134    
    135   array_push($modules, array( 
    136     'path' => COA_PATH . '/stuffs_module', 
    137     'name' => l10n('Last comments on albums'), 
    138     'description' => l10n('Display last posted comments on albums'), 
    139   )); 
    140  
    141   return $modules; 
    142 } 
    143  
    144 ?> 
  • extensions/Comments_on_Albums/trunk/maintain.inc.php

    r19991 r26089  
    11<?php 
    2 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
     2defined('PHPWG_ROOT_PATH') or die('Hacking attempt!'); 
    33 
    4 defined('COA_ID') or define('COA_ID', basename(dirname(__FILE__))); 
    5 include_once(PHPWG_PLUGINS_PATH . COA_ID . '/include/install.inc.php'); 
     4class Comments_on_Albums_maintain extends PluginMaintain 
     5{ 
     6  private $installed = false; 
    67 
    7 function plugin_install()  
    8 { 
    9   coa_install(); 
    10   define('coa_installed', true); 
    11 } 
     8  function install($plugin_version, &$errors=array()) 
     9  { 
     10    global $prefixeTable; 
    1211 
    13 function plugin_activate() 
    14 { 
    15   if (!defined('coa_installed')) 
     12    pwg_query(' 
     13CREATE TABLE IF NOT EXISTS `' . $prefixeTable . 'comments_categories` ( 
     14  `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
     15  `category_id` mediumint(8) unsigned NOT NULL DEFAULT 0, 
     16  `date` datetime NOT NULL DEFAULT "0000-00-00 00:00:00", 
     17  `author` varchar(255) DEFAULT NULL, 
     18  `email` varchar(255) DEFAULT NULL, 
     19  `author_id` smallint(5) DEFAULT NULL, 
     20  `anonymous_id` varchar(45) NOT NULL, 
     21  `website_url` varchar(255) DEFAULT NULL, 
     22  `content` longtext, 
     23  `validated` enum("true","false") NOT NULL DEFAULT "false", 
     24  `validation_date` datetime DEFAULT NULL, 
     25  PRIMARY KEY (`id`), 
     26  KEY `comments_i2` (`validation_date`), 
     27  KEY `comments_i1` (`category_id`) 
     28) ENGINE=MyISAM DEFAULT CHARSET=utf8'); 
     29 
     30    $result = pwg_query('SHOW COLUMNS FROM `' . $prefixeTable . 'comments_categories` LIKE "anonymous_id";'); 
     31    if (!pwg_db_num_rows($result)) 
     32    { 
     33      pwg_query('ALTER TABLE `' . $prefixeTable . 'comments_categories` ADD `anonymous_id` VARCHAR(45) DEFAULT NULL;'); 
     34    } 
     35 
     36    $result = pwg_query('SHOW COLUMNS FROM `' . $prefixeTable . 'comments_categories` LIKE "email";'); 
     37    if (!pwg_db_num_rows($result)) 
     38    { 
     39      pwg_query(' 
     40ALTER TABLE `' . $prefixeTable . 'comments_categories` 
     41  ADD `email` varchar(255) DEFAULT NULL, 
     42  ADD `website_url` varchar(255) DEFAULT NULL, 
     43  ADD KEY `comments_i2` (`validation_date`), 
     44  ADD KEY `comments_i1` (`category_id`) 
     45      ;'); 
     46    } 
     47 
     48    $this->installed = true; 
     49  } 
     50 
     51  function activate($plugin_version, &$errors=array()) 
    1652  { 
    17     coa_install(); 
     53    if (!$this->installed) 
     54    { 
     55      $this->install($plugin_version, $errors); 
     56    } 
     57  } 
     58 
     59  function deactivate() 
     60  { 
     61  } 
     62 
     63  function uninstall() 
     64  { 
     65    global $prefixeTable; 
     66 
     67    pwg_query('DROP TABLE `' . $prefixeTable . 'comments_categories`;'); 
    1868  } 
    1969} 
    20  
    21 function plugin_uninstall()  
    22 { 
    23   global $prefixeTable; 
    24  
    25   pwg_query('DROP TABLE `' . $prefixeTable . 'comments_categories`;'); 
    26 } 
    27  
    28 ?> 
  • extensions/Comments_on_Albums/trunk/template/albums.tpl

    r18927 r26089  
    1 {* this is inspired by theme/defaults/template/picture.tpl *} 
    2   
    3 {* <!-- need some css modifications, specific to each theme --> *} 
    4 {html_head} 
    5 <style type="text/css"> 
    6 #comments .commentElement {ldelim} width:98%;} 
     1{*<!-- this is inspired by theme/defaults/template/picture.tpl -->*} 
     2 
     3{combine_script id='coa.script' load='footer' require='jquery' path=$COA_PATH|cat:'template/script.js'} 
     4 
     5{html_style}{strip} 
     6#comments { margin:10px 0 0 0; padding: 2px 5px !important; position:relative; } 
     7#comments .commentElement { width:98%; } 
     8 
    79{if $COMMENTS_ON_TOP} 
    8 #commentAdd, #pictureCommentList {ldelim} float:none; display:inline-block; width:47.5%; vertical-align:top;} 
    9 #commentsSwitcher {ldelim} float:none; display:inline-block; margin: 2px 0; cursor:pointer;} 
    10 .noCommentContent #commentsSwitcher  {ldelim} display: none;} 
    11 .switchArrow{ldelim} width: 16px; height: 16px; margin: 5px;} 
    12 .commentshidden #pictureComments {ldelim} display: none;} 
    13 .commentContent .comments_toggle   {ldelim} cursor: pointer;} 
    14 {/if} 
    15 {if $themeconf.name == 'Sylvia'} 
    16 #comments .description {ldelim} padding: 15px 2px 6px 12px;} 
    17 #comments .commentElement {ldelim} border: 1px solid #666;} 
    18 {/if} 
    19 {if $themeconf.name|strstr:"stripped"} 
    20 #comments {ldelim} text-align: left;} 
    21 #comments .description {ldelim} height:auto;} 
    22 #thumbnails_block2 {ldelim} min-height:0;} 
     10#comments { margin:0 0 10px 0; } 
    2311{/if} 
    2412 
    25 </style> 
    26 {/html_head} 
    27  
    28 {* <!-- if RV Thumb Scroller is installed comments block is displayed on top with a drop-down --> *} 
    29 {if $COMMENTS_ON_TOP} 
    30 {footer_script}{literal} 
    31   // comments show/hide 
    32   var commentsswicther=jQuery("#commentsSwitcher"); 
    33   var comments=jQuery("#theCategoryPage #comments"); 
    34    
    35   commentsswicther.html('<div class="switchArrow">&nbsp;</div>'); 
    36   {/literal}{if $themeconf.name != 'elegant'}switcharrow = commentsswicther.children(".switchArrow");{else}switcharrow = $('<div></div>');{/if}{literal} 
    37    
    38   if (comments.length == 1) { 
    39     var comments_button=jQuery("#comments h3"); 
    40  
    41     if (comments_button.length == 0) { 
    42       jQuery("#addComment").before('<h3>Comments</h3>'); 
    43       comments_button=jQuery("#comments h3"); 
    44     } 
    45    
    46     {/literal}{if $DISPLAY_COMMENTS_BLOCK} 
    47     comments.addClass("commentsshown"); 
    48     comments_button.addClass("comments_toggle").addClass("comments_toggle_on"); 
    49     switcharrow.html("&uarr;"); 
    50     {else} 
    51     comments.addClass("commentshidden"); 
    52     comments_button.addClass("comments_toggle").addClass("comments_toggle_off"); 
    53     switcharrow.html("&darr;"); 
    54     {/if}{literal} 
    55      
    56     comments_button.click(function() { commentsToggle() }); 
    57     commentsswicther.click(function() { commentsToggle() }); 
    58    
    59   } 
    60    
    61   function commentsToggle() { 
    62     var comments=jQuery("#theCategoryPage #comments"); 
    63     var comments_button=jQuery("#comments h3"); 
    64  
    65     if (comments.hasClass("commentshidden")) { 
    66         comments.removeClass("commentshidden").addClass("commentsshown"); 
    67         comments_button.addClass("comments_toggle_off").removeClass("comments_toggle_off"); 
    68         switcharrow.html("&uarr;"); 
    69       } else { 
    70         comments.addClass("commentshidden").removeClass("commentsshown"); 
    71         comments_button.addClass("comments_toggle_on").removeClass("comments_toggle_on"); 
    72         switcharrow.html("&darr;"); 
    73       } 
    74  
    75   } 
    76 {/literal}{/footer_script} 
     13{if $themeconf.name == 'elegant'} 
     14#content { padding-bottom:0; } 
     15#comments { background-color:#333333; } 
     16#comments h3 { margin: 10px 0px; } 
    7717{/if} 
    7818 
     19{if $themeconf.name == 'Sylvia'} 
     20#comments .description { padding: 15px 2px 6px 12px; } 
     21#comments .commentElement { border: 1px solid #666; } 
     22{/if} 
     23 
     24{if $themeconf.name|strstr:"stripped"} 
     25#comments { text-align: left; } 
     26#comments .description { height:auto; } 
     27#thumbnails_block2 { min-height:0; } 
     28{/if} 
     29 
     30{if $themeconf.name != 'elegant'} 
     31#comments { background:rgba(127,127,127,0.1); } 
     32#comments.commentshidden #pictureComments { display:none; } 
     33#comments .comments_toggle { cursor:pointer; } 
     34#commentsSwitcher { float:left; margin:2px 0; cursor:pointer; } 
     35#comments .switchArrow { width:16px; height:16px; margin:8px 5px 8px 4px; } 
     36#comments .switchArrow:before { content:"\BB"; display:inline-block; font-size:22px; } 
     37#comments.commentshidden .switchArrow:before { -webkit-transform:rotate(90deg); transform:rotate(90deg); } 
     38#comments.commentsshown .switchArrow:before { -webkit-transform:rotate(-90deg); transform:rotate(-90deg); } 
     39{/if} 
     40{/strip}{/html_style} 
     41 
     42{footer_script} 
     43var coa_on_top = {intval(isset($COMMENTS_ON_TOP))}, coa_force_open = {intval(isset($DISPLAY_COMMENTS_BLOCK))}; 
     44{/footer_script} 
     45 
     46 
    7947{if isset($COMMENT_COUNT)} 
    80 <div id="comments" style="margin:10px 0 10px 0;" {if (!isset($comment_add) && ($COMMENT_COUNT == 0))}class="noCommentContent"{else}class="commentContent"{/if}> 
    81   <h3 style="margin:0 0 0 5px;"><div id="commentsSwitcher"></div>{$pwg->l10n_dec('%d comment', '%d comments',$COMMENT_COUNT)}</h3> 
     48<div id="comments" {if (!isset($comment_add) && ($COMMENT_COUNT == 0))}class="noCommentContent"{else}class="commentContent"{/if}><div id="commentsSwitcher"></div> 
     49  <h3>{$COMMENT_COUNT|translate_dec:'%d comment':'%d comments'}</h3> 
    8250 
    83   <div id="pictureComments"><fieldset> 
     51  <div id="pictureComments"> 
    8452    {if isset($comment_add)} 
    8553    <div id="commentAdd"> 
    86       <h4>{'Add a comment'|@translate}</h4> 
     54      <h4>{'Add a comment'|translate}</h4> 
    8755      <form method="post" action="{$comment_add.F_ACTION}" id="addComment"> 
    8856        {if $comment_add.SHOW_AUTHOR} 
    89           <p><label for="author">{'Author'|@translate}{if $comment_add.AUTHOR_MANDATORY} ({'mandatory'|@translate}){/if} :</label></p> 
     57          <p><label for="author">{'Author'|translate}{if $comment_add.AUTHOR_MANDATORY} ({'mandatory'|translate}){/if} :</label></p> 
    9058          <p><input type="text" name="author" id="author" value="{$comment_add.AUTHOR}"></p> 
    9159        {/if} 
    9260        {if $comment_add.SHOW_EMAIL} 
    93           <p><label for="email">{'Email'|@translate}{if $comment_add.EMAIL_MANDATORY} ({'mandatory'|@translate}){/if} :</label></p> 
     61          <p><label for="email">{'Email address'|translate}{if $comment_add.EMAIL_MANDATORY} ({'mandatory'|translate}){/if} :</label></p> 
    9462          <p><input type="text" name="email" id="email" value="{$comment_add.EMAIL}"></p> 
    9563        {/if} 
    96         <p><label for="website_url">{'Website'|@translate} :</label></p> 
     64        <p><label for="website_url">{'Website'|translate} :</label></p> 
    9765        <p><input type="text" name="website_url" id="website_url" value="{$comment_add.WEBSITE_URL}"></p> 
    98         <p><label for="contentid">{'Comment'|@translate} ({'mandatory'|@translate}) :</label></p> 
     66        <p><label for="contentid">{'Comment'|translate} ({'mandatory'|translate}) :</label></p> 
    9967        <p><textarea name="content" id="contentid" rows="5" cols="50">{$comment_add.CONTENT}</textarea></p> 
    10068        <p><input type="hidden" name="key" value="{$comment_add.KEY}"> 
    101           <input type="submit" value="{'Submit'|@translate}"></p> 
     69          <input type="submit" value="{'Submit'|translate}"></p> 
    10270      </form> 
    10371    </div> 
     
    11078            <a href="{$COMMENTS_ORDER_URL}#comments" rel="nofollow" class="commentsOrder">{$COMMENTS_ORDER_TITLE}</a> 
    11179          {/if} 
    112           {if !empty($comment_navbar) }{include file=$COA_ABSOLUTE_PATH|@cat:'template/navigation_bar.tpl'|@get_extent:'navbar'}{/if} 
     80          {if !empty($comment_navbar)} 
     81            {include file='navigation_bar.tpl'|get_extent:'navbar' navbar=$comment_navbar} 
     82          {/if} 
    11383        </div> 
    11484      {/if} 
     
    11686    </div> 
    11787    {/if} 
    118     {if not $COMMENTS_ON_TOP}<div style="clear:both"></div>{/if} 
    119   </fieldset></div> 
     88    <div style="clear:both"></div> 
     89  </div> 
    12090 
    12191</div> 
Note: See TracChangeset for help on using the changeset viewer.