X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=phpfspot.git;a=blobdiff_plain;f=rpc.php;h=748fd250640326d4ed049fca4736a8d0f657435d;hp=b2d258c5c0748b1530bcc229d4ebfcafc6232c09;hb=3eb8cfe677dbd50680ffd1ebcc14aa733feba5b3;hpb=f95833e6dec7e6ca04e96ec81527a90894904254 diff --git a/rpc.php b/rpc.php index b2d258c..748fd25 100644 --- a/rpc.php +++ b/rpc.php @@ -2,8 +2,9 @@ /* ************************************************************************* * - * Copyright (c) by Andreas Unterkircher, unki@netshadow.at - * All rights reserved + * phpfspot, presents your F-Spot photo collection in Web browsers. + * + * Copyright (c) by Andreas Unterkircher * * 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 @@ -23,10 +24,20 @@ require_once "phpfspot.class.php"; +/** + * PHPFSPOT_RPC class + * + * handles AJAX-RPC calls from client browsers + * @package phpfspot + */ class PHPFSPOT_RPC { + /** + * PHPFSPOT_RPC constructor + */ public function __construct() { + /* start PHP session */ session_start(); } // __construct() @@ -38,7 +49,7 @@ class PHPFSPOT_RPC { $server = new HTML_AJAX_Server(); $server->handleRequest(); - $fspot = new PHPFSPOT(); + $phpfspot = new PHPFSPOT(); /* if no action is specified, no need to further process this * function here. @@ -54,41 +65,46 @@ class PHPFSPOT_RPC { switch($action) { case 'showphoto': if(isset($_GET['id']) && is_numeric($_GET['id'])) { - $fspot->showPhoto($_GET['id']); + print $phpfspot->showPhoto($_GET['id']); } break; + case 'getxmltaglist': + print $phpfspot->get_xml_tag_list(); + break; + case 'show_available_tags': - print $fspot->getAvailableTags(); + print $phpfspot->getAvailableTags(); break; case 'show_selected_tags': - print $fspot->getSelectedTags(); + print $phpfspot->getSelectedTags(); break; case 'addtag': - if(isset($_GET['id']) && is_numeric($_GET['id'])) { - $fspot->addTag($_GET['id']); + if(isset($_POST['id']) && is_numeric($_POST['id'])) { + print $phpfspot->addTag($_POST['id']); } break; case 'deltag': - if(isset($_GET['id']) && is_numeric($_GET['id'])) { - $fspot->delTag($_GET['id']); + if(isset($_POST['id']) && is_numeric($_POST['id'])) { + print $phpfspot->delTag($_POST['id']); } break; case 'reset': - $fspot->resetTagSearch(); - $fspot->resetNameSearch(); - $fspot->resetTags(); - $fspot->resetDateSearch(); - $fspot->resetPhotoView(); + $phpfspot->resetTagSearch(); + $phpfspot->resetNameSearch(); + $phpfspot->resetTags(); + $phpfspot->resetDateSearch(); + $phpfspot->resetRateSearch(); + $phpfspot->resetPhotoView(); break; case 'tagcondition': - if(isset($_GET['mode']) && in_array($_GET['mode'], Array('or', 'and'))) { - $fspot->setTagCondition($_GET['mode']); + if(isset($_POST['mode']) && in_array($_POST['mode'], Array('or', 'and'))) { + print $phpfspot->setTagCondition($_POST['mode']); } break; @@ -99,54 +115,62 @@ class PHPFSPOT_RPC { else { unset($_SESSION['begin_with']); } - $fspot->showPhotoIndex(); + if(isset($_GET['last_photo']) && is_numeric($_GET['last_photo'])) + $_SESSION['last_photo'] = $_GET['last_photo']; + + print $phpfspot->showPhotoIndex(); break; case 'showcredits': - $fspot->showCredits(); + $phpfspot->showCredits(); break; case 'search': - print $fspot->startSearch($_GET['for']); + print $phpfspot->startSearch(); break; case 'update_sort_order': if(isset($_POST['value']) && is_string($_POST['value'])) { - print $fspot->updateSortOrder($_POST['value']); + print $phpfspot->updateSortOrder($_POST['value']); + } + break; + + case 'update_photo_version': + if(isset($_POST['photo_version']) && is_numeric($_POST['photo_version']) && + isset($_POST['photo_idx']) && is_numeric($_POST['photo_idx'])) { + print $phpfspot->update_photo_version($_POST['photo_idx'], $_POST['photo_version']); } break; case 'get_export': /* $_GET['mode'] will be validated by getExport() */ - $fspot->getExport($_GET['mode']); + $phpfspot->getExport($_GET['mode']); break; case 'get_photo_to_show': - $fspot->getCurrentPhoto(); + print $phpfspot->get_current_photo(); 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']); + if(isset($_GET['date']) && is_string($_GET['date'])) { + $phpfspot->get_calendar_matrix($_GET['date']); } break; case 'what_to_do': - print $fspot->whatToDo(); + print $phpfspot->whatToDo(); break; case 'reset_slideshow': - print $fspot->resetSlideShow(); + print $phpfspot->resetSlideShow(); break; case 'get_next_slideshow_img': - print $fspot->getNextSlideShowImage(); + print $phpfspot->getNextSlideShowImage(); break; case 'get_prev_slideshow_img': - print $fspot->getPrevSlideShowImage(); + print $phpfspot->getPrevSlideShowImage(); break; }