aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornikrou <nikrou@piwigo.org>2010-06-24 20:35:46 +0000
committernikrou <nikrou@piwigo.org>2010-06-24 20:35:46 +0000
commit6394613e9f99f466fb1ba98c95286a828a3cee36 (patch)
tree55c74dc05268fe91a8fdd85f1bdba4ea329fd7a0
parent3a57b93baae00f91de049844232dbdbe7aead10c (diff)
Bug 1735 fixed : merge from trunk
Comment page is not PostgreSQL compatible Fixed by adding all fields except category_id in group by clause category_id is retrieved later in an another query (with permissions filter) Fixed also problem of FROM_UNIXTIME function not POstgreSQL compatible git-svn-id: http://piwigo.org/svn/branches/2.1@6602 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--comments.php46
-rw-r--r--include/functions_comment.inc.php4
2 files changed, 33 insertions, 17 deletions
diff --git a/comments.php b/comments.php
index 042947067..cda791ca6 100644
--- a/comments.php
+++ b/comments.php
@@ -359,14 +359,13 @@ $element_ids = array();
$category_ids = array();
$query = '
-SELECT com.id AS comment_id
- , com.image_id
- , ic.category_id
- , com.author
- , com.author_id
- , com.date
- , com.content
- , com.validated
+SELECT com.id AS comment_id,
+ com.image_id,
+ com.author,
+ com.author_id,
+ com.date,
+ com.content,
+ com.validated
FROM '.IMAGE_CATEGORY_TABLE.' AS ic
INNER JOIN '.COMMENTS_TABLE.' AS com
ON ic.image_id = com.image_id
@@ -374,7 +373,13 @@ SELECT com.id AS comment_id
ON u.'.$conf['user_fields']['id'].' = com.author_id
WHERE '.implode('
AND ', $page['where_clauses']).'
- GROUP BY comment_id
+ GROUP BY comment_id,
+ com.image_id,
+ com.author,
+ com.author_id,
+ com.date,
+ com.content,
+ com.validated
ORDER BY '.$page['sort_by'].' '.$page['sort_order'];
if ('all' != $page['items_number'])
{
@@ -388,7 +393,6 @@ while ($row = pwg_db_fetch_assoc($result))
{
array_push($comments, $row);
array_push($element_ids, $row['image_id']);
- array_push($category_ids, $row['category_id']);
}
if (count($comments) > 0)
@@ -408,11 +412,23 @@ SELECT id, name, file, path, tn_ext
// retrieving category informations
$query = '
-SELECT id, name, permalink, uppercats
- FROM '.CATEGORIES_TABLE.'
- WHERE id IN ('.implode(',', $category_ids).')
+SELECT c.id, name, permalink, uppercats, com.id as comment_id
+ FROM '.CATEGORIES_TABLE.' AS c
+ LEFT JOIN '.IMAGE_CATEGORY_TABLE.' AS ic
+ ON c.id=ic.category_id
+ LEFT JOIN '.COMMENTS_TABLE.' AS com
+ ON ic.image_id=com.image_id
+ '.get_sql_condition_FandF
+ (
+ array
+ (
+ 'forbidden_categories' => 'c.id',
+ 'visible_categories' => 'c.id'
+ ),
+ 'WHERE'
+ ).'
;';
- $categories = hash_from_query($query, 'id');
+ $categories = hash_from_query($query, 'comment_id');
foreach ($comments as $comment)
{
@@ -431,7 +447,7 @@ SELECT id, name, permalink, uppercats
// link to the full size picture
$url = make_picture_url(
array(
- 'category' => $categories[ $comment['category_id'] ],
+ 'category' => $categories[ $comment['comment_id'] ],
'image_id' => $comment['image_id'],
'image_file' => $elements[$comment['image_id']]['file'],
)
diff --git a/include/functions_comment.inc.php b/include/functions_comment.inc.php
index 5468f511d..67fc40716 100644
--- a/include/functions_comment.inc.php
+++ b/include/functions_comment.inc.php
@@ -133,10 +133,10 @@ SELECT COUNT(*) AS user_exists
if ($comment_action!='reject' and $conf['anti-flood_time']>0 )
{ // anti-flood system
- $reference_date = time() - $conf['anti-flood_time'];
+ $reference_date = date('c', time() - $conf['anti-flood_time']);
$query = '
SELECT id FROM '.COMMENTS_TABLE.'
- WHERE date > FROM_UNIXTIME('.$reference_date.')
+ WHERE date > \''.$reference_date.'\'
AND author_id = '.$comm['author_id'];
if ( pwg_db_num_rows( pwg_query( $query ) ) > 0 )
{