Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

ryxeo-webphotoalbum-git / www / index.php @ 67466a8d

Historique | Voir | Annoter | Télécharger (13,4 ko)

1
<?php
2
# uncomment this to check for uninitialized variables etc.:
3
# error_reporting (E_ALL);
4

    
5
#language support
6
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
#set the language translation
14
l10n::set("$root/l10n/".$sclang."/main.lang");
15
l10n::set("$root/l10n/".$sclang."/date.lang");
16

    
17

    
18

    
19

    
20
# always get sorted directory entries
21
$adr = new SortDir("$gallery_dir");
22

    
23
# get variables passed in from the URL:
24
$galerie='';
25
if (isset($_GET['galerie'])) $galerie=$_GET["galerie"];
26
if (isset($_GET['gallery'])) $galerie=$_GET["gallery"];
27
$galerie = preg_replace('/\//', '', $galerie);
28
if (isset($_GET["thumbsize"])) $thumbsize=$_GET["thumbsize"];
29
$snimek = 0;
30
if (isset($_GET["snimek"])) $snimek=$_GET["snimek"];
31
if (isset($_GET["photo"])) $snimek=$_GET["photo"];
32
$snimek = intval($snimek);
33
$y='';
34
if (isset($_GET['y'])) $y=$_GET["y"];
35
$cmnt='';
36
if (isset($_GET["cmnt"])) $cmnt=$_GET["cmnt"];
37
$show_thumbs='';
38
if (isset($_GET["show_thumbs"])) $show_thumbs=$_GET["show_thumbs"];
39

    
40
$page = new C_www;
41
//default colors
42

    
43
if (!is_dir("$gallery_dir/$galerie/thumbs")) {
44
  $galerie = "";
45
}
46

    
47
//read interesting stuff from info.txt
48
if ($galerie) { 
49
        readInfo("$root/$gallery_dir/$galerie/info.txt", $galerie);
50
//check for restricted access
51
        if ($galerielogin[$galerie]) {
52
                         access_check($galerielogin[$galerie],$galeriepw[$galerie],$galerie);
53
        }
54
}
55

    
56
$page->process_comment_form();
57

    
58
//START RENDERING
59

    
60
//ryxeo
61
if($_GET['slideshow'] == 'play')
62
  $slideshow = true;
63
else
64
  $slideshow = false;
65

    
66
if($_GET['directdownload'] == "true") {
67
  require_once("$root/inc/photo.class.inc.php");
68
  $picture = new C_photo($file, $snimek);
69
  //  print_r($picture);
70
  header('Content-Type: ' . $picture->mime);
71
  header('Content-Transfer-Encoding: binary');
72
  header('Expires: 0');
73
  header('Cache-Control: must-revalidate');
74
  header('Pragma: public');
75
  header('Content-Length: ' . filesize($picture->preview));
76
  ob_clean();
77
  flush();
78
  readfile($picture->preview);
79
  //print_r($picture);
80
  exit;
81
}
82

    
83
$page->header("Photos");
84
require("inc/header.inc.php");
85

    
86
// folder > tree
87
//print "<div class=\"navigation\"><a href=\"$ThisScript\">" . $scnamegallery . "</a>";
88
print "<div class=\"navigation\"><a href=\"./\">" . $scnamegallery . "</a>";
89

    
90
#############################
91
#         Overall Gallery Index                #
92
#############################
93
if (!$galerie) {
94
   # finish off navigation bar
95
   print "</div>\n\n<!-- listing galleries-->\n\n";  
96
         # I've nuked date.txt to replace it with a more generic info.txt
97
   # It optionally supplies i18n name, camera model, author and date
98
         # TODO: imgconv script support
99
   while ($file = $adr->Read()) {
100
      // checking for inc is only really needed when gallery_dir == $root
101
      // hopefully not many galleries will be named inc ;)
102
      if (is_dir("$gallery_dir/$file") && !ereg("\.", $file) && $file!="inc") { 
103
         // Use date file for gallery date if avaliable
104
                                 // info.txt format described in README
105
         readInfo("$root/$gallery_dir/$file/info.txt", $file);
106
         
107
      }
108
   }
109

    
110
         if (!isset($galeriemonth)) $galeriemonth = array();
111
   if (!isset($galerieday)) $galerieday = array();
112
         //sort within month depending on $sortinmonth
113
         if ($sortinmonth) {
114
                 //alphabetically
115
                 ksort($galeriemonth);
116
                 reset($galeriemonth);
117
         } else {//by date
118
                 arsort($galerieday);
119
                 reset($galerieday);
120
         }
121

    
122

    
123
         $thisyear = 0;
124
         if (!$yearto) $yearto = date("Y");
125
   for ($i = $yearto; $i >= $yearsince; $i--) {
126
      for ($thismonth=12; $thismonth>0; $thismonth--) { // go year by year, month by month
127
                                                                                                                                                                                                                                // down
128
                                 foreach ($galerieday as $foldername => $day) { //using $galerieday (for when sorted)
129
                                                if ($galeriemonth["$foldername"] == $thismonth && 
130
                                                              $galerieyear["$foldername"] == $i) { //such Y/M exists
131

    
132
                                                                $galerieyearordered["$foldername"]=$galerieyear["$foldername"];
133
                                                                $galeriemonthordered["$foldername"]=$galeriemonth["$foldername"];
134
                                                }
135
                                 }
136
      }
137
   }
138

    
139

    
140
         $months = array(__('January'), __('February'), __('March'), __('April'), __('May'), __('June'), __('July'), __('August'),
141
         __('September'), __('October'), __('November'), __('December'));
142
         $one_out = false;
143
         foreach ($galerieyearordered as $foldername => $year) {
144
                  $one_out = true;
145
                        if (@$thisyear!=$year) { #if the year is not equal to the current year
146
                                 #This is the first year
147
                                 if (@$thisyear) { print "   </div>\n</div>\n";}// end last year if this is 
148
                                                                                                                                                                 // not the first one
149
                                 #This is a new year
150
                                 unset($thismonth);
151
                                 print "<div class=\"year\"><h3>$year</h3>\n";
152
                                 print "";
153
                        }
154
                        $month=$galeriemonth["$foldername"];
155
                        # now months
156
                        if (@$thismonth!=$month) {
157
                                 #first one
158
                                 if (@$thismonth) { print "   </div>\n"; } // end of last month if
159
                                                                                                                                                                                        // this is not the first one
160
                                 #new month
161
                                 $monthindex = $month - 1;
162
                                 $monthname = $months[$monthindex];
163
                                 print "   <div class=\"month\"><h4>$monthname</h4>\n";
164
                        }
165
                        #galleries within month        
166
                        if ($galerielogin[$foldername]) {
167
                                print "      <p class=\"restricted\"><a ";
168
                        } else {
169
                                print "      <p><a ";
170
                        }
171
                        if (@$galeriename[$foldername]) {
172
                                print " href=\"$ThisScript?galerie=$foldername\">";
173
                                print $galeriename[$foldername];
174
                                print "</a>";
175
                        } else {
176
                                print " href=\"$ThisScript?galerie=$foldername\">$foldername</a>";
177
                        }
178
                        if (@$galeriedesc[$foldername]) {
179
                                print "<span class=\"desc\">" . $galeriedesc[$foldername];
180
                                print "</span>\n";
181
                        }
182
                        if (@$galerieauthor[$foldername]) {
183
                                print "<span class=\"author\">by&nbsp;" . $galerieauthor[$foldername];
184
                                print "</span>\n";
185
                        }
186
                        if (@$galerieday[$foldername]) {
187
                                print "<span class=\"date\">";
188
                                print "$monthname&nbsp;" . $galerieday[$foldername];
189
                                print "</span>\n";
190
                        }
191
                        print "</p>\n";
192
                        $thisyear=$year;
193
                        $thismonth=$month;
194
         }
195
         if ($one_out) print ("   </div>\n</div>\n\n");
196
   
197
##############################
198
#  Individual Gallery Index  #
199
##############################
200
} elseif (!$snimek) {
201
         
202
   # finish off navigation header
203
         
204
   print "\n &gt; ";
205
         if ($galeriename[$galerie]) {
206
                 print $galeriename[$galerie];
207
         } else {
208
                 print $galerie;
209
         }
210
         print "</div>\n\n";
211

    
212
         //thumbnails
213
         print "<p class=\"bigthumbnails\">\n";
214
   $path = "$gallery_dir/$galerie/thumbs";
215
   $imgfiles = new SortDir($path);
216
   check($galerie); // check for nasty input
217
   while ($file = $imgfiles->read()) {
218
      if (is_file("$path/$file") && eregi("^img-([0-9]+)\.(png|jpe?g)", $file, $x)) {
219
                                                                  
220
         $thumb = "$gallery_dir/$galerie/thumbs/img-${x[1]}.${x[2]}";
221
         $imgsize = getimagesize("$root/$thumb");
222
                                 //check for portraits
223
                                 $portrait = "false";
224
                                 $class = "";
225
                                 if($imgsize[0]<100) {
226
                                         //portraits need a special class for styling
227
                                         $class = "portrait";
228
                                 }
229
                                 //check for number of comments per photo
230
                                 if ($comments) { //there probably won't be user comments if it's off
231
                                   $NumOfComments = 0;
232
                                         if (file_exists("$gallery_dir/$galerie/comments/user_${x[1]}.txt")) {
233
                                                        if ($class) $class .= " ";
234
                                                        $class .= "hascomments";
235
                                                        //now let's count'em
236
                                                        $fh = fopen("$gallery_dir/$galerie/comments/user_${x[1]}.txt","r");
237
                                                        while (!feof($fh)) {
238
                                                                $line = fgets($fh);
239
                                                                if (eregi("commententry",$line)) $NumOfComments++;
240
                                                        }
241
                                                        fclose($fh);
242
                                         }
243
                                         if ($NumOfComments==1) {
244
                                                 $NumOfComments = $NumOfComments . " " . __('Comment');
245
                                         } else {
246
                                                 $NumOfComments = $NumOfComments . " " . __('Comments');
247
                                         }
248
                                 }
249
         if (file_exists("$gallery_dir/$galerie/comments/${x[1]}.txt") &&
250
                   $title = file_get_contents("$gallery_dir/$galerie/comments/${x[1]}.txt")) {
251
             $title = ereg_replace("(\"|\')","",trim(strip_tags($title)));
252
             $title = ereg_replace("(.{77}).*","\\1",$title);
253
         } else 
254
           $title = "Photo ${x[1]}";
255

    
256
         print "   <a href=\"$ThisScript?galerie=$galerie&amp;photo=${x[1]}\"";
257
                                 print " title=\"$title, $NumOfComments\"";
258
                                 if ($class) print " class=\"$class\"";
259
                                 print ">";
260
         print "<img ";
261
         if (isset($thumbsize)) {
262
            print "width=\"120\" height=\"80\" ";
263
         } else {
264
            // scale portraits to 80 height
265
            if ($portrait) {
266
                                                        //portrait
267
               print "width=\"";
268
               $scaled = round($imgsize[0] / 1.5);
269
               print $scaled;
270
               print "\" height=\"${imgsize[0]}\"";
271
            } else {
272
                                                        //landscape
273
               print $imgsize[3]; 
274
            }
275
         }
276
         print " src=\"$thumb\" ";
277
         print "alt=\"photo No. ${x[1]}\" />";
278
         print "</a>\n";
279
      }
280
   }
281
   print "</p>\n";
282

    
283
         //info
284
         print "<div id=\"info\">\n";
285
         if ($galeriedesc[$galerie]) {
286
                 print "<p>";
287
                 print "<span class=\"value\">";
288
                 print $galeriedesc[$galerie] . "</span></p>\n";
289
         }
290
         if ($galerieauthor[$galerie]) {
291
                 print "<p><span class=\"key\">Author: </span>";
292
                 print "<span class=\"value\">";
293
                 print $galerieauthor[$galerie] . "</span></p>\n";
294
         }
295
         print "</div>\n";
296

    
297
   //and links to archived images:
298
   print "\n<p class=\"archives\">\n";
299
   if (file_exists("$gallery_dir/$galerie/zip/mq.zip")) {
300
      print "[ <a href=\"$gallery_dir/$galerie/zip/mq.zip\">" . __('zipped MQ images') . "</a> ] ";
301
   }
302
   if (file_exists("$gallery_dir/$galerie/zip/mq.tar.bz2")) {
303
      print "[ <a href=\"$gallery_dir/$galerie/zip/mq.tar.bz2\">" . __('MQ images tarball') . "</a> ] ";
304
   }
305
   if (file_exists("$gallery_dir/$galerie/zip/hq.zip")) {
306
      print "[ <a href=\"$gallery_dir/$galerie/zip/hq.zip\">" . __('zipped HQ images') . "</a> ]";
307
   }
308
   if (file_exists("$gallery_dir/$galerie/zip/hq.tar.bz2")) {
309
      print "[ <a href=\"$gallery_dir/$galerie/zip/hq.tar.bz2\">" . __('HQ images tarball') . "</a> ]";
310
   }
311
   print "</p>";
312

    
313
#######################
314
#         Individual Image        #
315
#######################
316
} else { //low-res image
317
   # finish off header
318
   print "\n &gt; <a href=\"$ThisScript?galerie=$galerie\">";
319
         if ($galeriename[$galerie]) {
320
                 print $galeriename[$galerie];
321
         } else {
322
                 print $galerie;
323
         }
324
         print "</a>\n &gt; Photo";
325
   print " $snimek</div>";
326
   $path = "$gallery_dir/$galerie/thumbs";
327
   $imgfiles = new SortDir("$path");
328
   check($galerie);
329
   $path = "$gallery_dir/$galerie/lq";
330
   $file = "$path/img-$snimek.jpg";
331
   if (!file_exists($file)) {
332
      print __('No such image');
333
      $page->footer();
334
      exit;
335
   }
336
         
337
         if (!$picture) { //picture may have been created if commentform submitted
338
            require_once("$root/inc/photo.class.inc.php");
339
            $picture = new C_photo($file, $snimek);
340
         }
341

    
342
   // mini thumbnail roll
343

    
344
   if ($show_thumbs) {
345
     print "\n<!--mini thumbnail roll-->\n<div id=\"thumbs\" class=\"navigation\" style=\"visibility: hidden\"><ul class=\"thumbs noscript\" style=\"display:none\">";
346
      print "<a id=\"minus\" href=\"$ThisScript?galerie=$galerie&amp;photo=$snimek";
347
      print "\">";
348
      print "</a>\n";
349
      print " : \n";
350
      while ($thumbfile = $imgfiles->read()) {
351
         if ( eregi("^img-([0-9]+)\.(png|jpe?g)",
352
             $thumbfile, $x)) {
353
            $thumb = "$gallery_dir/$galerie/thumbs/img-${x[1]}.${x[2]}";
354
            print "   <li><a class=\"thumb\" href=\"$ThisScript?galerie=$galerie&amp;photo=${x[1]}&amp;directdownload=true\"";
355
            print " name=\"" . get_photo_title($galerie, $x[1]) . "\" title=\"" . get_photo_title($galerie, $x[1]) . "\">";
356
            print "</a></li> \n";
357
         }
358
      }
359
      if (file_exists("$gallery_dir/$galerie/zip/hq.zip")) {
360
         print "<a id=\"zip\" href=\"$gallery_dir/$galerie/zip/hq.zip\">";
361
         print "zip<span /></a>";
362
      }
363
      if (file_exists("$gallery_dir/$galerie/zip/hq.tar.bz2")) {
364
         print "<a id=\"zip\" href=\"$gallery_dir/$galerie/zip/hq.tar.bz2\">";
365
         print "zip<span /></a>";
366
      }
367
      print "</ul></div>\n";
368
   } else {
369
      // show the popup button
370
      print "\n<!--mini thumbnail popup-->\n<div class=\"thumbroll\">";
371
      print "<a id=\"plus\" href=\"$ThisScript?galerie=$galerie&amp;photo=$snimek";
372
      print "&amp;show_thumbs=yes\"";
373
                        print " title=\"" . __('Show Thumbnail Navigation') . "\">";
374
      print "</a>\n";
375
      print "</div>\n";
376
   }
377

    
378
   /* main image + thumbnail navigation (prev/next) */
379

    
380
   if($slideshow) {
381
     print "
382
<div id=\"gallery\" class=\"content\">
383
  <div class=\"slideshow-container\">
384
   <div id=\"loading\" class=\"loader\"></div>
385
   <div id=\"slideshow\" class=\"slideshow\" style=\"height:480;\"></div>
386
  </div>
387
</div>\n";
388
   }
389
   else {
390
     $picture->renderPreview();
391
     $page->navigation($galerie, $snimek, "prev");
392
     $page->navigation($galerie, $snimek, "next");
393
   }
394
   print "</div>\n"; //end image div
395

    
396

    
397
   if(!$slideshow) {
398
     if (function_exists(exif_read_data)) require("$root/inc/exif.inc.php"); 
399
     /* Image comment
400
        really poor naming here, it is caption.
401
     */
402
     $picture->renderCaption();
403
     
404
     
405
     //show page counter
406
     if ($log_access) {
407
       $picture->renderCounter();
408
     }
409
     
410
     $picture->renderBigSize();
411
     
412
     $page->user_comments($picture->number);
413
     $page->navigation($galerie, $snimek, null);
414
   }
415
}
416

    
417
require("inc/footer.inc.php");
418

    
419

    
420
if($slideshow) {
421
  print "
422
<div id=\"controls\" class=\"controls\"></div>
423
<script type=\"text/javascript\">
424
$(document).ready(function() {
425
  $('#thumbs').galleriffic({
426
     autoStart:              true,
427
     imageContainerSel:      '#slideshow',
428
     renderNavControls:      false,
429
     renderSSControls:       false
430
  });
431
});
432
</script>\n";
433
}
434

    
435
$page->footer();
436
?>
Redmine Appliance - Powered by TurnKey Linux