Changeset 12515


Ignore:
Timestamp:
10/25/11 16:35:54 (8 years ago)
Author:
patdenice
Message:

Update LastCom module for piwigo 2.3.
Don't hide main block if an additional page is defined as home page.

Location:
extensions/PWG_Stuffs/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • extensions/PWG_Stuffs/trunk/class.inc.php

    r9738 r12515  
    8282  function process_modules() 
    8383  { 
    84     global $pwg_loaded_plugins; 
     84    global $pwg_loaded_plugins, $conf; 
    8585 
    8686    foreach ($this->modules as $module) 
     
    9090        $this->pos = 'end'; 
    9191        $show = unserialize($module['datas']); 
    92         if (!$show) 
     92        if (!$show and empty($conf['AP']['homepage'])) 
    9393        { 
    9494          add_event_handler('loc_end_index', 'hide_main_block'); 
  • extensions/PWG_Stuffs/trunk/modules/LastComs/main.inc.php

    r9737 r12515  
    22 
    33if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
     4include_once(PHPWG_ROOT_PATH.'include/functions_comment.inc.php'); 
     5 
    46global $user, $conf; 
    57 
     
    79// |                         comments management                           | 
    810// +-----------------------------------------------------------------------+ 
    9 // comments deletion 
    10 if (isset($_GET['delete']) and is_numeric($_GET['delete']) and is_admin()) 
    11 { 
    12     check_status(ACCESS_ADMINISTRATOR); 
    13     check_pwg_token(); 
    14     $query = ' 
    15 DELETE FROM ' . COMMENTS_TABLE . ' 
    16   WHERE id=' . $_GET['delete'] . ' 
    17 ;'; 
    18     pwg_query($query); 
    19 } 
    20  
    21 // comments validation 
    22 if (isset($_GET['validate']) and is_numeric($_GET['validate']) and is_admin()) 
    23 { 
    24     check_status(ACCESS_ADMINISTRATOR); 
    25     check_pwg_token(); 
    26     $query = ' 
    27 UPDATE ' . COMMENTS_TABLE . ' 
    28   SET validated = \'true\' 
    29   , validation_date = NOW() 
    30   WHERE id=' . $_GET['validate'] . ' 
    31 ;'; 
    32     pwg_query($query); 
     11 
     12$comment_id = null; 
     13$action = null; 
     14 
     15$actions = array('delete_comment', 'validate_comment', 'edit_comment'); 
     16foreach ($actions as $loop_action) 
     17{ 
     18  if (isset($_GET[$loop_action])) 
     19  { 
     20    $action = $loop_action; 
     21    check_input_parameter($action, $_GET, false, PATTERN_ID); 
     22    $comment_id = $_GET[$action]; 
     23    break; 
     24  } 
     25} 
     26 
     27if (isset($action)) 
     28{ 
     29  check_pwg_token(); 
     30 
     31  $comment_author_id = get_comment_author_id($comment_id); 
     32  $action = str_replace('_comment', '', $action); 
     33 
     34  if (can_manage_comment($action, $comment_author_id)) 
     35  { 
     36    $perform_redirect = false; 
     37 
     38    if ('delete' == $action) 
     39    { 
     40      delete_user_comment($comment_id); 
     41      $perform_redirect = true; 
     42    } 
     43 
     44    if ('validate' == $action) 
     45    { 
     46      validate_user_comment($comment_id); 
     47      $perform_redirect = true; 
     48    } 
     49 
     50    if ('edit' == $action) 
     51    { 
     52      if (!empty($_POST['content'])) 
     53      { 
     54        update_user_comment( 
     55          array( 
     56            'comment_id' => $_GET['edit_comment'], 
     57            'image_id' => $_POST['image_id'], 
     58            'content' => $_POST['content'] 
     59            ), 
     60          $_POST['key'] 
     61          ); 
     62 
     63        $perform_redirect = true; 
     64      } 
     65      else 
     66      { 
     67        $edit_comment = $_GET['edit_comment']; 
     68      } 
     69    } 
     70 
     71    if ($perform_redirect) 
     72    { 
     73      $redirect_url = 
     74        PHPWG_ROOT_PATH 
     75        .'index.php' 
     76        .get_query_string_diff(array('delete_comment','validate_comment','edit_comment','pwg_token')); 
     77 
     78      redirect($redirect_url); 
     79    } 
     80  } 
    3381} 
    3482 
     
    3684// |                        last comments display                          | 
    3785// +-----------------------------------------------------------------------+ 
     86if ( !is_admin() ) 
     87{ 
     88  $page['where_clauses'][] = 'validated=\'true\''; 
     89} 
     90 
     91$page['where_clauses'][] = get_sql_condition_FandF 
     92  ( 
     93    array 
     94      ( 
     95        'forbidden_categories' => 'category_id', 
     96        'visible_categories' => 'category_id', 
     97        'visible_images' => 'ic.image_id' 
     98      ), 
     99    '', true 
     100  ); 
     101 
    38102$comments = array(); 
    39103$element_ids = array(); 
    40104$category_ids = array(); 
    41 $max_width = 0; 
    42 if (!is_admin()) 
    43 { 
    44   $clauses[] = 'validated="true"'; 
    45 } 
    46 $clauses[] = get_sql_condition_FandF ( 
    47     array ('forbidden_categories' => 'category_id', 
    48         'visible_categories' => 'category_id', 
    49         'visible_images' => 'ic.image_id'), '', true); 
    50  
    51 $query = 'SELECT com.id AS comment_id 
    52    , com.image_id 
    53    , ic.category_id 
    54    , com.author 
    55    , com.date 
    56    , com.content 
    57    , com.id AS comment_id 
    58    , com.validated 
    59    FROM ' . IMAGE_CATEGORY_TABLE . ' AS ic 
    60    INNER JOIN ' . COMMENTS_TABLE . ' AS com 
    61    ON ic.image_id = com.image_id 
    62    WHERE ' . implode(' AND ', $clauses) . ' 
    63     GROUP BY comment_id 
    64     ORDER BY date DESC 
    65     LIMIT 0, ' . $datas[0] . ';'; 
    66  
     105 
     106$query = ' 
     107SELECT com.id AS comment_id, 
     108       com.image_id, 
     109       com.author, 
     110       com.author_id, 
     111       com.date, 
     112       com.content, 
     113       com.validated 
     114  FROM '.IMAGE_CATEGORY_TABLE.' AS ic 
     115    INNER JOIN '.COMMENTS_TABLE.' AS com 
     116    ON ic.image_id = com.image_id 
     117    LEFT JOIN '.USERS_TABLE.' As u 
     118    ON u.'.$conf['user_fields']['id'].' = com.author_id 
     119  WHERE '.implode(' 
     120    AND ', $page['where_clauses']).' 
     121  GROUP BY comment_id, 
     122       com.image_id, 
     123       com.author, 
     124       com.author_id, 
     125       com.date, 
     126       com.content, 
     127       com.validated 
     128  ORDER BY date DESC 
     129  LIMIT 0, ' . $datas[0] . ';'; 
     130 
     131$query.= ' 
     132;'; 
    67133$result = pwg_query($query); 
    68 while ($row = mysql_fetch_assoc($result)) 
     134while ($row = pwg_db_fetch_assoc($result)) 
    69135{ 
    70136  array_push($comments, $row); 
    71137  array_push($element_ids, $row['image_id']); 
    72   array_push($category_ids, $row['category_id']); 
    73138} 
    74139 
    75140if (count($comments) > 0) 
    76141{ 
     142  $block['TEMPLATE'] = 'stuffs_lastcoms.tpl'; 
    77143  $block['TITLE_URL'] = 'comments.php'; 
    78144  $block['comments'] = array(); 
     145  $block['MAX_WIDTH'] = $datas[3]; 
     146  $block['MAX_HEIGHT'] = $datas[4]; 
     147  switch ($datas[2]) 
     148  { 
     149    case 1 : 
     150      $block['NB_COMMENTS_LINE'] = '99%'; 
     151      break; 
     152    case 2 : 
     153      $block['NB_COMMENTS_LINE'] = '49.5%'; 
     154      break; 
     155    case 3 : 
     156      $block['NB_COMMENTS_LINE'] = '33%'; 
     157      break; 
     158  } 
    79159 
    80160  // retrieving element informations 
     
    86166;'; 
    87167  $result = pwg_query($query); 
    88   while ($row = mysql_fetch_assoc($result)) 
     168  while ($row = pwg_db_fetch_assoc($result)) 
    89169  { 
    90170    $elements[$row['id']] = $row; 
     
    93173  // retrieving category informations 
    94174  $query = ' 
    95 SELECT id, name, permalink, uppercats 
    96   FROM '.CATEGORIES_TABLE.' 
    97   WHERE id IN ('.implode(',', $category_ids).') 
     175SELECT c.id, name, permalink, uppercats, com.id as comment_id 
     176  FROM '.CATEGORIES_TABLE.' AS c 
     177  LEFT JOIN '.IMAGE_CATEGORY_TABLE.' AS ic 
     178  ON c.id=ic.category_id 
     179  LEFT JOIN '.COMMENTS_TABLE.' AS com 
     180  ON ic.image_id=com.image_id 
     181  '.get_sql_condition_FandF 
     182    ( 
     183      array 
     184      ( 
     185        'forbidden_categories' => 'c.id', 
     186        'visible_categories' => 'c.id' 
     187       ), 
     188      'WHERE' 
     189     ).' 
    98190;'; 
    99   $categories = hash_from_query($query, 'id'); 
     191  $categories = hash_from_query($query, 'comment_id'); 
    100192 
    101193  foreach ($comments as $comment) 
     
    115207    // link to the full size picture 
    116208    $url = make_picture_url( 
    117             array( 
    118               'category' => $categories[ $comment['category_id'] ], 
    119               'image_id' => $comment['image_id'], 
    120               'image_file' => $elements[$comment['image_id']]['file'], 
     209      array( 
     210        'category' => $categories[ $comment['comment_id'] ], 
     211        'image_id' => $comment['image_id'], 
     212        'image_file' => $elements[$comment['image_id']]['file'], 
     213        ) 
     214      ); 
     215 
     216    $tpl_comment = array( 
     217      'ID' => $comment['comment_id'], 
     218      'U_PICTURE' => $url, 
     219      'TN_SRC' => $thumbnail_src, 
     220      'ALT' => $name, 
     221      'AUTHOR' => trigger_event('render_comment_author', $comment['author']), 
     222      'DATE'=>format_date($comment['date'], true), 
     223      'CONTENT'=>trigger_event('render_comment_content',$comment['content']), 
     224      'WIDTH' => $datas[3], 
     225      'HEIGHT' => $datas[4], 
     226      ); 
     227 
     228    if (can_manage_comment('delete', $comment['author_id'])) 
     229    { 
     230      $url = 
     231        get_root_url() 
     232        .'index.php' 
     233        .get_query_string_diff(array('edit_comment', 'delete_comment','validate_comment', 'pwg_token')); 
     234 
     235      $tpl_comment['U_DELETE'] = add_url_params( 
     236        $url, 
     237        array( 
     238          'delete_comment' => $comment['comment_id'], 
     239          'pwg_token' => get_pwg_token(), 
     240          ) 
     241        ); 
     242    } 
     243 
     244    if (can_manage_comment('edit', $comment['author_id'])) 
     245    { 
     246      $url = 
     247        get_root_url() 
     248        .'index.php' 
     249        .get_query_string_diff(array('edit_comment', 'delete_comment','validate_comment', 'pwg_token')); 
     250 
     251      $tpl_comment['U_EDIT'] = add_url_params( 
     252        $url, 
     253        array( 
     254          'edit_comment' => $comment['comment_id'], 
     255          'pwg_token' => get_pwg_token(), 
     256          ) 
     257        ); 
     258 
     259      if (isset($edit_comment) and ($comment['comment_id'] == $edit_comment)) 
     260      { 
     261        $tpl_comment['IN_EDIT'] = true; 
     262        $key = get_ephemeral_key(2, $comment['image_id']); 
     263        $tpl_comment['KEY'] = $key; 
     264        $tpl_comment['IMAGE_ID'] = $comment['image_id']; 
     265        $tpl_comment['CONTENT'] = $comment['content']; 
     266      } 
     267    } 
     268 
     269    if (can_manage_comment('validate', $comment['author_id'])) 
     270    { 
     271      if ('true' != $comment['validated']) 
     272      { 
     273        $tpl_comment['U_VALIDATE'] = add_url_params( 
     274          $url, 
     275          array( 
     276            'validate_comment'=> $comment['comment_id'], 
     277            'pwg_token' => get_pwg_token(), 
    121278            ) 
    122279          ); 
    123  
    124     $author = $comment['author']; 
    125     if (empty($comment['author'])) 
    126     { 
    127       $author = l10n('guest'); 
    128     } 
    129  
    130     $tpl_comment = 
    131       array( 
    132         'U_PICTURE' => $url, 
    133         'TN_SRC' => $thumbnail_src, 
    134         'ALT' => $name, 
    135         'AUTHOR' => trigger_event('render_comment_author', $author), 
    136         'DATE' => format_date($comment['date'],'mysql_datetime',true), 
    137         'CONTENT' => trigger_event('render_comment_content',$comment['content']), 
    138         'WIDTH' => $datas[3], 
    139         'HEIGHT' => $datas[4], 
    140         ); 
    141  
    142     switch ($datas[2]) 
    143     { 
    144       case 1 : 
    145         $tpl_comment['CLASS'] = 'one_comment'; 
    146         break; 
    147       case 2 : 
    148         $tpl_comment['CLASS'] = 'two_comment'; 
    149         break; 
    150       case 3 : 
    151         $tpl_comment['CLASS'] = 'three_comment'; 
    152         break; 
    153     } 
    154  
    155     if ( is_admin() ) 
    156     { 
    157       $url = get_root_url().'index.php'.get_query_string_diff(array('delete','validate')); 
    158       $tpl_comment['U_DELETE'] = add_url_params($url, array( 
    159             'delete' => $comment['comment_id'], 
    160             'pwg_token' => get_pwg_token())); 
    161  
    162             if ($comment['validated'] != 'true') 
    163       { 
    164         $tpl_comment['U_VALIDATE'] = add_url_params($url, array( 
    165             'validate' => $comment['comment_id'], 
    166             'pwg_token' => get_pwg_token())); 
    167       } 
    168     } 
    169  
    170     // Show comment editor link 
    171     if (defined('CE_PATH') and ((!is_a_guest() and ($user[$conf['user_fields']['username']] == $author)) or is_admin())) 
    172     { 
    173       load_language('plugin.lang', CE_PATH); 
    174       $tpl_comment['U_EDIT'] = add_url_params(get_root_url() . 'index.php', array( 
    175             CE_ACTION => CE_ACTION_EDIT, 
    176             CE_ID => $comment['comment_id'], 
    177             'pwg_token' => get_pwg_token())); 
     280      } 
    178281    } 
    179282    array_push($block['comments'], $tpl_comment); 
    180283  } 
    181   $block['TEMPLATE'] = 'stuffs_lastcoms.tpl'; 
    182284} 
    183285 
  • extensions/PWG_Stuffs/trunk/theme/template/stuffs_lastcoms.tpl

    r9737 r12515  
     1{if !empty($block.MAX_WIDTH) or !empty($block.MAX_HEIGHT) or !empty($block.NB_COMMENTS_LINE)} 
     2{html_head} 
     3<style type="text/css"> 
     4{if !empty($block.MAX_WIDTH)} 
     5#comments img {ldelim} max-width:{$block.MAX_WIDTH}px; } 
     6{/if} 
     7{if !empty($block.MAX_HEIGHT)} 
     8#comments img {ldelim} max-height:{$block.MAX_HEIGHT}px; } 
     9{/if} 
     10{if !empty($block.NB_COMMENTS_LINE)} 
     11#comments li {ldelim} width:{$block.NB_COMMENTS_LINE} !important; } 
     12{/if} 
     13</style> 
     14{/html_head} 
     15{/if} 
     16 
    117<div id="comments"> 
    2 <ul class="thumbnailCategories"> 
    3 {foreach from=$block.comments item=comment} 
    4 <li {if isset($comment.CLASS)}class="{$comment.CLASS}"{/if}> 
    5         <div class="thumbnailCategory"> 
    6     {if isset($comment.TN_SRC)} 
    7     <div class="illustration"> 
    8       <a href="{$comment.U_PICTURE}"> 
    9         <img src="{$comment.TN_SRC}" alt="{$comment.ALT}" 
    10           style="{if !empty($comment.WIDTH)}max-width: {$comment.WIDTH}px; {/if}{if !empty($comment.HEIGHT)}max-height: {$comment.HEIGHT}px; {/if}"/> 
    11       </a> 
    12     </div> 
    13     {/if} 
    14     <div class="description"> 
    15       {if isset($comment.U_DELETE) or isset($comment.U_VALIDATE) } 
    16       <div class="actions" style="float:right"> 
    17         {if !empty($comment.U_DELETE)} 
    18           <a href="{$comment.U_DELETE}" title="{'delete this comment'|@translate}" onClick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');"> 
    19             <img src="{$ROOT_URL}{$themeconf.icon_dir}/delete.png" class="button" alt="[delete]" /> 
    20           </a> 
    21         {/if} 
    22         {if !empty($comment.U_VALIDATE)} 
    23           <a href="{$comment.U_VALIDATE}" title="validate this comment"> 
    24             <img src="{$ROOT_URL}{$themeconf.icon_dir}/validate_s.png" class="button" alt="[validate]" /> 
    25           </a> 
    26         {/if} 
    27       </div> 
    28       {/if} 
    29       <span class="author">{$comment.AUTHOR}</span> - <span class="date">{$comment.DATE}</span> 
    30       {if !empty($comment.U_EDIT)}- <a href="{$comment.U_EDIT}">{'ce_edit_tool'|@translate}</a>{/if} 
    31       <blockquote>{$comment.CONTENT}</blockquote> 
    32     </div> 
    33   </div> 
    34 </li> 
    35 {if isset($comment_separator)} 
    36 <hr/> 
    37 {/if} 
    38 {/foreach} 
    39 </ul> 
     18{assign var=comments value=$block.comments} 
     19{include file='comment_list.tpl'} 
    4020</div> 
Note: See TracChangeset for help on using the changeset viewer.