From fac62f863dceea47f90027c9404604ec74c559d3 Mon Sep 17 00:00:00 2001 From: plegall Date: Tue, 22 Oct 2013 20:39:10 +0000 Subject: feature 2920 added: change admin screen "pending comments" to "all comments". Now the administrator can filter on "all" or "pending" with a single click. In the admin menu, we display the number of pending comments. git-svn-id: http://piwigo.org/svn/trunk@25084 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin.php | 15 ++++++- admin/comments.php | 69 +++++++++++++++++++++++++++--- admin/include/add_core_tabs.inc.php | 2 +- admin/themes/default/template/admin.tpl | 4 +- admin/themes/default/template/comments.tpl | 9 +++- 5 files changed, 86 insertions(+), 13 deletions(-) diff --git a/admin.php b/admin.php index 0d840b591..de3d9a90e 100644 --- a/admin.php +++ b/admin.php @@ -206,7 +206,20 @@ $template->assign( if ($conf['activate_comments']) { - $template->assign('U_PENDING_COMMENTS', $link_start.'comments'); + $template->assign('U_COMMENTS', $link_start.'comments'); + + // pending comments + $query = ' +SELECT COUNT(*) + FROM '.COMMENTS_TABLE.' + WHERE validated=\'false\' +;'; + list($nb_comments) = pwg_db_fetch_row(pwg_query($query)); + + if ($nb_comments > 0) + { + $template->assign('NB_PENDING_COMMENTS', $nb_comments); + } } // any photo in the caddie? diff --git a/admin/comments.php b/admin/comments.php index 637790353..e22771a78 100644 --- a/admin/comments.php +++ b/admin/comments.php @@ -97,17 +97,73 @@ $tabsheet->assign(); // | comments display | // +-----------------------------------------------------------------------+ -$list = array(); +$nb_total = 0; +$nb_pending = 0; $query = ' -SELECT c.id, c.image_id, c.date, c.author, '. -$conf['user_fields']['username'].' AS username, c.content, i.path, i.representative_ext +SELECT + COUNT(*) AS counter, + validated + FROM '.COMMENTS_TABLE.' + GROUP BY validated +;'; +$result = pwg_query($query); +while ($row = pwg_db_fetch_assoc($result)) +{ + $nb_total+= $row['counter']; + + if ('false' == $row['validated']) + { + $nb_pending = $row['counter']; + } +} + +if (!isset($_GET['filter']) and $nb_pending > 0) +{ + $page['filter'] = 'pending'; +} +else +{ + $page['filter'] = 'all'; +} + +if (isset($_GET['filter']) and 'pending' == $_GET['filter']) +{ + $page['filter'] = $_GET['filter']; +} + +$template->assign( + array( + 'nb_total' => $nb_total, + 'nb_pending' => $nb_pending, + 'filter' => $page['filter'], + ) + ); + +$where_clauses = array('1=1'); + +if ('pending' == $page['filter']) +{ + $where_clauses[] = 'validated=\'false\''; +} + +$query = ' +SELECT + c.id, + c.image_id, + c.date, + c.author, + '.$conf['user_fields']['username'].' AS username, + c.content, + i.path, + i.representative_ext, + validated FROM '.COMMENTS_TABLE.' AS c INNER JOIN '.IMAGES_TABLE.' AS i ON i.id = c.image_id LEFT JOIN '.USERS_TABLE.' AS u ON u.'.$conf['user_fields']['id'].' = c.author_id - WHERE validated = \'false\' + WHERE '.implode(' AND ', $where_clauses).' ORDER BY c.date DESC ;'; $result = pwg_query($query); @@ -135,15 +191,14 @@ while ($row = pwg_db_fetch_assoc($result)) 'TN_SRC' => $thumb, 'AUTHOR' => trigger_event('render_comment_author', $author_name), 'DATE' => format_date($row['date'], true), - 'CONTENT' => trigger_event('render_comment_content',$row['content']) + 'CONTENT' => trigger_event('render_comment_content',$row['content']), + 'IS_PENDING' => ('false' == $row['validated']), ) ); $list[] = $row['id']; } -$template->assign('LIST', implode(',', $list) ); - // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ diff --git a/admin/include/add_core_tabs.inc.php b/admin/include/add_core_tabs.inc.php index fcb87ca82..443775d38 100644 --- a/admin/include/add_core_tabs.inc.php +++ b/admin/include/add_core_tabs.inc.php @@ -59,7 +59,7 @@ function add_core_tabs($sheets, $tab_id) break; case 'comments': - $sheets[''] = array('caption' => l10n('User comments validation'), 'url' => ''); + $sheets[''] = array('caption' => l10n('User comments'), 'url' => ''); break; case 'configuration': diff --git a/admin/themes/default/template/admin.tpl b/admin/themes/default/template/admin.tpl index 782b9a0d1..bb46a3a70 100644 --- a/admin/themes/default/template/admin.tpl +++ b/admin/themes/default/template/admin.tpl @@ -72,8 +72,8 @@ jQuery(document).ready(function(){ldelim} {/if}
  • {'History'|@translate}
  • {'Maintenance'|@translate}
  • -{if isset($U_PENDING_COMMENTS)} -
  • {'Pending Comments'|@translate}
  • +{if isset($U_COMMENTS)} +
  • {'Comments'|@translate}{if $NB_PENDING_COMMENTS > 0}{$NB_PENDING_COMMENTS}{/if}
  • {/if}
  • {'Updates'|@translate}
  • diff --git a/admin/themes/default/template/comments.tpl b/admin/themes/default/template/comments.tpl index 82fe169db..908ffbe49 100644 --- a/admin/themes/default/template/comments.tpl +++ b/admin/themes/default/template/comments.tpl @@ -43,7 +43,12 @@ jQuery(document).ready(function(){ }); {/literal}{/footer_script} -

    {'Pending Comments'|@translate} {$TABSHEET_TITLE}

    +

    {'User comments'|@translate} {$TABSHEET_TITLE}

    + +

    + {'All'|@translate} ({$nb_total}) + | {'Waiting'|@translate} ({$nb_pending}) +

    {if !empty($comments) }
    @@ -57,7 +62,7 @@ jQuery(document).ready(function(){
    -

    {$comment.AUTHOR} - {$comment.DATE}

    +

    {if $comment.IS_PENDING}{'Waiting'|@translate} - {/if}{$comment.AUTHOR} - {$comment.DATE}

    {$comment.CONTENT}
    -- cgit v1.2.3