From 310aa7c4b6e662fed724f0b577403cafe38c0e9e Mon Sep 17 00:00:00 2001 From: garvinhicking Date: Mon, 10 Apr 2006 07:51:52 +0000 Subject: [PATCH] New smarty function "serendipity_gettotalCount" which can show the total number of entries/comments/trackbacks --- include/functions_entries.inc.php | 32 +++++++++++++++++++++++++++++++ include/functions_smarty.inc.php | 19 ++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/include/functions_entries.inc.php b/include/functions_entries.inc.php index f35145e..f5a1596 100644 --- a/include/functions_entries.inc.php +++ b/include/functions_entries.inc.php @@ -1427,3 +1427,35 @@ function serendipity_printArchives() { serendipity_smarty_fetch('ARCHIVES', 'entries_archives.tpl', true); } +/** + * Get total count for specific objects + * + * @access public + * @param string The type of count to show: "entries", "trackbacks", "comments" + * @return string The number + */ +function serendipity_getTotalCount($what) { + global $serendipity; + + switch($what) { + case 'comments': + $res = serendipity_db_query("SELECT SUM(e.comments) AS sum + FROM {$serendipity['dbPrefix']}entries AS e + WHERE e.isdraft = 'false' + " . (!serendipity_db_bool($serendipity['showFutureEntries']) ? " AND e.timestamp <= " . time() : ''), true, 'assoc'); + return $res['sum']; + case 'trackbacks': + $res = serendipity_db_query("SELECT SUM(e.trackbacks) AS sum + FROM {$serendipity['dbPrefix']}entries AS e + WHERE e.isdraft = 'false' + " . (!serendipity_db_bool($serendipity['showFutureEntries']) ? " AND e.timestamp <= " . time() : ''), true, 'assoc'); + return $res['sum']; + case 'entries': + $res = serendipity_db_query("SELECT COUNT(e.id) AS sum + FROM {$serendipity['dbPrefix']}entries AS e + WHERE e.isdraft = 'false' + " . (!serendipity_db_bool($serendipity['showFutureEntries']) ? " AND e.timestamp <= " . time() : ''), true, 'assoc'); + return $res['sum']; + + } +} \ No newline at end of file diff --git a/include/functions_smarty.inc.php b/include/functions_smarty.inc.php index 8182649..a327f3c 100644 --- a/include/functions_smarty.inc.php +++ b/include/functions_smarty.inc.php @@ -322,6 +322,24 @@ function serendipity_smarty_showPlugin($params, &$smarty) { return serendipity_plugin_api::generate_plugins($params['side'], null, $params['negate'], $params['class'], $params['id']); } +/** + * Smarty Function: Get total count for specific objects + * + * @access public + * @param array Smarty parameter input array: + * what: The type of count to show: "entries", "trackbacks", "comments" + * @param object Smarty object + * @return string The Smarty HTML response + */ +function serendipity_smarty_getTotalCount($params, &$smarty) { + if (!isset($params['what'])) { + $smarty->trigger_error(__FUNCTION__ .": missing 'what' parameter"); + return; + } + + return serendipity_getTotalCount($params['what']); +} + /** * Smarty Function: Be able to execute the hook of an event plugin and return its output * @@ -576,6 +594,7 @@ function serendipity_smarty_init($vars = array()) { $serendipity['smarty']->register_function('serendipity_printTrackbacks', 'serendipity_smarty_printTrackbacks'); $serendipity['smarty']->register_function('serendipity_rss_getguid', 'serendipity_smarty_rss_getguid'); $serendipity['smarty']->register_function('serendipity_fetchPrintEntries', 'serendipity_smarty_fetchPrintEntries'); + $serendipity['smarty']->register_function('serendipity_getTotalCount', 'serendipity_smarty_getTotalCount'); $serendipity['smarty']->register_prefilter('serendipity_replaceSmartyVars'); } -- 2.39.5