source: trunk/include/picture_comment.inc.php @ 2299

Last change on this file since 2299 was 2299, checked in by plg, 16 years ago

Bug fixed: as rvelices notified me by email, my header replacement script was
bugged (r2297 was repeating new and old header).

By the way, I've also removed the replacement keywords. We were using them
because it was a common usage with CVS but it is advised not to use them with
Subversion. Personnaly, it is a problem when I search differences between 2
Piwigo installations outside Subversion.

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 5.4 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Piwigo - a PHP based picture gallery                                  |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2008      Piwigo Team                  http://piwigo.org |
6// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
7// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
8// +-----------------------------------------------------------------------+
9// | This program is free software; you can redistribute it and/or modify  |
10// | it under the terms of the GNU General Public License as published by  |
11// | the Free Software Foundation                                          |
12// |                                                                       |
13// | This program is distributed in the hope that it will be useful, but   |
14// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
15// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
16// | General Public License for more details.                              |
17// |                                                                       |
18// | You should have received a copy of the GNU General Public License     |
19// | along with this program; if not, write to the Free Software           |
20// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
21// | USA.                                                                  |
22// +-----------------------------------------------------------------------+
23
24/**
25 * This file is included by the picture page to manage user comments
26 *
27 */
28
29// the picture is commentable if it belongs at least to one category which
30// is commentable
31$page['show_comments'] = false;
32foreach ($related_categories as $category)
33{
34  if ($category['commentable'] == 'true')
35  {
36    $page['show_comments'] = true;
37    break;
38  }
39}
40
41if ( $page['show_comments'] and isset( $_POST['content'] ) )
42{
43  if ( is_a_guest() and !$conf['comments_forall'] )
44  {
45    die ('Session expired');
46  }
47
48  $comm = array(
49    'author' => trim( stripslashes(@$_POST['author']) ),
50    'content' => trim( stripslashes($_POST['content']) ),
51    'image_id' => $page['image_id'],
52   );
53
54  include_once(PHPWG_ROOT_PATH.'include/functions_comment.inc.php');
55
56  $comment_action = insert_user_comment($comm, @$_POST['key'], $infos );
57
58  switch ($comment_action)
59  {
60    case 'moderate':
61      array_push( $infos, l10n('comment_to_validate') );
62    case 'validate':
63      array_push( $infos, l10n('comment_added'));
64      break;
65    case 'reject':
66      set_status_header(403);
67      array_push($infos, l10n('comment_not_added') );
68      break;
69    default:
70      trigger_error('Invalid comment action '.$comment_action, E_USER_WARNING);
71  }
72
73  $template->assign(
74      ($comment_action=='reject') ? 'errors' : 'infos',
75      $infos
76    );
77
78  // allow plugins to notify what's going on
79  trigger_action( 'user_comment_insertion',
80      array_merge($comm, array('action'=>$comment_action) )
81    );
82}
83elseif ( isset($_POST['content']) )
84{
85  set_status_header(403);
86  die('ugly spammer');
87}
88
89if ($page['show_comments'])
90{
91  // number of comment for this picture
92  $query = 'SELECT COUNT(*) AS nb_comments';
93  $query.= ' FROM '.COMMENTS_TABLE.' WHERE image_id = '.$page['image_id'];
94  $query.= " AND validated = 'true'";
95  $query.= ';';
96  $row = mysql_fetch_array( pwg_query( $query ) );
97
98  // navigation bar creation
99  if (!isset($page['start']))
100  {
101    $page['start'] = 0;
102  }
103
104  $navigation_bar = create_navigation_bar(
105    duplicate_picture_url(array(), array('start')),
106    $row['nb_comments'],
107    $page['start'],
108    $conf['nb_comment_page'],
109    true // We want a clean URL
110    );
111
112  $template->assign(
113    array(
114      'COMMENT_COUNT' => $row['nb_comments'],
115      'COMMENT_NAV_BAR' => $navigation_bar,
116      )
117    );
118
119  if ($row['nb_comments'] > 0)
120  {
121    $query = '
122SELECT id,author,date,image_id,content
123  FROM '.COMMENTS_TABLE.'
124  WHERE image_id = '.$page['image_id'].'
125    AND validated = \'true\'
126  ORDER BY date ASC
127  LIMIT '.$page['start'].', '.$conf['nb_comment_page'].'
128;';
129    $result = pwg_query( $query );
130
131    while ($row = mysql_fetch_array($result))
132    {
133      $tpl_comment = 
134        array(
135          'AUTHOR' => trigger_event('render_comment_author',
136            empty($row['author'])
137            ? l10n('guest')
138            : $row['author']),
139
140          'DATE' => format_date(
141            $row['date'],
142            'mysql_datetime',
143            true),
144
145          'CONTENT' => trigger_event('render_comment_content',$row['content']),
146        );
147
148      if (is_admin())
149      {
150        $tpl_comment['U_DELETE'] =
151            add_url_params(
152                  $url_self,
153                  array(
154                    'action'=>'delete_comment',
155                    'comment_to_delete'=>$row['id']
156                  )
157              );
158      }
159      $template->append('comments', $tpl_comment);
160    }
161  }
162
163  if (!is_a_guest()
164      or (is_a_guest() and $conf['comments_forall']))
165  {
166    include_once(PHPWG_ROOT_PATH.'include/functions_comment.inc.php');
167    $key = get_comment_post_key($page['image_id']);
168    $content = '';
169    if ('reject'===@$comment_action)
170    {
171      $content = htmlspecialchars($comm['content']);
172    }
173    $template->assign('comment_add',
174        array(
175          'F_ACTION' => $url_self,
176          'KEY' => $key,
177          'CONTENT' => $content,
178          'SHOW_AUTHOR' => !is_classic_user()
179        ));
180  }
181}
182
183?>
Note: See TracBrowser for help on using the repository browser.