[pLog-svn] r2080 - plog/branches/plog-1.0.2/class/dao
jondaley at devel.plogworld.net
jondaley at devel.plogworld.net
Wed May 25 17:27:49 GMT 2005
Author: jondaley
Date: 2005-05-25 17:27:49 +0000 (Wed, 25 May 2005)
New Revision: 2080
Modified:
plog/branches/plog-1.0.2/class/dao/articles.class.php
Log:
time offset is now taken into consideration. http://bugs.plogworld.net/view.php?id=541
Modified: plog/branches/plog-1.0.2/class/dao/articles.class.php
===================================================================
--- plog/branches/plog-1.0.2/class/dao/articles.class.php 2005-05-25 13:26:02 UTC (rev 2079)
+++ plog/branches/plog-1.0.2/class/dao/articles.class.php 2005-05-25 17:27:49 UTC (rev 2080)
@@ -247,8 +247,13 @@
$postStatus = $status;
$prefix = $this->getPrefix();
$query = "a.blog_id = ".Db::qstr($blogid);
- if( $date != -1 )
- $query .= " AND a.date+0 LIKE '$date%'";
+ if( $date != -1 ) {
+ // consider the time difference
+ $blogSettings = $this->blogs->getBlogSettings( $blogid );
+ $timeDifference = $blogSettings->getValue( "time_offset" );
+ $SecondsDiff = $timeDifference * 3600;
+ $query .= " AND FROM_UNIXTIME(UNIX_TIMESTAMP(a.date)+$SecondsDiff)+0 LIKE '$date%'";
+ }
// the common part "c.id = a.category_id" is needed so that
// we don't get one article row as many times as the amount of categories
@@ -376,8 +381,7 @@
$start = (($page - 1) * $amount);
$query .= " LIMIT $start, $amount";
}
-
-
+
// execute the query
$result = $this->Execute( $query );
@@ -508,9 +512,8 @@
{
// query to get the earliest post
// this must be my longest and most complex SQL query ever :)
- $blogs = new Blogs();
- $blogSettings = $blogs->getBlogSettings( $blogId );
-
+ // $blogs = new Blogs();
+ $blogSettings = $this->blogs->getBlogSettings( $blogId );
if( $blogSettings->getValue( "show_future_posts_in_calendar" ))
$numPostsPerMonthQuery = "SELECT COUNT(*) AS 'count',YEAR(date) AS 'year',MONTH(date) AS 'month',DAYOFMONTH(date) AS 'daymonth' FROM ".$this->getPrefix()."articles WHERE status = 1 AND blog_id = ".$blogId." GROUP BY YEAR(date),MONTH(date) ORDER BY YEAR(date) DESC,MONTH(date) DESC;";
else
@@ -578,13 +581,16 @@
// another long sql query :) the id and date fields are there just in case we need to debug
// but they're not included in the resulting array
- $blogs = new Blogs();
- $blogSettings = $blogs->getBlogSettings( $blogId );
+ // $blogs = new Blogs();
+ $blogSettings = $this->blogs->getBlogSettings( $blogId );
+ // consider the time difference
+ $timeDifference = $blogSettings->getValue( "time_offset" );
+ $SecondsDiff = $timeDifference * 3600;
// check whether we're supposed to show posts that happen in the future or not
- if( $blogSettings->getValue( "show_future_posts_in_calendar" ))
- $numPostsPerDayQuery = "SELECT COUNT(*) AS 'count', DAYOFMONTH(date) AS 'day', id AS 'id', date AS 'date' FROM ".$this->getPrefix()."articles WHERE status = 1 AND blog_id = ".$blogId." AND MONTH(date) = ".$month." AND YEAR(date) = ".$year." GROUP BY DAYOFMONTH(date);";
+ if( $blogSettings->getValue( "show_future_posts_in_calendar" ))
+ $numPostsPerDayQuery = "SELECT COUNT(*) AS 'count', DAYOFMONTH(FROM_UNIXTIME(UNIX_TIMESTAMP(date) + $SecondsDiff)) AS 'day', id AS 'id', date AS 'date' FROM ".$this->getPrefix()."articles WHERE status = 1 AND blog_id = ".$blogId." AND MONTH(FROM_UNIXTIME(UNIX_TIMESTAMP(date) + $SecondsDiff)) = ".$month." AND YEAR(FROM_UNIXTIME(UNIX_TIMESTAMP(date) + $SecondsDiff)) = ".$year." GROUP BY DAYOFMONTH(FROM_UNIXTIME(UNIX_TIMESTAMP(date) + $SecondsDiff));";
else
- $numPostsPerDayQuery = "SELECT COUNT(*) AS 'count', DAYOFMONTH(date) AS 'day', id AS 'id', date AS 'date' FROM ".$this->getPrefix()."articles WHERE status = 1 AND blog_id = ".$blogId." AND date <= NOW() AND MONTH(date) = ".$month." AND YEAR(date) = ".$year." GROUP BY DAYOFMONTH(date);";
+ $numPostsPerDayQuery = "SELECT COUNT(*) AS 'count', DAYOFMONTH(FROM_UNIXTIME(UNIX_TIMESTAMP(date) + $SecondsDiff)) AS 'day', id AS 'id', date AS 'date' FROM ".$this->getPrefix()."articles WHERE status = 1 AND blog_id = ".$blogId." AND date <= NOW() AND MONTH(FROM_UNIXTIME(UNIX_TIMESTAMP(date) + $SecondsDiff)) = ".$month." AND YEAR(FROM_UNIXTIME(UNIX_TIMESTAMP(date) + $SecondsDiff)) = ".$year." GROUP BY DAYOFMONTH(FROM_UNIXTIME(UNIX_TIMESTAMP(date) + $SecondsDiff));";
$result = $this->Execute( $numPostsPerDayQuery );
More information about the pLog-svn
mailing list