ryxeo-webphotoalbum-git / www / index.php @ 4fcec884
Historique | Voir | Annoter | Télécharger (13,1 ko)
1 | 67466a8d | Eric Seigne | <?php
|
---|---|---|---|
2 | 4fcec884 | Eric Seigne | // uncomment this to check for uninitialized variables etc.:
|
3 | // error_reporting (E_ALL);
|
||
4 | 67466a8d | Eric Seigne | |
5 | 4fcec884 | Eric Seigne | //language support
|
6 | 67466a8d | Eric Seigne | require_once ("lib/lib.l10n.php"); |
7 | require_once("inc/config.inc.php"); |
||
8 | require_once("inc/www.class.inc.php"); |
||
9 | require_once("inc/funkce.inc.php"); |
||
10 | //session_name("navstevnik");
|
||
11 | //session_register("page");
|
||
12 | |||
13 | 4fcec884 | Eric Seigne | //set the language translation
|
14 | 67466a8d | Eric Seigne | l10n::set("$root/l10n/".$sclang."/main.lang"); |
15 | l10n::set("$root/l10n/".$sclang."/date.lang"); |
||
16 | |||
17 | 4fcec884 | Eric Seigne | // always get sorted directory entries
|
18 | 67466a8d | Eric Seigne | $adr = new SortDir("$gallery_dir"); |
19 | |||
20 | 4fcec884 | Eric Seigne | // get variables passed in from the URL:
|
21 | 67466a8d | Eric Seigne | $galerie=''; |
22 | if (isset($_GET['galerie'])) $galerie=$_GET["galerie"]; |
||
23 | if (isset($_GET['gallery'])) $galerie=$_GET["gallery"]; |
||
24 | $galerie = preg_replace('/\//', '', $galerie); |
||
25 | if (isset($_GET["thumbsize"])) $thumbsize=$_GET["thumbsize"]; |
||
26 | $snimek = 0; |
||
27 | if (isset($_GET["snimek"])) $snimek=$_GET["snimek"]; |
||
28 | if (isset($_GET["photo"])) $snimek=$_GET["photo"]; |
||
29 | $snimek = intval($snimek); |
||
30 | $y=''; |
||
31 | if (isset($_GET['y'])) $y=$_GET["y"]; |
||
32 | $cmnt=''; |
||
33 | if (isset($_GET["cmnt"])) $cmnt=$_GET["cmnt"]; |
||
34 | $show_thumbs=''; |
||
35 | if (isset($_GET["show_thumbs"])) $show_thumbs=$_GET["show_thumbs"]; |
||
36 | |||
37 | $page = new C_www; |
||
38 | //default colors
|
||
39 | |||
40 | if (!is_dir("$gallery_dir/$galerie/thumbs")) { |
||
41 | $galerie = ""; |
||
42 | 4fcec884 | Eric Seigne | } |
43 | 67466a8d | Eric Seigne | |
44 | //read interesting stuff from info.txt
|
||
45 | if ($galerie) { |
||
46 | 4fcec884 | Eric Seigne | readInfo("$root/$gallery_dir/$galerie/info.txt", $galerie); |
47 | //check for restricted access
|
||
48 | if ($galerielogin[$galerie]) { |
||
49 | access_check($galerielogin[$galerie],$galeriepw[$galerie],$galerie); |
||
50 | } |
||
51 | } |
||
52 | 67466a8d | Eric Seigne | |
53 | $page->process_comment_form();
|
||
54 | |||
55 | //START RENDERING
|
||
56 | |||
57 | //ryxeo
|
||
58 | if($_GET['slideshow'] == 'play') |
||
59 | $slideshow = true; |
||
60 | 4fcec884 | Eric Seigne | else
|
61 | $slideshow = false; |
||
62 | 67466a8d | Eric Seigne | |
63 | if($_GET['directdownload'] == "true") { |
||
64 | require_once("$root/inc/photo.class.inc.php"); |
||
65 | $picture = new C_photo($file, $snimek); |
||
66 | // print_r($picture);
|
||
67 | header('Content-Type: ' . $picture->mime); |
||
68 | header('Content-Transfer-Encoding: binary'); |
||
69 | header('Expires: 0'); |
||
70 | header('Cache-Control: must-revalidate'); |
||
71 | header('Pragma: public'); |
||
72 | header('Content-Length: ' . filesize($picture->preview)); |
||
73 | ob_clean(); |
||
74 | flush();
|
||
75 | readfile($picture->preview); |
||
76 | //print_r($picture);
|
||
77 | exit;
|
||
78 | 4fcec884 | Eric Seigne | } |
79 | 67466a8d | Eric Seigne | |
80 | $page->header("Photos"); |
||
81 | require("inc/header.inc.php"); |
||
82 | |||
83 | // folder > tree
|
||
84 | //print "<div class=\"navigation\"><a href=\"$ThisScript\">" . $scnamegallery . "</a>";
|
||
85 | print "<div class=\"navigation\"><a href=\"./\">" . $scnamegallery . "</a>"; |
||
86 | |||
87 | 4fcec884 | Eric Seigne | //############################
|
88 | // Overall Gallery Index
|
||
89 | //############################
|
||
90 | 67466a8d | Eric Seigne | if (!$galerie) { |
91 | 4fcec884 | Eric Seigne | // finish off navigation bar
|
92 | print "</div>\n\n<!-- listing galleries-->\n\n"; |
||
93 | // I've nuked date.txt to replace it with a more generic info.txt
|
||
94 | // It optionally supplies i18n name, camera model, author and date
|
||
95 | // TODO: imgconv script support
|
||
96 | while ($file = $adr->Read()) { |
||
97 | // checking for inc is only really needed when gallery_dir == $root
|
||
98 | // hopefully not many galleries will be named inc ;)
|
||
99 | if (is_dir("$gallery_dir/$file") && !ereg("\.", $file) && $file!="inc") { |
||
100 | // Use date file for gallery date if avaliable
|
||
101 | // info.txt format described in README
|
||
102 | readInfo("$root/$gallery_dir/$file/info.txt", $file); |
||
103 | |||
104 | } |
||
105 | } |
||
106 | |||
107 | if (!isset($galeriemonth)) $galeriemonth = array(); |
||
108 | if (!isset($galerieday)) $galerieday = array(); |
||
109 | //sort within month depending on $sortinmonth
|
||
110 | if ($sortinmonth) { |
||
111 | //alphabetically
|
||
112 | ksort($galeriemonth); |
||
113 | reset($galeriemonth); |
||
114 | } else {//by date |
||
115 | arsort($galerieday); |
||
116 | reset($galerieday); |
||
117 | } |
||
118 | |||
119 | |||
120 | $thisyear = 0; |
||
121 | if (!$yearto) $yearto = date("Y"); |
||
122 | for ($i = $yearto; $i >= $yearsince; $i--) { |
||
123 | for ($thismonth=12; $thismonth>0; $thismonth--) { // go year by year, month by month |
||
124 | // down
|
||
125 | foreach ($galerieday as $foldername => $day) { //using $galerieday (for when sorted) |
||
126 | if ($galeriemonth["$foldername"] == $thismonth && |
||
127 | $galerieyear["$foldername"] == $i) { //such Y/M exists |
||
128 | |||
129 | $galerieyearordered["$foldername"]=$galerieyear["$foldername"]; |
||
130 | $galeriemonthordered["$foldername"]=$galeriemonth["$foldername"]; |
||
131 | } |
||
132 | 67466a8d | Eric Seigne | } |
133 | 4fcec884 | Eric Seigne | } |
134 | } |
||
135 | |||
136 | |||
137 | $months = array(__('January'), __('February'), __('March'), __('April'), __('May'), __('June'), __('July'), __('August'), |
||
138 | __('September'), __('October'), __('November'), __('December')); |
||
139 | $one_out = false; |
||
140 | foreach ($galerieyearordered as $foldername => $year) { |
||
141 | $one_out = true; |
||
142 | if (@$thisyear!=$year) { //if the year is not equal to the current year |
||
143 | //This is the first year
|
||
144 | if (@$thisyear) { print " </div>\n</div>\n";}// end last year if this is |
||
145 | // not the first one
|
||
146 | //This is a new year
|
||
147 | unset($thismonth); |
||
148 | print "<div class=\"year\"><h3>$year</h3>\n"; |
||
149 | print ""; |
||
150 | } |
||
151 | $month=$galeriemonth["$foldername"]; |
||
152 | // now months
|
||
153 | if (@$thismonth!=$month) { |
||
154 | //first one
|
||
155 | if (@$thismonth) { print " </div>\n"; } // end of last month if |
||
156 | // this is not the first one
|
||
157 | //new month
|
||
158 | $monthindex = $month - 1; |
||
159 | $monthname = $months[$monthindex]; |
||
160 | print " <div class=\"month\"><h4>$monthname</h4>\n"; |
||
161 | } |
||
162 | //galleries within month
|
||
163 | if ($galerielogin[$foldername]) { |
||
164 | print " <p class=\"restricted\"><a "; |
||
165 | } else {
|
||
166 | print " <p><a "; |
||
167 | } |
||
168 | if (@$galeriename[$foldername]) { |
||
169 | print " href=\"$ThisScript?galerie=$foldername\">"; |
||
170 | print $galeriename[$foldername]; |
||
171 | print "</a>"; |
||
172 | } else {
|
||
173 | print " href=\"$ThisScript?galerie=$foldername\">$foldername</a>"; |
||
174 | } |
||
175 | if (@$galeriedesc[$foldername]) { |
||
176 | print "<span class=\"desc\">" . $galeriedesc[$foldername]; |
||
177 | print "</span>\n"; |
||
178 | } |
||
179 | if (@$galerieauthor[$foldername]) { |
||
180 | print "<span class=\"author\">by " . $galerieauthor[$foldername]; |
||
181 | print "</span>\n"; |
||
182 | } |
||
183 | if (@$galerieday[$foldername]) { |
||
184 | print "<span class=\"date\">"; |
||
185 | print "$monthname " . $galerieday[$foldername]; |
||
186 | print "</span>\n"; |
||
187 | } |
||
188 | print "</p>\n"; |
||
189 | $thisyear=$year; |
||
190 | $thismonth=$month; |
||
191 | } |
||
192 | if ($one_out) print (" </div>\n</div>\n\n"); |
||
193 | 67466a8d | Eric Seigne | |
194 | 4fcec884 | Eric Seigne | //#############################
|
195 | // Individual Gallery Index #
|
||
196 | //#############################
|
||
197 | } elseif (!$snimek) { |
||
198 | 67466a8d | Eric Seigne | |
199 | 4fcec884 | Eric Seigne | // finish off navigation header
|
200 | 67466a8d | Eric Seigne | |
201 | print "\n > "; |
||
202 | 4fcec884 | Eric Seigne | if ($galeriename[$galerie]) { |
203 | print $galeriename[$galerie]; |
||
204 | } else {
|
||
205 | print $galerie; |
||
206 | } |
||
207 | print "</div>\n\n"; |
||
208 | 67466a8d | Eric Seigne | |
209 | 4fcec884 | Eric Seigne | //thumbnails
|
210 | print "<p class=\"bigthumbnails\">\n"; |
||
211 | 67466a8d | Eric Seigne | $path = "$gallery_dir/$galerie/thumbs"; |
212 | $imgfiles = new SortDir($path); |
||
213 | check($galerie); // check for nasty input |
||
214 | while ($file = $imgfiles->read()) { |
||
215 | 4fcec884 | Eric Seigne | if (is_file("$path/$file") && eregi("^img-([0-9]+)\.(png|jpe?g)", $file, $x)) { |
216 | 67466a8d | Eric Seigne | |
217 | 4fcec884 | Eric Seigne | $thumb = "$gallery_dir/$galerie/thumbs/img-${x[1]}.${x[2]}"; |
218 | $imgsize = getimagesize("$root/$thumb"); |
||
219 | //check for portraits
|
||
220 | $portrait = "false"; |
||
221 | $class = ""; |
||
222 | if($imgsize[0]<100) { |
||
223 | //portraits need a special class for styling
|
||
224 | $class = "portrait"; |
||
225 | } |
||
226 | //check for number of comments per photo
|
||
227 | if ($comments) { //there probably won't be user comments if it's off |
||
228 | $NumOfComments = 0; |
||
229 | if (file_exists("$gallery_dir/$galerie/comments/user_${x[1]}.txt")) { |
||
230 | if ($class) $class .= " "; |
||
231 | $class .= "hascomments"; |
||
232 | //now let's count'em
|
||
233 | $fh = fopen("$gallery_dir/$galerie/comments/user_${x[1]}.txt","r"); |
||
234 | while (!feof($fh)) { |
||
235 | $line = fgets($fh); |
||
236 | if (eregi("commententry",$line)) $NumOfComments++; |
||
237 | } |
||
238 | fclose($fh); |
||
239 | } |
||
240 | if ($NumOfComments==1) { |
||
241 | $NumOfComments = $NumOfComments . " " . __('Comment'); |
||
242 | } else {
|
||
243 | $NumOfComments = $NumOfComments . " " . __('Comments'); |
||
244 | } |
||
245 | } |
||
246 | if (file_exists("$gallery_dir/$galerie/comments/${x[1]}.txt") && |
||
247 | $title = file_get_contents("$gallery_dir/$galerie/comments/${x[1]}.txt")) { |
||
248 | $title = ereg_replace("(\"|\')","",trim(strip_tags($title))); |
||
249 | $title = ereg_replace("(.{77}).*","\\1",$title); |
||
250 | } else
|
||
251 | $title = "Photo ${x[1]}"; |
||
252 | |||
253 | print " <a href=\"$ThisScript?galerie=$galerie&photo=${x[1]}\""; |
||
254 | print " title=\"$title, $NumOfComments\""; |
||
255 | if ($class) print " class=\"$class\""; |
||
256 | print ">"; |
||
257 | print "<img "; |
||
258 | if (isset($thumbsize)) { |
||
259 | print "width=\"120\" height=\"80\" "; |
||
260 | } else {
|
||
261 | // scale portraits to 80 height
|
||
262 | if ($portrait) { |
||
263 | //portrait
|
||
264 | print "width=\""; |
||
265 | $scaled = round($imgsize[0] / 1.5); |
||
266 | print $scaled; |
||
267 | print "\" height=\"${imgsize[0]}\""; |
||
268 | } else {
|
||
269 | //landscape
|
||
270 | print $imgsize[3]; |
||
271 | } |
||
272 | } |
||
273 | print " src=\"$thumb\" "; |
||
274 | print "alt=\"photo No. ${x[1]}\" />"; |
||
275 | print "</a>\n"; |
||
276 | } |
||
277 | 67466a8d | Eric Seigne | } |
278 | print "</p>\n"; |
||
279 | |||
280 | 4fcec884 | Eric Seigne | //info
|
281 | print "<div id=\"info\">\n"; |
||
282 | if ($galeriedesc[$galerie]) { |
||
283 | print "<p>"; |
||
284 | print "<span class=\"value\">"; |
||
285 | print $galeriedesc[$galerie] . "</span></p>\n"; |
||
286 | } |
||
287 | if ($galerieauthor[$galerie]) { |
||
288 | print "<p><span class=\"key\">Author: </span>"; |
||
289 | print "<span class=\"value\">"; |
||
290 | print $galerieauthor[$galerie] . "</span></p>\n"; |
||
291 | } |
||
292 | print "</div>\n"; |
||
293 | 67466a8d | Eric Seigne | |
294 | //and links to archived images:
|
||
295 | print "\n<p class=\"archives\">\n"; |
||
296 | if (file_exists("$gallery_dir/$galerie/zip/mq.zip")) { |
||
297 | 4fcec884 | Eric Seigne | print "[ <a href=\"$gallery_dir/$galerie/zip/mq.zip\">" . __('zipped MQ images') . "</a> ] "; |
298 | 67466a8d | Eric Seigne | } |
299 | if (file_exists("$gallery_dir/$galerie/zip/mq.tar.bz2")) { |
||
300 | 4fcec884 | Eric Seigne | print "[ <a href=\"$gallery_dir/$galerie/zip/mq.tar.bz2\">" . __('MQ images tarball') . "</a> ] "; |
301 | 67466a8d | Eric Seigne | } |
302 | if (file_exists("$gallery_dir/$galerie/zip/hq.zip")) { |
||
303 | 4fcec884 | Eric Seigne | print "[ <a href=\"$gallery_dir/$galerie/zip/hq.zip\">" . __('zipped HQ images') . "</a> ]"; |
304 | 67466a8d | Eric Seigne | } |
305 | if (file_exists("$gallery_dir/$galerie/zip/hq.tar.bz2")) { |
||
306 | 4fcec884 | Eric Seigne | print "[ <a href=\"$gallery_dir/$galerie/zip/hq.tar.bz2\">" . __('HQ images tarball') . "</a> ]"; |
307 | 67466a8d | Eric Seigne | } |
308 | print "</p>"; |
||
309 | |||
310 | 4fcec884 | Eric Seigne | //######################
|
311 | // Individual Image
|
||
312 | //######################
|
||
313 | } else { //low-res image |
||
314 | // finish off header
|
||
315 | print "\n > <a href=\"$ThisScript?galerie=$galerie\">"; |
||
316 | if ($galeriename[$galerie]) { |
||
317 | print $galeriename[$galerie]; |
||
318 | } else {
|
||
319 | print $galerie; |
||
320 | } |
||
321 | print "</a>\n > Photo"; |
||
322 | print " $snimek</div>"; |
||
323 | $path = "$gallery_dir/$galerie/thumbs"; |
||
324 | $imgfiles = new SortDir("$path"); |
||
325 | check($galerie);
|
||
326 | $path = "$gallery_dir/$galerie/lq"; |
||
327 | $file = "$path/img-$snimek.jpg"; |
||
328 | if (!file_exists($file)) { |
||
329 | print __('No such image'); |
||
330 | $page->footer();
|
||
331 | exit;
|
||
332 | } |
||
333 | 67466a8d | Eric Seigne | |
334 | 4fcec884 | Eric Seigne | if (!$picture) { //picture may have been created if commentform submitted |
335 | require_once("$root/inc/photo.class.inc.php"); |
||
336 | $picture = new C_photo($file, $snimek); |
||
337 | } |
||
338 | |||
339 | // mini thumbnail roll
|
||
340 | |||
341 | if ($show_thumbs) { |
||
342 | print "\n<!--mini thumbnail roll-->\n<div id=\"thumbs\" class=\"navigation\" style=\"visibility: hidden\"><ul class=\"thumbs noscript\" style=\"display:none\">"; |
||
343 | print "<a id=\"minus\" href=\"$ThisScript?galerie=$galerie&photo=$snimek"; |
||
344 | print "\">"; |
||
345 | print "</a>\n"; |
||
346 | print " : \n"; |
||
347 | while ($thumbfile = $imgfiles->read()) { |
||
348 | if ( eregi("^img-([0-9]+)\.(png|jpe?g)", |
||
349 | $thumbfile, $x)) { |
||
350 | $thumb = "$gallery_dir/$galerie/thumbs/img-${x[1]}.${x[2]}"; |
||
351 | print " <li><a class=\"thumb\" href=\"$ThisScript?galerie=$galerie&photo=${x[1]}&directdownload=true\""; |
||
352 | print " name=\"" . get_photo_title($galerie, $x[1]) . "\" title=\"" . get_photo_title($galerie, $x[1]) . "\">"; |
||
353 | print "</a></li> \n"; |
||
354 | 67466a8d | Eric Seigne | } |
355 | 4fcec884 | Eric Seigne | } |
356 | if (file_exists("$gallery_dir/$galerie/zip/hq.zip")) { |
||
357 | print "<a id=\"zip\" href=\"$gallery_dir/$galerie/zip/hq.zip\">"; |
||
358 | print "zip<span /></a>"; |
||
359 | } |
||
360 | if (file_exists("$gallery_dir/$galerie/zip/hq.tar.bz2")) { |
||
361 | print "<a id=\"zip\" href=\"$gallery_dir/$galerie/zip/hq.tar.bz2\">"; |
||
362 | print "zip<span /></a>"; |
||
363 | } |
||
364 | print "</ul></div>\n"; |
||
365 | } else {
|
||
366 | // show the popup button
|
||
367 | print "\n<!--mini thumbnail popup-->\n<div class=\"thumbroll\">"; |
||
368 | print "<a id=\"plus\" href=\"$ThisScript?galerie=$galerie&photo=$snimek"; |
||
369 | print "&show_thumbs=yes\""; |
||
370 | print " title=\"" . __('Show Thumbnail Navigation') . "\">"; |
||
371 | print "</a>\n"; |
||
372 | print "</div>\n"; |
||
373 | } |
||
374 | |||
375 | /* main image + thumbnail navigation (prev/next) */
|
||
376 | |||
377 | if($slideshow) { |
||
378 | print " |
||
379 | 67466a8d | Eric Seigne | <div id=\"gallery\" class=\"content\">
|
380 | <div class=\"slideshow-container\">
|
||
381 | <div id=\"loading\" class=\"loader\"></div>
|
||
382 | <div id=\"slideshow\" class=\"slideshow\" style=\"height:480;\"></div>
|
||
383 | </div>
|
||
384 | </div>\n";
|
||
385 | 4fcec884 | Eric Seigne | } |
386 | else {
|
||
387 | $picture->renderPreview();
|
||
388 | $page->navigation($galerie, $snimek, "prev"); |
||
389 | $page->navigation($galerie, $snimek, "next"); |
||
390 | } |
||
391 | print "</div>\n"; //end image div |
||
392 | |||
393 | |||
394 | if(!$slideshow) { |
||
395 | if (function_exists(exif_read_data)) require("$root/inc/exif.inc.php"); |
||
396 | /* Image comment
|
||
397 | really poor naming here, it is caption.
|
||
398 | */
|
||
399 | $picture->renderCaption();
|
||
400 | 67466a8d | Eric Seigne | |
401 | |||
402 | 4fcec884 | Eric Seigne | //show page counter
|
403 | if ($log_access) { |
||
404 | $picture->renderCounter();
|
||
405 | } |
||
406 | 67466a8d | Eric Seigne | |
407 | 4fcec884 | Eric Seigne | $picture->renderBigSize();
|
408 | 67466a8d | Eric Seigne | |
409 | 4fcec884 | Eric Seigne | $page->user_comments($picture->number); |
410 | $page->navigation($galerie, $snimek, null); |
||
411 | } |
||
412 | } |
||
413 | 67466a8d | Eric Seigne | |
414 | require("inc/footer.inc.php"); |
||
415 | |||
416 | |||
417 | if($slideshow) { |
||
418 | print " |
||
419 | <div id=\"controls\" class=\"controls\"></div>
|
||
420 | <script type=\"text/javascript\">
|
||
421 | $(document).ready(function() {
|
||
422 | $('#thumbs').galleriffic({
|
||
423 | autoStart: true,
|
||
424 | imageContainerSel: '#slideshow',
|
||
425 | renderNavControls: false,
|
||
426 | renderSSControls: false
|
||
427 | });
|
||
428 | });
|
||
429 | </script>\n";
|
||
430 | 4fcec884 | Eric Seigne | } |
431 | 67466a8d | Eric Seigne | |
432 | $page->footer();
|
||
433 | ?> |