<?php /* ************************************************************************* * * Copyright (c) by Andreas Unterkircher, unki@netshadow.at * All rights reserved * * This program 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 * 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., 675 Mass Ave, Cambridge, MA 02139, USA. * * *************************************************************************/ require_once "phpfspot.class.php"; class PHPFSPOT_RPC { public function __construct() { session_start(); } // __construct() public function process_ajax_request() { require_once 'HTML/AJAX/Server.php'; $server = new HTML_AJAX_Server(); $server->handleRequest(); $fspot = new PHPFSPOT(); /* if no action is specified, no need to further process this * function here. */ if(!isset($_GET['action']) && !isset($_POST['action'])) return; if(isset($_GET['action'])) $action = $_GET['action']; if(isset($_POST['action'])) $action = $_POST['action']; switch($action) { case 'showphoto': if(isset($_GET['id']) && is_numeric($_GET['id'])) { $fspot->showPhoto($_GET['id']); } break; case 'getxmltaglist': print $fspot->get_xml_tag_list(); break; case 'show_available_tags': print $fspot->getAvailableTags(); break; case 'show_selected_tags': print $fspot->getSelectedTags(); break; case 'addtag': if(isset($_POST['id']) && is_numeric($_POST['id'])) { print $fspot->addTag($_POST['id']); } break; case 'deltag': if(isset($_POST['id']) && is_numeric($_POST['id'])) { print $fspot->delTag($_POST['id']); } break; case 'reset': $fspot->resetTagSearch(); $fspot->resetNameSearch(); $fspot->resetTags(); $fspot->resetDateSearch(); $fspot->resetPhotoView(); break; case 'tagcondition': if(isset($_POST['mode']) && in_array($_POST['mode'], Array('or', 'and'))) { print $fspot->setTagCondition($_POST['mode']); } break; case 'show_photo_index': if(isset($_GET['begin_with']) && is_numeric($_GET['begin_with'])) { $_SESSION['begin_with'] = $_GET['begin_with']; } else { unset($_SESSION['begin_with']); } if(isset($_GET['last_photo']) && is_numeric($_GET['last_photo'])) $_SESSION['last_photo'] = $_GET['last_photo']; $fspot->showPhotoIndex(); break; case 'showcredits': $fspot->showCredits(); break; case 'search': print $fspot->startSearch(); break; case 'update_sort_order': if(isset($_POST['value']) && is_string($_POST['value'])) { print $fspot->updateSortOrder($_POST['value']); } break; case 'get_export': /* $_GET['mode'] will be validated by getExport() */ $fspot->getExport($_GET['mode']); break; case 'get_photo_to_show': $fspot->getCurrentPhoto(); break; case 'get_calendar_matrix': if((is_numeric($_GET['year']) || !isset($_GET['year'])) && (is_numeric($_GET['month']) || !isset($_GET['month'])) && (is_numeric($_GET['day']) || !isset($_GET['day']))) { $fspot->get_calendar_matrix($_GET['year'], $_GET['month'], $_GET['day']); } break; case 'what_to_do': print $fspot->whatToDo(); break; case 'reset_slideshow': print $fspot->resetSlideShow(); break; case 'get_next_slideshow_img': print $fspot->getNextSlideShowImage(); break; case 'get_prev_slideshow_img': print $fspot->getPrevSlideShowImage(); break; } } // process_ajax_request(); } // class PHPFSPOT_RPC $rpc = new PHPFSPOT_RPC(); $rpc->process_ajax_request(); ?>