Subversion Repositories Applications.bazar

Rev

Rev 468 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 468 Rev 481
Line 42... Line 42...
42
			if (strlen($_SERVER['QUERY_STRING']) == 0) {
42
			if (strlen($_SERVER['QUERY_STRING']) == 0) {
43
				$len = strlen($_SERVER['REQUEST_URI']);
43
				$len = strlen($_SERVER['REQUEST_URI']);
44
			} else {
44
			} else {
45
				$len = -(strlen($_SERVER['QUERY_STRING']) + 1);
45
				$len = -(strlen($_SERVER['QUERY_STRING']) + 1);
46
			}
46
			}
-
 
47
			
-
 
48
			$urlString = '';
-
 
49
			if  (substr_count($_SERVER['REQUEST_URI'], $this->config['settings']['baseURL']) > 0) {
47
			$urlString = substr($_SERVER['REQUEST_URI'], strlen($this->config['settings']['baseURL']), $len);
50
				$urlString = substr($_SERVER['REQUEST_URI'], strlen($this->config['settings']['baseURL']), $len);
-
 
51
			} else if (substr_count($_SERVER['REQUEST_URI'], $this->config['settings']['baseAlternativeURL']) > 0) {
-
 
52
				$urlString = substr($_SERVER['REQUEST_URI'], strlen($this->config['settings']['baseAlternativeURL']), $len);
-
 
53
			}
Line 48... Line 54...
48
 
54
 
Line 49... Line 55...
49
			$urlParts = explode('/', $urlString);
55
			$urlParts = explode('/', $urlString);
50
 
56
 
Line 124... Line 130...
124
				$pairs[$v['name']] = $v;
130
				$pairs[$v['name']] = $v;
125
			}
131
			}
Line 126... Line 132...
126
 
132
 
127
			// Ne pas effacer cette ligne ! Elle est indispensable pour les services du Carnet en ligne
133
			// Ne pas effacer cette ligne ! Elle est indispensable pour les services du Carnet en ligne
128
			// qui n'utilisent que le tableau pairs dans les posts
134
			// qui n'utilisent que le tableau pairs dans les posts
129
			$pairs = array_merge($pairs, $_POST);
135
			$pairs = array_merge($_POST, $pairs);
Line 130... Line 136...
130
		}
136
		}
131
 
137
 
132
		// gestion du contenu du post
138
		// gestion du contenu du post
133
		if(isset($_POST))
139
		if(isset($_POST))
134
		{
140
		{
135
			// Safari ne sait pas envoyer des DELETE avec gwt...
141
			// Safari ne sait pas envoyer des DELETE avec gwt...
136
			// Nous utilisons le parametre "action" passé dans le POST qui doit contenir DELETE pour lancer la supression
142
			// Nous utilisons le parametre "action" passé dans le POST qui doit contenir DELETE pour lancer la supression
137
			if ($pairs['action'] == 'DELETE') {
143
			if (isset($pairs['action']) && $pairs['action'] == 'DELETE') {
138
				$this->delete();
144
				$this->delete();
Line 139... Line 145...
139
				return;
145
				return;
Line 146... Line 152...
146
					if (file_exists($resource_file)) {
152
					if (file_exists($resource_file)) {
147
						include_once $resource_file;
153
						include_once $resource_file;
148
						if (class_exists($resource_class)) {
154
						if (class_exists($resource_class)) {
149
							$service = new $resource_class($this->config);
155
							$service = new $resource_class($this->config);
150
							if (method_exists($service,'updateElement')) { // Update element
156
							if (method_exists($service,'updateElement')) { // Update element
-
 
157
								$ret_value = false;
-
 
158
								try {
151
								// TODO : a voir le retour ...
159
									// TODO : a voir le retour ...
152
								if ($service->updateElement($this->uid, $pairs)) {
160
									$ret_value = $service->updateElement($this->uid, $pairs);
-
 
161
									if($ret_value) $this->created();
-
 
162
									else $this->badRequest();
-
 
163
								} catch (Exception $e) {
153
									$this->created();
164
									$this->badRequest($e);
154
								}
165
								}
155
							}
166
							}
156
						}
167
						}
157
					}
168
					}
158
				} else { // get all elements of a ressource
169
				} else { // get all elements of a ressource
Line 198... Line 209...
198
			if (file_exists($resource_file)) {
209
			if (file_exists($resource_file)) {
199
				include_once $resource_file;
210
				include_once $resource_file;
200
				if (class_exists($resource_class)) {
211
				if (class_exists($resource_class)) {
201
					$service = new $resource_class($this->config);
212
					$service = new $resource_class($this->config);
202
					if (method_exists($service,'createElement')) { // Create a new element
213
					if (method_exists($service,'createElement')) { // Create a new element
-
 
214
						$ret_value = false;
-
 
215
						try {
203
						if ($service->createElement($pairs)) {
216
							$ret_value = $service->createElement($pairs);
-
 
217
							if($ret_value) $this->created();
-
 
218
							else $this->badRequest();
-
 
219
						} catch (Exception $e) {
204
							$this->created();
220
							$this->badRequest($e);
205
						}
221
						}
206
					}
222
					}
207
				}
223
				}
208
			}
224
			}
209
		} else {
225
		} else {
Line 246... Line 262...
246
	}
262
	}
Line 247... Line 263...
247
 
263
 
248
	/**
264
	/**
249
	 * Send a HTTP 400 response header.
265
	 * Send a HTTP 400 response header.
250
	 */
266
	 */
251
	private function badRequest() {
267
	private function badRequest(Exception $e = NULL) {
-
 
268
		header('HTTP/1.0 400 Bad Request');
252
		header('HTTP/1.0 400 Bad Request');
269
		if($e) echo $e->getMessage();
Line 253... Line 270...
253
	}
270
	}
254
 
271
 
255
	/**
272
	/**