6 |
kaklik |
1 |
<?php
|
|
|
2 |
// +-----------------------------------------------------------------------+
|
|
|
3 |
// | PhpWebGallery - a PHP based picture gallery |
|
|
|
4 |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
|
|
5 |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
|
|
|
6 |
// +-----------------------------------------------------------------------+
|
|
|
7 |
// | branch : BSF (Best So Far)
|
|
|
8 |
// | file : $RCSfile: comments.php,v $
|
|
|
9 |
// | last update : $Date: 2005/01/23 15:27:20 $
|
|
|
10 |
// | last modifier : $Author: plg $
|
|
|
11 |
// | revision : $Revision: 1.23 $
|
|
|
12 |
// +-----------------------------------------------------------------------+
|
|
|
13 |
// | This program is free software; you can redistribute it and/or modify |
|
|
|
14 |
// | it under the terms of the GNU General Public License as published by |
|
|
|
15 |
// | the Free Software Foundation |
|
|
|
16 |
// | |
|
|
|
17 |
// | This program is distributed in the hope that it will be useful, but |
|
|
|
18 |
// | WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
|
19 |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
|
|
20 |
// | General Public License for more details. |
|
|
|
21 |
// | |
|
|
|
22 |
// | You should have received a copy of the GNU General Public License |
|
|
|
23 |
// | along with this program; if not, write to the Free Software |
|
|
|
24 |
// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
|
|
|
25 |
// | USA. |
|
|
|
26 |
// +-----------------------------------------------------------------------+
|
|
|
27 |
|
|
|
28 |
// +-----------------------------------------------------------------------+
|
|
|
29 |
// | initialization |
|
|
|
30 |
// +-----------------------------------------------------------------------+
|
|
|
31 |
if (!defined('IN_ADMIN'))
|
|
|
32 |
{
|
|
|
33 |
define('PHPWG_ROOT_PATH','./');
|
|
|
34 |
include_once(PHPWG_ROOT_PATH.'include/common.inc.php');
|
|
|
35 |
}
|
|
|
36 |
|
|
|
37 |
if (isset($_GET['last_days']))
|
|
|
38 |
{
|
|
|
39 |
define('MAX_DAYS', $_GET['last_days']);
|
|
|
40 |
}
|
|
|
41 |
else
|
|
|
42 |
{
|
|
|
43 |
define('MAX_DAYS', 0);
|
|
|
44 |
}
|
|
|
45 |
$array_cat_names = array();
|
|
|
46 |
// +-----------------------------------------------------------------------+
|
|
|
47 |
// | comments management |
|
|
|
48 |
// +-----------------------------------------------------------------------+
|
|
|
49 |
// comments deletion
|
|
|
50 |
if (isset($_POST['delete']) and count($_POST['comment_id']) > 0)
|
|
|
51 |
{
|
|
|
52 |
$query = '
|
|
|
53 |
DELETE FROM '.COMMENTS_TABLE.'
|
|
|
54 |
WHERE id IN ('.implode(',', $_POST['comment_id']).')
|
|
|
55 |
;';
|
|
|
56 |
pwg_query($query);
|
|
|
57 |
}
|
|
|
58 |
// comments validation
|
|
|
59 |
if (isset($_POST['validate']) and count($_POST['comment_id']) > 0)
|
|
|
60 |
{
|
|
|
61 |
$query = '
|
|
|
62 |
UPDATE '.COMMENTS_TABLE.'
|
|
|
63 |
SET validated = \'true\'
|
|
|
64 |
WHERE id IN ('.implode(',', $_POST['comment_id']).')
|
|
|
65 |
;';
|
|
|
66 |
pwg_query($query);
|
|
|
67 |
}
|
|
|
68 |
// +-----------------------------------------------------------------------+
|
|
|
69 |
// | page header and options |
|
|
|
70 |
// +-----------------------------------------------------------------------+
|
|
|
71 |
if (!defined('IN_ADMIN'))
|
|
|
72 |
{
|
|
|
73 |
$title= $lang['title_comments'];
|
|
|
74 |
include(PHPWG_ROOT_PATH.'include/page_header.php');
|
|
|
75 |
}
|
|
|
76 |
|
|
|
77 |
$template->set_filenames(array('comments'=>'comments.tpl'));
|
|
|
78 |
$template->assign_vars(
|
|
|
79 |
array(
|
|
|
80 |
'L_COMMENT_TITLE' => $title,
|
|
|
81 |
'L_COMMENT_STATS' => $lang['stats_last_days'],
|
|
|
82 |
'L_COMMENT_RETURN' => $lang['home'],
|
|
|
83 |
'L_COMMENT_RETURN_HINT' => $lang['home_hint'],
|
|
|
84 |
'L_DELETE' =>$lang['delete'],
|
|
|
85 |
'L_VALIDATE'=>$lang['submit'],
|
|
|
86 |
|
|
|
87 |
'U_HOME' => add_session_id(PHPWG_ROOT_PATH.'category.php')
|
|
|
88 |
)
|
|
|
89 |
);
|
|
|
90 |
|
|
|
91 |
foreach ($conf['last_days'] as $option)
|
|
|
92 |
{
|
|
|
93 |
$url = $_SERVER['PHP_SELF'].'?last_days='.($option - 1);
|
|
|
94 |
if (defined('IN_ADMIN'))
|
|
|
95 |
{
|
|
|
96 |
$url.= '&page=comments';
|
|
|
97 |
}
|
|
|
98 |
$template->assign_block_vars(
|
|
|
99 |
'last_day_option',
|
|
|
100 |
array(
|
|
|
101 |
'OPTION'=>$option,
|
|
|
102 |
'T_STYLE'=>(($option == MAX_DAYS + 1)?'text-decoration:underline;':''),
|
|
|
103 |
'U_OPTION'=>add_session_id($url)
|
|
|
104 |
)
|
|
|
105 |
);
|
|
|
106 |
}
|
|
|
107 |
// +-----------------------------------------------------------------------+
|
|
|
108 |
// | last comments display |
|
|
|
109 |
// +-----------------------------------------------------------------------+
|
|
|
110 |
// 1. retrieving picture ids which have comments recently added
|
|
|
111 |
$maxdate = date('Y-m-d', strtotime('-'.MAX_DAYS.' day'));
|
|
|
112 |
|
|
|
113 |
$query = '
|
|
|
114 |
SELECT DISTINCT(ic.image_id) AS image_id,ic.category_id, uppercats
|
|
|
115 |
FROM '.COMMENTS_TABLE.' AS c, '.IMAGE_CATEGORY_TABLE.' AS ic
|
|
|
116 |
, '.CATEGORIES_TABLE.' AS cat
|
|
|
117 |
WHERE c.image_id = ic.image_id
|
|
|
118 |
AND ic.category_id = cat.id
|
|
|
119 |
AND date >= \''.$maxdate.'\'';
|
|
|
120 |
if ($user['status'] != 'admin')
|
|
|
121 |
{
|
|
|
122 |
$query.= "
|
|
|
123 |
AND validated = 'true'";
|
|
|
124 |
// we must not show pictures of a forbidden category
|
|
|
125 |
if ($user['forbidden_categories'] != '')
|
|
|
126 |
{
|
|
|
127 |
$query.= '
|
|
|
128 |
AND category_id NOT IN ('.$user['forbidden_categories'].')';
|
|
|
129 |
}
|
|
|
130 |
}
|
|
|
131 |
$query.= '
|
|
|
132 |
GROUP BY ic.image_id
|
|
|
133 |
ORDER BY ic.image_id DESC
|
|
|
134 |
;';
|
|
|
135 |
$result = pwg_query($query);
|
|
|
136 |
if ($user['status'] == 'admin')
|
|
|
137 |
{
|
|
|
138 |
$template->assign_block_vars('validation', array());
|
|
|
139 |
}
|
|
|
140 |
while ($row = mysql_fetch_array($result))
|
|
|
141 |
{
|
|
|
142 |
$category_id = $row['category_id'];
|
|
|
143 |
|
|
|
144 |
// for each picture, getting informations for displaying thumbnail and
|
|
|
145 |
// link to the full size picture
|
|
|
146 |
$query = '
|
|
|
147 |
SELECT name,file,storage_category_id as cat_id,tn_ext,path
|
|
|
148 |
FROM '.IMAGES_TABLE.'
|
|
|
149 |
WHERE id = '.$row['image_id'].'
|
|
|
150 |
;';
|
|
|
151 |
$subresult = pwg_query($query);
|
|
|
152 |
$subrow = mysql_fetch_array($subresult);
|
|
|
153 |
|
|
|
154 |
// name of the picture
|
|
|
155 |
$name = get_cat_display_name_cache($row['uppercats'], '', false);
|
|
|
156 |
$name.= $conf['level_separator'];
|
|
|
157 |
if (!empty($subrow['name']))
|
|
|
158 |
{
|
|
|
159 |
$name.= $subrow['name'];
|
|
|
160 |
}
|
|
|
161 |
else
|
|
|
162 |
{
|
|
|
163 |
$name.= str_replace('_',' ',get_filename_wo_extension($subrow['file']));
|
|
|
164 |
}
|
|
|
165 |
|
|
|
166 |
// source of the thumbnail picture
|
|
|
167 |
$thumbnail_src = get_thumbnail_src($subrow['path'], @$subrow['tn_ext']);
|
|
|
168 |
// link to the full size picture
|
|
|
169 |
$url = PHPWG_ROOT_PATH.'picture.php?cat='.$category_id;
|
|
|
170 |
$url.= '&image_id='.$row['image_id'];
|
|
|
171 |
|
|
|
172 |
$template->assign_block_vars(
|
|
|
173 |
'picture',
|
|
|
174 |
array(
|
|
|
175 |
'TITLE_IMG'=>$name,
|
|
|
176 |
'I_THUMB'=>$thumbnail_src,
|
|
|
177 |
'U_THUMB'=>add_session_id($url)
|
|
|
178 |
));
|
|
|
179 |
|
|
|
180 |
// for each picture, retrieving all comments
|
|
|
181 |
$query = '
|
|
|
182 |
SELECT *
|
|
|
183 |
FROM '.COMMENTS_TABLE.'
|
|
|
184 |
WHERE image_id = '.$row['image_id'].'
|
|
|
185 |
AND date >= \''.$maxdate.'\'';
|
|
|
186 |
if ($user['status'] != 'admin')
|
|
|
187 |
{
|
|
|
188 |
$query.= '
|
|
|
189 |
AND validated = \'true\'';
|
|
|
190 |
}
|
|
|
191 |
$query.= '
|
|
|
192 |
ORDER BY date DESC
|
|
|
193 |
;';
|
|
|
194 |
$handleresult = pwg_query($query);
|
|
|
195 |
while ($subrow = mysql_fetch_array($handleresult))
|
|
|
196 |
{
|
|
|
197 |
$author = $subrow['author'];
|
|
|
198 |
if (empty($subrow['author']))
|
|
|
199 |
{
|
|
|
200 |
$author = $lang['guest'];
|
|
|
201 |
}
|
|
|
202 |
|
|
|
203 |
$template->assign_block_vars(
|
|
|
204 |
'picture.comment',
|
|
|
205 |
array(
|
|
|
206 |
'COMMENT_AUTHOR'=>$author,
|
|
|
207 |
'COMMENT_DATE'=>format_date($subrow['date'],'mysql_datetime',true),
|
|
|
208 |
'COMMENT'=>parse_comment_content($subrow['content']),
|
|
|
209 |
));
|
|
|
210 |
|
|
|
211 |
if ($user['status'] == 'admin')
|
|
|
212 |
{
|
|
|
213 |
$template->assign_block_vars(
|
|
|
214 |
'picture.comment.validation',
|
|
|
215 |
array(
|
|
|
216 |
'ID'=> $subrow['id'],
|
|
|
217 |
'CHECKED'=>($subrow['validated']=='false')?'checked="checked"': ''
|
|
|
218 |
));
|
|
|
219 |
}
|
|
|
220 |
}
|
|
|
221 |
}
|
|
|
222 |
// +-----------------------------------------------------------------------+
|
|
|
223 |
// | html code display |
|
|
|
224 |
// +-----------------------------------------------------------------------+
|
|
|
225 |
if (defined('IN_ADMIN'))
|
|
|
226 |
{
|
|
|
227 |
$template->assign_var_from_handle('ADMIN_CONTENT', 'comments');
|
|
|
228 |
}
|
|
|
229 |
else
|
|
|
230 |
{
|
|
|
231 |
$template->assign_block_vars('title',array());
|
|
|
232 |
$template->parse('comments');
|
|
|
233 |
include(PHPWG_ROOT_PATH.'include/page_tail.php');
|
|
|
234 |
}
|
|
|
235 |
?>
|