Subversion Repositories Applications.wikini

Rev

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

Rev 39 Rev 40
Line 15... Line 15...
15
class Pages extends Service {
15
class Pages extends Service {
Line 16... Line 16...
16
	
16
	
17
	private $wiki = null;
17
	private $wiki = null;
18
	private $pageNom = null;
18
	private $pageNom = null;
-
 
19
	private $section = null;
-
 
20
	private $creerPage = false;
Line 19... Line 21...
19
	private $section = null;
21
	private $templateDefaut = null;
20
	
22
	
21
	private $retour = 'txt';
23
	private $retour = 'txt';
Line 36... Line 38...
36
			$page = $this->consulterPage($this->pageNom, $this->section);
38
			$page = $this->consulterPage($this->pageNom, $this->section);
Line 37... Line 39...
37
			
39
			
38
			// on devrait normalement renvoyer une erreur 404 mais 
40
			// on devrait normalement renvoyer une erreur 404 mais 
39
			// l'api de consultation d'url du framework prend mal en compte 
41
			// l'api de consultation d'url du framework prend mal en compte 
40
			// le 404 et ne permet pas de le traiter quand on le recoit
42
			// le 404 et ne permet pas de le traiter quand on le recoit
-
 
43
			if($page == null && $this->creerPage) {
-
 
44
				$this->creerPageAPartirTemplate($this->pageNom, $this->templateDefaut);
-
 
45
				$page = $this->consulterPage($this->pageNom, $this->section);
-
 
46
			}
41
			$page['existe'] = ($page != null);
47
			
Line 42... Line 48...
42
			$retour = $this->formaterRetour($page);
48
			$retour = $this->formaterRetour($page);
43
			
49
			
44
			$this->envoyerContenuJson($retour);
50
			$this->envoyerContenuJson($retour);
Line 70... Line 76...
70
		
76
		
71
		if (isset($parametres['txt_section_titre']) && trim($parametres['txt_section_titre']) == '') {
77
		if (isset($parametres['txt_section_titre']) && trim($parametres['txt_section_titre']) == '') {
72
			$message = "La valeur du paramètre 'txt.section.titre' ne peut pas être vide si celui-ci est présent";
78
			$message = "La valeur du paramètre 'txt.section.titre' ne peut pas être vide si celui-ci est présent";
73
			$erreurs[] = $message;
79
			$erreurs[] = $message;
-
 
80
		}
-
 
81
		
-
 
82
		if (isset($parametres['txt_section_titre']) && trim($parametres['txt_section_titre']) == '') {
-
 
83
			$message = "La valeur du paramètre 'txt.section.titre' ne peut pas être vide si celui-ci est présent";
-
 
84
			$erreurs[] = $message;
-
 
85
		}
-
 
86
		
-
 
87
		if (isset($parametres['txt_template']) && trim($parametres['txt_template']) == '') {
-
 
88
			$message = "La valeur du paramètre 'txt_template' ne peut pas être vide si celui-ci est présent";
-
 
89
			$erreurs[] = $message;
Line 74... Line 90...
74
		}
90
		}
75
				
91
				
76
		if (count($erreurs) > 0) {
92
		if (count($erreurs) > 0) {
77
			$message = implode('<br />', $erreurs);
93
			$message = implode('<br />', $erreurs);
Line 89... Line 105...
89
			$this->section = $parametres['txt_section_position'];
105
			$this->section = $parametres['txt_section_position'];
90
		}
106
		}
91
		if (isset($parametres['txt_format'])) {
107
		if (isset($parametres['txt_format'])) {
92
			$this->retour = $parametres['txt_format'];
108
			$this->retour = $parametres['txt_format'];
93
		}
109
		}
-
 
110
		if (isset($parametres['txt_template'])) {
-
 
111
			$this->creerPage = true;
-
 
112
			$this->templateDefaut = $parametres['txt_template'];
-
 
113
		}
94
	}
114
	}
Line 95... Line 115...
95
	
115
	
Line 96... Line 116...
96
	private function consulterPage($page, $section = null) {
116
	private function consulterPage($page, $section = null) {
Line 189... Line 209...
189
		
209
		
190
		$retour = array('id' => $this->pageNom,
210
		$retour = array('id' => $this->pageNom,
191
				'titre' => $this->pageNom,
211
				'titre' => $this->pageNom,
192
				'mime' => $mime,
212
				'mime' => $mime,
193
				'texte' => $texte,
213
				'texte' => $texte,
194
				'href' => $url,
-
 
Line 195... Line 214...
195
				'existe' => $page['existe']);
214
				'href' => $url);
196
		
215
		
Line -... Line 216...
-
 
216
		return $retour;
-
 
217
	}
-
 
218
	
-
 
219
	private function creerPageAPartirTemplate($tag_page_a_creer, $tag_template) {
-
 
220
		$page_template = $this->consulterPage($tag_template);
-
 
221
		$corps_nouvelle_page = ($page_template != null) ? $page_template['body'] : '';
-
 
222
		// si le template n'existe pas, la page créée sera vide
-
 
223
		$ecriture = $this->ecrirePage($tag_page_a_creer, $corps_nouvelle_page);	
-
 
224
		
197
		return $retour;
225
		return $ecriture;
198
	}
226
	}
199
	
227
	
Line 200... Line 228...
200
	public function ajouter($ressources, $requeteDonnees) {
228
	public function ajouter($ressources, $requeteDonnees) {
Line 258... Line 286...
258
		return $infos;
286
		return $infos;
259
	}
287
	}
Line 260... Line 288...
260
	
288
	
Line -... Line 289...
-
 
289
	private function remplacerSection($titre_section, $section_remplacement, $corps) {
-
 
290
				
261
	private function remplacerSection($titre_section, $section_remplacement, $corps) {
291
		// insertion d'un saut de ligne pour empêcher de casser le titre, lorsque le titre
262
				
292
		// suivant vient directement après la section, sans saut de ligne ni espace
263
		$section_remplacement = "\n".$section_remplacement."\n";
293
		$section_remplacement = "\n".$section_remplacement."\n";
264
		$section_page_originale = $this->getSectionParTitre($corps, $titre_section, true);
294
		$section_page_originale = $this->getSectionParTitre($corps, $titre_section, true);
Line 285... Line 315...
285
	
315
	
Line 286... Line 316...
286
	private function verifierParametresEcriture($parametres) {
316
	private function verifierParametresEcriture($parametres) {
Line 287... Line 317...
287
			
317
			
288
		$erreurs = array();
318
		$erreurs = array();
289
		
319
		
290
		if(!isset($parametres['pageContenu'])) {
320
		if (!isset($parametres['pageContenu'])) {
Line 291... Line 321...
291
			$message = "Le paramètre pageContenu est obligatoire";
321
			$message = "Le paramètre pageContenu est obligatoire";
292
			$erreurs[] = $message;
322
			$erreurs[] = $message;
293
		}
323
		}
294
		
324
		
Line 295... Line 325...
295
		if(!isset($parametres['pageTag']) || trim($parametres['pageTag']) == '') {
325
		if (!isset($parametres['pageTag']) || trim($parametres['pageTag']) == '') {
296
			$message = "Le paramètre pageTag est obligatoire";
326
			$message = "Le paramètre pageTag est obligatoire";
297
			$erreurs[] = $message;
327
			$erreurs[] = $message;
298
		}
328
		}
Line 299... Line 329...
299
		
329
		
Line 308... Line 338...
308
			throw new Exception($message, $code);
338
			throw new Exception($message, $code);
309
		}
339
		}
310
	}
340
	}
Line 311... Line 341...
311
	
341
	
312
	private function convertirTexteWikiVersEncodageAppli($texte) {
342
	private function convertirTexteWikiVersEncodageAppli($texte) {
313
		if(Config::get('encodage_appli') != Config::get('encodage_wiki')) {
343
		if (Config::get('encodage_appli') != Config::get('encodage_wiki')) {
314
			$texte = mb_convert_encoding($texte,Config::get('encodage_appli'),Config::get('encodage_wiki'));
344
			$texte = mb_convert_encoding($texte,Config::get('encodage_appli'),Config::get('encodage_wiki'));
315
		}
345
		}
316
		return $texte;
346
		return $texte;
Line 317... Line 347...
317
	}
347
	}
318
	
348
	
319
	private function convertirTexteAppliVersEncodageWiki($texte) {
349
	private function convertirTexteAppliVersEncodageWiki($texte) {
320
		if(Config::get('encodage_appli') != Config::get('encodage_wiki')) {
350
		if (Config::get('encodage_appli') != Config::get('encodage_wiki')) {
321
			$texte = mb_convert_encoding($texte,Config::get('encodage_wiki'),Config::get('encodage_appli'));
351
			$texte = mb_convert_encoding($texte,Config::get('encodage_wiki'),Config::get('encodage_appli'));
322
		}
352
		}
323
		return $texte;
353
		return $texte;