diff options
-rw-r--r-- | phpfspot.class.php | 29 | ||||
-rw-r--r-- | phpfspot.js | 13 | ||||
-rw-r--r-- | rpc.php | 8 | ||||
-rw-r--r-- | templates/photo_index.tpl | 3 | ||||
-rw-r--r-- | templates/slideshow.tpl | 13 |
5 files changed, 66 insertions, 0 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php index 2c3170c..25d144c 100644 --- a/phpfspot.class.php +++ b/phpfspot.class.php @@ -135,6 +135,10 @@ class PHPFSPOT { $this->tmpl->show("export.tpl"); return; break; + case 'slideshow': + $this->tmpl->show("slideshow.tpl"); + return; + break; } $this->tmpl->assign('from_date', $this->get_calendar('from')); @@ -865,8 +869,10 @@ class PHPFSPOT { } $export_link = "index.php?mode=export"; + $slideshow_link = "index.php?mode=slideshow"; $this->tmpl->assign('extern_link', $extern_link); + $this->tmpl->assign('slideshow_link', $slideshow_link); $this->tmpl->assign('export_link', $export_link); $this->tmpl->assign('count', $count); $this->tmpl->assign('width', $this->cfg->thumb_width); @@ -1651,6 +1657,29 @@ class PHPFSPOT { } } // get_sort_order() + + public function getNextSlideShowImage() + { + $all_photos = $this->getPhotoSelection(); + + if(!isset($_SESSION['slideshow_img']) || $_SESSION['slideshow_img'] == count($all_photos)-1) + $_SESSION['slideshow_img'] = 0; + else + $_SESSION['slideshow_img']++; + + $server_name = $_SERVER['SERVER_NAME']; + if(!isset($_SERVER['HTTPS'])) $protocol = "http"; + else $protocol = "https"; + + return $protocol ."://". $server_name . $this->cfg->web_path ."phpfspot_img.php?idx=". $all_photos[$_SESSION['slideshow_img']] ."&width=". $this->cfg->photo_width; + + } // getNextSlideShowImage() + + public function resetSlideShow() + { + if(isset($_SESSION['slideshow_img'])) + unset($_SESSION['slideshow_img']); + } // resetSlideShow() } ?> diff --git a/phpfspot.js b/phpfspot.js index dff8da9..9e1a932 100644 --- a/phpfspot.js +++ b/phpfspot.js @@ -300,6 +300,19 @@ function preloadPhotos(lbImg) { } } +function startSlideShow() +{ + HTML_AJAX.grab(encodeURI('rpc.php?action=reset_slideshow')); + nextSlide(); +} + +function nextSlide() +{ + next_img = HTML_AJAX.grab(encodeURI('rpc.php?action=get_next_slideshow_img')); + document.getElementById('slide_img').src = next_img; + setTimeout("nextSlide()", 3000); +} + var startup = 1; var calendar_shown = 0; var calendar_mode = ''; @@ -112,6 +112,14 @@ class PHPFSPOT_RPC { print $fspot->whatToDo(); break; + case 'reset_slideshow': + print $fspot->resetSlideShow(); + break; + + case 'get_next_slideshow_img': + print $fspot->getNextSlideShowImage(); + break; + } } // process_ajax_request(); diff --git a/templates/photo_index.tpl b/templates/photo_index.tpl index 1590f85..bc7e5d1 100644 --- a/templates/photo_index.tpl +++ b/templates/photo_index.tpl @@ -30,6 +30,9 @@ {/if} </td> <td class="index_header" style="text-align: right"> + {if $slideshow_link } + <a href="{$slideshow_link}" title="Slideshow" target="_blank">Slideshow</a> + {/if} {if $extern_link } <a href="{$extern_link}" title="Use this link to return to the current view"><img src="resources/link.png" /></a> {/if} diff --git a/templates/slideshow.tpl b/templates/slideshow.tpl new file mode 100644 index 0000000..a41a018 --- /dev/null +++ b/templates/slideshow.tpl @@ -0,0 +1,13 @@ +{include file="header.tpl"} + <body onload="startSlideShow();"> + <div id="frame"> + <table> + <tr> + <td> + <img id="slide_img" alt="slideshow_img" /> + </td> + </tr> + </table> + </div> + </body> +{include file="footer.tpl"} |