From 114ae324452ac88fe7b672338cba931d838ee2a4 Mon Sep 17 00:00:00 2001 From: plegall Date: Wed, 15 Mar 2006 22:44:35 +0000 Subject: new: cleaner URL. Instead of category.php?cat=search&search=123&start=42, you now have category.php?/search/123/start-42. Functions make_index_url and make_picture_url build these new URLs. Functions duplicate_picture_url and duplicate_index_url provide shortcuts to URL creation. The current main page page is still category.php but this can be modified easily in make_index_url function. In this first version, no backward compatibility. Calendar definition in URL must be discussed with rvelices. improvement: picture.php redesigned. First actions like "set as representative" or "delete a comment" which all lead to a redirection. Then the page (the big mess) and includes of new sub pages to manage specific parts of the page (metadata, user comments, rates). new: with the cleaner URL comes a new terminology. $page['cat'] doesn't exist anymore. $page['section'] is among 'categories', 'tags' (TODO), 'list', 'most_seen'... And sub parameters are set : $page['category'] if $page['section'] is "categories". See URL analyse in include/section_init.inc.php for details. git-svn-id: http://piwigo.org/svn/trunk@1082 68402e56-0260-453c-a942-63ccdbb3a9ee --- include/picture_comment.inc.php | 229 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 include/picture_comment.inc.php (limited to 'include/picture_comment.inc.php') diff --git a/include/picture_comment.inc.php b/include/picture_comment.inc.php new file mode 100644 index 000000000..79373d2f7 --- /dev/null +++ b/include/picture_comment.inc.php @@ -0,0 +1,229 @@ +assign_block_vars( + 'information', + array('INFORMATION'=>$lang['comment_user_exists'])); + $register_comment = false; + } + } + + if ( $register_comment ) + { + // anti-flood system + $reference_date = time() - $conf['anti-flood_time']; + $query = 'SELECT id FROM '.COMMENTS_TABLE; + $query.= ' WHERE date > FROM_UNIXTIME('.$reference_date.')'; + $query.= " AND author = '".$author."'"; + $query.= ';'; + if ( mysql_num_rows( pwg_query( $query ) ) == 0 + or $conf['anti-flood_time'] == 0 ) + { + list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();')); + + $data = array(); + $data{'author'} = $author; + $data{'date'} = $dbnow; + $data{'image_id'} = $page['image_id']; + $data{'content'} = htmlspecialchars( $_POST['content'], ENT_QUOTES); + + if (!$conf['comments_validation'] or is_admin()) + { + $data{'validated'} = 'true'; + $data{'validation_date'} = $dbnow; + } + else + { + $data{'validated'} = 'false'; + } + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + $fields = array('author', 'date', 'image_id', 'content', 'validated', + 'validation_date'); + mass_inserts(COMMENTS_TABLE, $fields, array($data)); + + // information message + $message = $lang['comment_added']; + + if (!$conf['comments_validation'] or is_admin()) + + if ( $conf['comments_validation'] and !is_admin() ) + { + $message.= '
'.$lang['comment_to_validate']; + } + $template->assign_block_vars('information', + array('INFORMATION'=>$message)); + } + else + { + // information message + $template->assign_block_vars( + 'information', + array('INFORMATION'=>$lang['comment_anti-flood'])); + } + } +} + +// the picture is commentable if it belongs at least to one category which +// is commentable +$page['show_comments'] = false; +foreach ($related_categories as $category) +{ + if ($category['commentable'] == 'true') + { + $page['show_comments'] = true; + } +} + +if ($page['show_comments']) +{ + // number of comment for this picture + $query = 'SELECT COUNT(*) AS nb_comments'; + $query.= ' FROM '.COMMENTS_TABLE.' WHERE image_id = '.$page['image_id']; + $query.= " AND validated = 'true'"; + $query.= ';'; + $row = mysql_fetch_array( pwg_query( $query ) ); + + // navigation bar creation + $url = PHPWG_ROOT_PATH.'picture.php'; + $url.= get_query_string_diff(array('add_fav','start')); + +// $url = duplicate_picture_URL( +// array(), +// array('start') +// ); + + if (!isset($_GET['start']) + or !is_numeric($_GET['start']) + or (is_numeric($_GET['start']) and $_GET['start'] < 0)) + { + $page['start'] = 0; + } + else + { + $page['start'] = $_GET['start']; + } + $page['navigation_bar'] = create_navigation_bar( + $url, + $row['nb_comments'], + $page['start'], + $conf['nb_comment_page'], + '' + ); + + $template->assign_block_vars( + 'comments', + array( + 'NB_COMMENT' => $row['nb_comments'], + 'NAV_BAR' => $page['navigation_bar'], + ) + ); + + if ($row['nb_comments'] > 0) + { + $query = ' +SELECT id,author,date,image_id,content + FROM '.COMMENTS_TABLE.' + WHERE image_id = '.$page['image_id'].' + AND validated = \'true\' + ORDER BY date ASC + LIMIT '.$page['start'].', '.$conf['nb_comment_page'].' +;'; + $result = pwg_query( $query ); + + while ($row = mysql_fetch_array($result)) + { + $template->assign_block_vars( + 'comments.comment', + array( + 'COMMENT_AUTHOR' => empty($row['author']) + ? $lang['guest'] + : $row['author'], + + 'COMMENT_DATE' => format_date( + $row['date'], + 'mysql_datetime', + true), + + 'COMMENT' => parse_comment_content($row['content']), + ) + ); + + if (is_admin()) + { + $template->assign_block_vars( + 'comments.comment.delete', + array( + 'U_COMMENT_DELETE' => $url.'&del='.$row['id'] + ) + ); + } + } + } + + if (!$user['is_the_guest'] + or ($user['is_the_guest'] and $conf['comments_forall'])) + { + $template->assign_block_vars('comments.add_comment', array()); + // display author field if the user is not logged in + if (!$user['is_the_guest']) + { + $template->assign_block_vars( + 'comments.add_comment.author_known', + array('KNOWN_AUTHOR'=>$user['username']) + ); + } + else + { + $template->assign_block_vars( + 'comments.add_comment.author_field', array() + ); + } + } +} + +?> \ No newline at end of file -- cgit v1.2.3