diff -Nur ./blog_addons.module ../../modules/blog_addons/blog_addons.module
--- ./blog_addons.module 2008-05-08 00:23:57.000000000 -0400
+++ ../../modules/blog_addons/blog_addons.module 2008-08-04 15:17:32.000000000 -0400
@@ -124,7 +124,7 @@
$query = "SELECT COUNT(DISTINCT(u.name)) FROM {users} u INNER JOIN {node} n ON u.uid = n.uid WHERE n.type = 'blog'";
$counts = db_rewrite_sql($query);
- $query = "SELECT u.name, COUNT(n.uid) AS nposts FROM {users} u INNER JOIN {node} n ON u.uid = n.uid WHERE n.status=1 AND n.type = 'blog' GROUP BY u.uid " . $sortby;
+ $query = "SELECT u.name, COUNT(n.uid) AS nposts FROM {users} u INNER JOIN {node} n ON u.uid = n.uid WHERE n.status=1 AND n.type = 'blog' GROUP BY u.uid, u.name " . $sortby;
$result = pager_query(db_rewrite_sql($query), variable_get('blog_addons_nbloggers', 20),0,$counts);
blog_addons_show_bloggers($result,$pager_attrib );
@@ -251,7 +251,7 @@
$bcontent .= "
" . l(t("My blog"),'blog/'. $user->name) . "";
$bcontent .= "" . l('Post new blog entry','node/add/blog') . "";
$bcontent .= "Top bloggers ";
- $query = "SELECT u.name, COUNT(n.uid) AS nposts FROM {users} u INNER JOIN {node} n ON u.uid = n.uid WHERE n.status=1 AND n.type = 'blog' GROUP BY u.uid ORDER BY nposts DESC LIMIT " . variable_get('blog_addons_ntopbloggers', 5);
+ $query = "SELECT u.name, COUNT(n.uid) AS nposts FROM {users} u INNER JOIN {node} n ON u.uid = n.uid WHERE n.status=1 AND n.type = 'blog' GROUP BY u.uid, u.name ORDER BY nposts DESC LIMIT " . variable_get('blog_addons_ntopbloggers', 5);
$result = db_query(db_rewrite_sql($query));
$bcontent .= "";
@@ -298,10 +298,22 @@
}
if ($month != $lastmonth)
{
- $limit = " AND YEAR(FROM_UNIXTIME(n.created)) = " . $year;
- $limit .= " AND MONTH(FROM_UNIXTIME(n.created)) = " . $month_numeric;
- $query = "SELECT n.nid, n.created FROM {node} n WHERE n.type = 'blog' AND n.status = 1 AND n.uid = " . $account->uid . $limit . " ORDER By n.created DESC ";
- $postpermonth = mysql_num_rows(db_query($query));
+ switch ($GLOBALS['db_type']) {
+ case 'mysql':
+ case 'mysqli':
+ $limit = " AND YEAR(FROM_UNIXTIME(n.created)) = " . $year;
+ $limit .= " AND MONTH(FROM_UNIXTIME(n.created)) = " . $month_numeric;
+ $query = "SELECT n.nid, n.created FROM {node} n WHERE n.type = 'blog' AND n.status = 1 AND n.uid = " . $account->uid . $limit . " ORDER By n.created DESC ";
+ $postpermonth = mysql_num_rows(db_query($query));
+ break;
+
+ case 'pgsql':
+ $limit = " AND EXTRACT(YEAR FROM (n.created::ABSTIME::TIMESTAMP)) = " . $year;
+ $limit .= " AND EXTRACT(MONTH FROM (n.created::ABSTIME::TIMESTAMP)) = " . $month_numeric;
+ $query = "SELECT n.nid, n.created FROM {node} n WHERE n.type = 'blog' AND n.status = 1 AND n.uid = " . $account->uid . $limit . " ORDER By n.created DESC ";
+ $postpermonth = pg_numrows(db_query($query));
+ break;
+ }
$bcontent .= "- " . l($month,'blog/' . $account->name . '/' . $year . '/' . $month_numeric) . " (" . $postpermonth . ")
";
$lastmonth = $month;
@@ -393,14 +405,32 @@
else
$tempuser = user_load(array('name' => $user));
+switch ($GLOBALS['db_type']) {
+case 'mysql':
+case 'mysqli':
if ($year)
- $limit = " AND YEAR(FROM_UNIXTIME(n.created)) = " . $year;
+ $limit = " AND YEAR(TIMESTAMP(FROM_UNIXTIME(n.created)) = " . $year;
if (is_numeric($month))
$limit .= " AND MONTH(FROM_UNIXTIME(n.created)) = " . $month;
if (is_numeric($day))
$limit .= " AND DAY(FROM_UNIXTIME(n.created)) = " . $day;
$query = "SELECT n.nid, n.created, YEAR(FROM_UNIXTIME(n.created)) AS year, MONTH(FROM_UNIXTIME(n.created)) AS month, DAY(FROM_UNIXTIME(n.created)) AS day FROM {node} n WHERE n.type = 'blog' AND n.status = 1 AND n.uid = " . $tempuser->uid . " " . $limit . $sortby;
+break;
+
+case 'pgsql':
+if ($year)
+ $limit = " AND EXTRACT(YEAR FROM (n.created::ABSTIME::TIMESTAMP)) = " . $year;
+if (is_numeric($month))
+ $limit .= " AND EXTRACT(MONTH FROM (n.created::ABSTIME::TIMESTAMP)) = " . $month;
+if (is_numeric($day))
+ $limit .= " AND EXTRACT(DAY FROM(n.created::ABSTIME::TIMESTAMP)) = " . $day;
+
+$query = "SELECT n.nid, n.created, EXTRACT (YEAR from (n.created::ABSTIME::TIMESTAMP)) AS year, EXTRACT (MONTH FROM(n.created::ABSTIME::TIMESTAMP)) AS month, EXTRACT (DAY from (n.created::ABSTIME::TIMESTAMP)) AS day FROM {node} n WHERE n.type = 'blog' AND n.status = 1 AND n.uid = " . $tempuser->uid . " " . $limit . $sortby;
+
+break;
+}
+
$result = pager_query($query,variable_get('blog_addons_nposts_userhomepage', 20));