Subversion Repositories Applications.framework

Rev

Rev 285 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 285 Rev 286
Line 10... Line 10...
10
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
10
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
11
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
11
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
12
 * @copyright	Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
12
 * @copyright	Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
13
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
13
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
14
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
14
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
15
 * @version	SVN: $Id: Url.php 285 2011-01-03 14:17:18Z gduche $
15
 * @version	SVN: $Id: Url.php 286 2011-01-05 11:37:57Z jpm $
16
 * @link		/doc/framework/
16
 * @link		/doc/framework/
17
*/
17
*/
18
class Url {
18
class Url {
Line 19... Line 19...
19
 
19
 
20
	/**
20
	/**
21
	 * Répresenter les tableaux dans les requêtes en utilisant la notation php []. Par défaut à true.
21
	 * Répresenter les tableaux dans les requêtes en utilisant la notation php []. Par défaut à true.
22
	 */
22
	 */
Line 23... Line 23...
23
	const OPTION_UTILISER_CROCHETS = 'use_brackets';
23
	const OPTION_UTILISER_CROCHETS = 'utiliser_crochets';
24
 
24
 
25
	/**
25
	/**
26
	 * URL-encoder les clés des variables dans les requêtes. Par défaut à true.
26
	 * URL-encoder les clés des variables dans les requêtes. Par défaut à true.
Line 27... Line 27...
27
	 */
27
	 */
28
	const OPTION_ENCODER_CLES = 'encode_keys';
28
	const OPTION_ENCODER_CLES = 'encoder_cles';
29
 
29
 
30
	/**
30
	/**
31
	 * Séparateurs de variables lors du parsing de la requête. Chaque caractère
31
	 * Séparateurs de variables lors du parsing de la requête. Chaque caractère
32
	 * est considéré comme un séparateur. Par défaut, spécifié par le paramêtre
32
	 * est considéré comme un séparateur. Par défaut, spécifié par le paramêtre
Line 33... Line 33...
33
	 * arg_separator.input dans php.ini (par défaut "&").
33
	 * arg_separator.input dans php.ini (par défaut "&").
34
	 */
34
	 */
35
	const OPTION_SEPARATEUR_ENTREE = 'input_separator';
35
	const OPTION_SEPARATEUR_ENTREE = 'separateur_entree';
36
 
36
 
37
	/**
37
	/**
Line 38... Line 38...
38
	 * Séparateur de variables lors de la génération de la requête. Par défaut, spécifié
38
	 * Séparateur de variables lors de la génération de la requête. Par défaut, spécifié
39
	 * par le paramètre arg_separator.output dans php.ini (par défaut "&").
39
	 * par le paramètre arg_separator.output dans php.ini (par défaut "&").
40
	 */
40
	 */
41
	const OPTION_SEPARATEUR_SORTIE = 'output_separator';
41
	const OPTION_SEPARATEUR_SORTIE = 'separateur_sortie';
Line 93... Line 93...
93
	 * @param array  $options
93
	 * @param array  $options
94
	 */
94
	 */
95
	public function __construct($url, $options = null) {
95
	public function __construct($url, $options = null) {
96
		Config::verifierPresenceParametres($this->parametres_obligatoires);
96
		Config::verifierPresenceParametres($this->parametres_obligatoires);
Line 97... Line 97...
97
		
97
		
98
		$this->setOption(self::OPTION_SEPARATEUR_ENTREE,
-
 
99
						 Config::get('url_arg_separateur_entree'));
98
		$this->setOption(self::OPTION_SEPARATEUR_ENTREE, Config::get('url_arg_separateur_entree'));
100
		$this->setOption(self::OPTION_SEPARATEUR_SORTIE,
-
 
101
						 Config::get('url_arg_separateur_sortie'));
99
		$this->setOption(self::OPTION_SEPARATEUR_SORTIE, Config::get('url_arg_separateur_sortie'));
102
		if (is_array($options)) {
100
		if (is_array($options)) {
103
			foreach ($options as $nomOption => $valeur) {
101
			foreach ($options as $nomOption => $valeur) {
104
				$this->setOption($nomOption);
102
				$this->setOption($nomOption);
105
			}
103
			}
Line 127... Line 125...
127
		if ($url) {
125
		if ($url) {
128
			$this->fragment = substr($url, 1);
126
			$this->fragment = substr($url, 1);
129
		}
127
		}
130
	}
128
	}
Line -... Line 129...
-
 
129
	
-
 
130
	/**
-
 
131
	 * Renvoie la valeur de l'option specifiée.
-
 
132
	 *
-
 
133
	 * @param string $nomOption Nom de l'option demandée
-
 
134
	 *
-
 
135
	 * @return  mixed
-
 
136
	 */
-
 
137
	public function getOption($nomOption) {
-
 
138
		return isset($this->options[$nomOption]) ? $this->options[$nomOption] : false;
Line 131... Line 139...
131
	
139
	}
132
 
140
 
133
	/**
141
	/**
134
	 * Met à jour la valeur de l'option spécifiée.
142
	 * Met à jour la valeur de l'option spécifiée.
Line 402... Line 410...
402
			$url .= '#' . $this->fragment;
410
			$url .= '#' . $this->fragment;
403
		}
411
		}
Line 404... Line 412...
404
 
412
 
405
		return $url;
413
		return $url;
406
	}
-
 
407
	
-
 
408
	/**
-
 
409
	 * Renvoie la valeur de l'option specifiée.
-
 
410
	 *
-
 
411
	 * @param string $nomOption Nom de l'option demandée
-
 
412
	 *
-
 
413
	 * @return  mixed
-
 
414
	 */
-
 
415
	function getOption($nomOption) {
-
 
416
		return isset($this->options[$nomOption])
-
 
417
			? $this->options[$nomOption] : false;
-
 
418
	}
414
	}
419
}
415
}
420
?>
416
?>