// // This script is part of "Roger's PHP Gallery". // // "Roger's PHP Gallery" is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // This copyright notice MUST APPEAR in all copies of the script! // ------------------------------------------------------------------------------------------------- // DEBUG error_reporting(E_ALL); // DEBUG END require_once('./config.php'); require_once('./inc/gallery_classes.php'); // This gets the vars out of $_GET // to support register_globals = off in php.ini unset($id, $gal, $page); if (isset($_GET['gal'])) { $gal = Lib::cleanGalName($_GET['gal']); } if (isset($_GET['id'])) { $id = $_GET['id']; } if (isset($_GET['page'])) { $page = $_GET['page']; } // add PHP self to config var $rpg['PHP_SELF'] = $_SERVER['PHP_SELF']; // if page is still not set or not // integer then init with 1 if (!isset($page) || !Lib::isInteger($page)) { $page = 1; } // create gallery object $Obj_ImageGet=new GetImageDir($gal, $page, $rpg); // create template object $tmpl = new template($gal); if (!isset($id)) { // build gallery page // calculate image range for gallery if ($rpg['IMG_PER_PAGE'] <> 0) { $start_image = $rpg['IMG_PER_PAGE'] * $page - $rpg['IMG_PER_PAGE']; $end_image = $rpg['IMG_PER_PAGE'] * $page - 1; } else { $start_image = 0; $end_image = 0; } // fetch images and header if ($Obj_ImageGet->getImages($start_image, $end_image) && $Obj_ImageGet->getImageQuantityReturned() > 0) { $images = $Obj_ImageGet->image_array; $total_images = $Obj_ImageGet->getImageQuantityReturned(); } else { exit('requested image/gallery could not be found'); } // init template handler $thumb_rows = ''; $thumb_cells = ''; $var_arr = array(); $img_count = 0; foreach ($images as $key => $image) { $img_count += 1; // get the size of the thumbnail for img tag $thumb_size = @getimagesize($image['thumbnail']); $var_arr['thumbSize'] = $thumb_size[3]; // open window with javascript or target if (!$rpg['JAVA_WINDOW']) { $var_arr['linkImage'] = $image['link']; $var_arr['linkTarget'] = $rpg['TARGET_WINDOW']; } else { $win_height = $image['height'] + $rpg['PIX_VERT']; $win_width = $image['width'] + $rpg['PIX_HORIZ']; $var_arr['linkImage'] = "javascript:win_open('".$image['link']."', $win_width, $win_height)"; $var_arr['linkTarget'] = ''; } $var_arr['thumbSource'] = $image['thumbnail']; $var_arr['imageName'] = $image['name']; $var_arr['imageSize'] = $image['size']; $var_arr['linkText'] = $image['linktext']; $var_arr['imageDescription'] = $image['description']; $var_arr['imageNumber'] = $key + 1; $var_arr['imagesTotal'] = $Obj_ImageGet->getImageQuantity(); // build cell $tmpl->setVariables($var_arr); $tmpl->setTemplateFile('index-page-cell.htm'); $thumb_cells .= $tmpl->getParsedTemplate(); // finish one row if ((($img_count % $rpg['IMG_PER_ROW']) == 0)||($img_count == $total_images)) { $tmpl->setTemplateFile('index-page-row.htm'); $tmpl->setVariables(array('thumbCells' => $thumb_cells)); $thumb_rows .= $tmpl->getParsedTemplate(); $thumb_cells = ''; } } // generate page links $page_arr = $Obj_ImageGet->getPageLinks(); $page_links = ''; foreach ($page_arr as $page_number => $properties) { if ($properties['current'] == true) { $tmpl->setTemplateFile('index-page-pagecurrent.htm'); } else { $tmpl->setTemplateFile('index-page-pagelink.htm'); } $tmpl->setVariables(array( 'pageNumber' => $page_number, 'pageLink' => $properties['pageLink'])); $page_links .= $tmpl->getParsedTemplate(); } $tmpl->setTemplateFile('index-page-main.htm'); $tmpl->setVariables(array( 'pageLinks' => $page_links, 'rowQuantity' => $rpg['IMG_PER_ROW'], 'thumbIndex' => $thumb_rows, 'galTitle' => $Obj_ImageGet->getGalleryTitle(), 'cssPath' => $tmpl->getCssPath('gallery.css'))); echo $tmpl->getParsedTemplate(); } else { // build image window // image range for single image $start_image = $id - 1; $end_image = $id + 1; // fetch images if ($Obj_ImageGet->getImages($start_image, $end_image) && $Obj_ImageGet->getImageQuantityReturned() > 0) { $images = $Obj_ImageGet->image_array; $total_images = $Obj_ImageGet->getImageQuantityReturned(); } else { exit('requested image could not befound'); } // count $image_counter = New ImageCounter($gal, $rpg); $image_counter->increaseImageCounter($images[$id]['name']); $total_images = $Obj_ImageGet->getImageQuantity(); // set previous and next image for navigation $prev_id = (int) ($id - 1); $next_id = $id + 1; if ($prev_id < 0) { unset($prev_id); } if ($next_id > ($total_images - 1)) { unset($next_id); } // navigation to previous-/next image $prevLink = ''; $homeLink = ''; $nextLink = ''; if (isset($prev_id) && !$rpg['JAVA_WINDOW']) { $tmpl->setVariables(array('prevLink' => Lib::convUrl($rpg['PHP_SELF']. '?gal='.urlencode($gal).'&id='.$prev_id))); $tmpl->setTemplateFile('image-page-prev.htm'); $prevLink = $tmpl->getParsedTemplate(); } if ($rpg['TARGET_WINDOW'] == '_blank' || $rpg['JAVA_WINDOW']) { // lets the user close the picture window $tmpl->setVariables(array('homeLink' => 'javascript:window.close()')); $tmpl->setTemplateFile('image-page-close.htm'); } else { // lets the user get back to the gallery $tmpl->setVariables(array('homeLink' => Lib::convUrl($rpg['PHP_SELF']. '?gal='.urlencode($gal).'&page='.ceil(($id+1)/$rpg['IMG_PER_PAGE'])))); $tmpl->setTemplateFile('image-page-home.htm'); } $homeLink = $tmpl->getParsedTemplate(); // link for next image if (isset($next_id) && !$rpg['JAVA_WINDOW']) { $tmpl->setVariables(array('nextLink' => Lib::convUrl($rpg['PHP_SELF']. '?gal='.urlencode($gal).'&id='.$next_id))); $tmpl->setTemplateFile('image-page-next.htm'); $nextLink = $tmpl->getParsedTemplate(); } $variables = array('galleryName' => $Obj_ImageGet->getGalleryTitle(), 'imageName' => $images[$id]['name'], 'imageDescription' => $images[$id]['description'], 'imageSize' => $images[$id]['dimension'], 'imageLink' => './'.$rpg['IMAGE_DIR'].$gal.'/'.$images[$id]['name'], 'prevLink' => $prevLink, 'homeLink' => $homeLink, 'nextLink' => $nextLink, 'cssPath' => $tmpl->getCssPath('gallery.css')); $tmpl->setVariables($variables); $tmpl->setTemplateFile('image-page-main.htm'); echo $tmpl->getParsedTemplate(); } ?>