Subversion Repositories Applications.wikini

Rev

Rev 58 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 58 Rev 76
Line 233... Line 233...
233
	
233
	
234
	private function creerPageAPartirTemplate($tag_page_a_creer, $tag_template) {
234
	private function creerPageAPartirTemplate($tag_page_a_creer, $tag_template) {
235
		$page_template = $this->consulterPage($tag_template);
235
		$page_template = $this->consulterPage($tag_template);
236
		$corps_nouvelle_page = ($page_template != null) ? $page_template['body'] : '';
236
		$corps_nouvelle_page = ($page_template != null) ? $page_template['body'] : '';
-
 
237
		// si le template n'existe pas, la page créée sera vide
237
		// si le template n'existe pas, la page créée sera vide
238
		$corps_nouvelle_page = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $corps_nouvelle_page);
Line 238... Line 239...
238
		$ecriture = $this->ecrirePage($tag_page_a_creer, $corps_nouvelle_page);	
239
		$ecriture = $this->ecrirePage($tag_page_a_creer, $corps_nouvelle_page);	
239
		
240
		
Line 261... Line 262...
261
			$corps = $texte;
262
			$corps = $texte;
262
		}	
263
		}	
Line 263... Line 264...
263
		
264
		
Line 264... Line 265...
264
		$ecriture = $this->ecrirePage($this->pageNom, $corps);
265
		$ecriture = $this->ecrirePage($this->pageNom, $corps);
265
		
266
		
266
		if ($ecriture) {
267
		if (0 == $ecriture) { 
267
			$this->envoyerCreationEffectuee();
268
			$this->envoyerCreationEffectuee();
268
		} else {
269
		} else {
269
			$message = 'Impossible de créer ou modifier la page';
270
			$message = 'Impossible de créer ou modifier la page';
Line 281... Line 282...
281
	 * @param string $titre de la section
282
	 * @param string $titre de la section
282
	 * @param string $page contenu de la page wiki
283
	 * @param string $page contenu de la page wiki
283
	 * @return tableau associatif tel que décrit ici
284
	 * @return tableau associatif tel que décrit ici
284
	 */
285
	 */
285
	private function getInformationsPositionSection($titre, $page) {
286
	private function getInformationsPositionSection($titre, $page) {
286
		
-
 
-
 
287
#		$titre = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $titre);
-
 
288
#		$page = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $page);
-
 
289
#die(var_dump($titre, $page));
-
 
290
#die(var_dump('/(=[=]+[ ]*'.preg_quote(trim($titre), '/').'[ ]*=[=]+[.]*)/i'));
287
		preg_match_all('/(=[=]+[ ]*'.preg_quote(trim($titre), '/').'[ ]*=[=]+[.]*)/i', $page, $sections, PREG_OFFSET_CAPTURE);
291
		preg_match_all('/(=[=]+[ ]*'.preg_quote(trim($titre), '/').'[ ]*=[=]+[.]*)/i', $page, $sections, PREG_OFFSET_CAPTURE);
288
		$longueur_titre = 0;
292
		$longueur_titre = 0;
289
		$debut_section_apres_titre = 0;
293
		$debut_section_apres_titre = 0;
290
		
-
 
-
 
294
#die(var_dump($sections));		
291
		if (count($sections) > 0 && is_array($sections[0]) && count($sections[0][0]) >= 2) {
295
		if (count($sections) > 0 && is_array($sections[0]) && count($sections[0][0]) >= 2) {
-
 
296
#die(var_dump($titre,$sections[0][0][0], strlen($sections[0][0][0])));	
292
			$longueur_titre = mb_strlen($sections[0][0][0]);
297
			$longueur_titre = strlen($sections[0][0][0]);
293
			$debut_section_apres_titre = $sections[0][0][1] + $longueur_titre;
298
			$debut_section_apres_titre = $sections[0][0][1] + $longueur_titre;
294
		}
299
		}
Line 295... Line 300...
295
		
300
		
296
		// ATTENTION : début contient le numéro du caractere de début de la section, après le titre
301
		// ATTENTION : début contient le numéro du caractere de début de la section, après le titre
Line 300... Line 305...
300
		
305
		
301
		return $infos;
306
		return $infos;
Line 302... Line 307...
302
	}
307
	}
303
	
-
 
-
 
308
	
-
 
309
	private function remplacerSection($titre_section, $section_remplacement, $corps) {
-
 
310
		$titre_section = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $titre_section);
-
 
311
		$section_remplacement = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $section_remplacement);
304
	private function remplacerSection($titre_section, $section_remplacement, $corps) {
312
		$corps = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $corps);
305
				
313
			#die(var_dump($titre_section, $section_remplacement, $corps));
306
		// insertion d'un saut de ligne pour empêcher de casser le titre, lorsque le titre
314
		// insertion d'un saut de ligne pour empêcher de casser le titre, lorsque le titre
307
		// suivant vient directement après la section, sans saut de ligne ni espace
315
		// suivant vient directement après la section, sans saut de ligne ni espace
308
		$section_remplacement = "\n".$section_remplacement."\n";
316
		$section_remplacement = "\n".$section_remplacement."\n";
309
		$section_page_originale = $this->getSectionParTitre($corps, $titre_section, true);
317
		$section_page_originale = $this->getSectionParTitre($corps, $titre_section, true);
310
		$infos_section = $this->getInformationsPositionSection($titre_section, $corps);
-
 
-
 
318
		$infos_section = $this->getInformationsPositionSection($titre_section, $corps);
311
		$nb_caracteres_a_remplacer = mb_strlen($section_page_originale) - $infos_section['longueur_titre'];
319
		$nb_caracteres_a_remplacer = strlen($section_page_originale) - $infos_section['longueur_titre'];
312
		
-
 
-
 
320
	#die(var_dump($corps, $section_remplacement, $infos_section['debut'], $nb_caracteres_a_remplacer));
313
		$nouveau_contenu = substr_replace($corps, $section_remplacement, $infos_section['debut'], $nb_caracteres_a_remplacer);
321
		$nouveau_contenu = substr_replace($corps, $section_remplacement, $infos_section['debut'], $nb_caracteres_a_remplacer);
314
			
322
#	die(var_dump($nouveau_contenu));		
Line 315... Line 323...
315
		return $nouveau_contenu;
323
		return $nouveau_contenu;
Line 316... Line 324...
316
	}
324
	}
317
	
325
	
318
	private function ecrirePage($nom_page, $contenu) {
-
 
-
 
326
	private function ecrirePage($nom_page, $contenu) {
319
		
327
		
320
		$texte_encode = $this->convertirTexteAppliVersEncodageWiki($contenu);
328
		$texte_encode = $this->convertirTexteAppliVersEncodageWiki($contenu);
Line 321... Line 329...
321
		$ecriture = $this->wiki->SavePage($nom_page, $texte_encode, "", true);
329
		$ecriture = $this->wiki->SavePage($nom_page, $texte_encode, "", true);
322
		
330
	// SavePage renvoi 0 en cas de succès	
Line 360... Line 368...
360
		}
368
		}
361
		return $texte;
369
		return $texte;
362
	}
370
	}
Line 363... Line 371...
363
	
371
	
364
	private function convertirTexteAppliVersEncodageWiki($texte) {
372
	private function convertirTexteAppliVersEncodageWiki($texte) {
365
		if (Config::get('encodage_appli') != Config::get('encodage_wiki')) {
373
		if (false && Config::get('encodage_appli') != Config::get('encodage_wiki')) {
366
			$texte = mb_convert_encoding($texte,Config::get('encodage_wiki'),Config::get('encodage_appli'));
374
			$texte = mb_convert_encoding($texte,Config::get('encodage_wiki'),Config::get('encodage_appli'));
367
		}
375
		}
368
		return $texte;
376
		return $texte;
369
	}
377
	}
370
}	
-
 
371
?>
378
}	
-
 
379
?>