]> git.mjollnir.org Git - s9y.git/commitdiff
New smarty function "serendipity_gettotalCount" which can show the total number of...
authorgarvinhicking <garvinhicking>
Mon, 10 Apr 2006 07:51:52 +0000 (07:51 +0000)
committergarvinhicking <garvinhicking>
Mon, 10 Apr 2006 07:51:52 +0000 (07:51 +0000)
include/functions_entries.inc.php
include/functions_smarty.inc.php

index f35145e452cd3321ab81d388ddfbc5d42ef7337b..f5a1596efa09871f58539cbb88dd5636c628cd75 100644 (file)
@@ -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
index 81826498d831e2a3193b40effe7a320c9bc73d4c..a327f3c11bd5cd9ca1c6539e48740036d27fefbd 100644 (file)
@@ -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');
     }