issue107, make sqlite-temp directory configurable
[phpfspot.git] / rpc.php
1 <?php
2
3 /* *************************************************************************
4  *
5  * Copyright (c) by Andreas Unterkircher, unki@netshadow.at
6  * All rights reserved
7  *
8  *  This program is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2 of the License, or
11  *  any later version.
12  *
13  *  This program is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with this program; if not, write to the Free Software
20  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21  *
22  * *************************************************************************/
23
24 require_once "phpfspot.class.php";
25
26 class PHPFSPOT_RPC {
27
28    public function __construct()
29    {
30       session_start();
31
32    } // __construct()
33
34    public function process_ajax_request()
35    {
36       require_once 'HTML/AJAX/Server.php';
37
38       $server = new HTML_AJAX_Server();
39       $server->handleRequest();
40
41       $fspot = new PHPFSPOT();
42
43       /* if no action is specified, no need to further process this
44        * function here.
45        */
46       if(!isset($_GET['action']) && !isset($_POST['action']))
47          return;
48
49       if(isset($_GET['action']))
50          $action = $_GET['action'];
51       if(isset($_POST['action']))
52          $action = $_POST['action'];
53
54       switch($action) {
55          case 'showphoto':
56             if(isset($_GET['id']) && is_numeric($_GET['id'])) {
57                $fspot->showPhoto($_GET['id']);
58             }
59             break;
60    
61          case 'getxmltaglist':
62             print $fspot->get_xml_tag_list();
63             break;
64
65          case 'show_available_tags':
66             print $fspot->getAvailableTags();
67             break;
68
69          case 'show_selected_tags':
70             print $fspot->getSelectedTags();
71             break;
72
73          case 'addtag':
74             if(isset($_POST['id']) && is_numeric($_POST['id'])) {
75                print $fspot->addTag($_POST['id']);
76             }
77             break;
78
79          case 'deltag':
80             if(isset($_POST['id']) && is_numeric($_POST['id'])) {
81                print $fspot->delTag($_POST['id']);
82             }
83             break;
84
85          case 'reset':
86             $fspot->resetTagSearch();
87             $fspot->resetNameSearch();
88             $fspot->resetTags();
89             $fspot->resetDateSearch();
90             $fspot->resetPhotoView();
91             break;
92
93          case 'tagcondition':
94             if(isset($_POST['mode']) && in_array($_POST['mode'], Array('or', 'and'))) {
95                print $fspot->setTagCondition($_POST['mode']);
96             }
97             break;
98
99          case 'show_photo_index':
100             if(isset($_GET['begin_with']) && is_numeric($_GET['begin_with'])) {
101                $_SESSION['begin_with'] = $_GET['begin_with'];
102             }
103             else {
104                unset($_SESSION['begin_with']);
105             }
106             if(isset($_GET['last_photo']) && is_numeric($_GET['last_photo']))
107                $_SESSION['last_photo'] = $_GET['last_photo'];
108
109             $fspot->showPhotoIndex();
110             break;
111    
112          case 'showcredits':
113             $fspot->showCredits();
114             break;
115
116          case 'search':
117             print $fspot->startSearch();
118             break;
119
120          case 'update_sort_order':
121             if(isset($_POST['value']) && is_string($_POST['value'])) {
122                print $fspot->updateSortOrder($_POST['value']);
123             }
124             break;
125
126          case 'get_export':
127             /* $_GET['mode'] will be validated by getExport() */
128             $fspot->getExport($_GET['mode']);
129             break;
130
131          case 'get_photo_to_show':
132             $fspot->getCurrentPhoto();
133             break;
134
135          case 'get_calendar_matrix':
136             if((is_numeric($_GET['year']) || !isset($_GET['year'])) &&
137                (is_numeric($_GET['month']) || !isset($_GET['month'])) &&
138                (is_numeric($_GET['day']) || !isset($_GET['day']))) {
139                $fspot->get_calendar_matrix($_GET['year'], $_GET['month'], $_GET['day']);
140             }
141             break;
142
143          case 'what_to_do':
144             print $fspot->whatToDo();
145             break;
146
147          case 'reset_slideshow':
148             print $fspot->resetSlideShow();
149             break;
150
151          case 'get_next_slideshow_img':
152             print $fspot->getNextSlideShowImage();
153             break;
154          
155          case 'get_prev_slideshow_img':
156             print $fspot->getPrevSlideShowImage();
157             break;
158
159       }
160
161    } // process_ajax_request();
162
163 } // class PHPFSPOT_RPC
164
165 $rpc = new PHPFSPOT_RPC();
166 $rpc->process_ajax_request();
167
168 ?>