Example #1
0
<?php
Example #2
0
function typoenluminee_pre_typo($texte) {
	static $local_barre_typo_pas_de_fausses_puces = null;
	static $chercher_raccourcis;
	static $remplacer_raccourcis;
	global $debut_italique, $fin_italique;
	if (!isset($GLOBALS['barre_typo_pas_de_fork_typo']) OR $GLOBALS['barre_typo_pas_de_fork_typo'] === true)
		return $texte;

	if ($local_barre_typo_pas_de_fausses_puces===NULL){
		// remplace les fausses listes a puce par de vraies
		// (recherche en debut de lignes - suivi d'un ou plusieurs caracteres blancs, en mode multiligne)
		// Mettre $GLOBALS['barre_typo_preserve_puces'] = true; dans mes_options.php pour ne pas avoir ce comportement
		if (!function_exists('lire_config')) {
			$local_barre_typo_pas_de_fausses_puces = $GLOBALS['barre_typo_pas_de_fausses_puces'];
		} else {
			$local_barre_typo_pas_de_fausses_puces = (lire_config('bte/puces','Non') == 'Oui')?true:false;
		}
		tester_variable('debut_italique', "<i$class_spip>");
		tester_variable('fin_italique', '</i>');
		
		$chercher_raccourcis = array(
			/* 9 */ 	"/(?<![{\d])[{](?![{\d])/S", // Expressions complexes car on n'a pas encore traite les titres ici
			/* 10 */	"/(?<![}\d])[}](?![}\d])/S", // puisque italique utilisent les memes caracteres en nombre inferieur
			/* 13 */ 	"/<-->/S",
			/* 14 */ 	"/-->/S",
			/* 15 */ 	"/<--/S",
			/* 16 */ 	"/<==>/S",
			/* 17 */ 	"/==>/S",
			/* 18 */ 	"/<==/S",
			/* 19 */ 	"/\(c\)/Si",
			/* 20 */ 	"/\(r\)/Si",
			/* 21 */ 	"/\(tm\)/Si",
			/* 22 */ 	"/\.\.\./S",
		);
	
		$remplacer_raccourcis = array(
			/* 9 */ 	$debut_italique,
			/* 10 */	$fin_italique,
			/* 13 */ 	"&harr;",
			/* 14 */ 	"&rarr;",
			/* 15 */ 	"&larr;",
			/* 16 */ 	"&hArr;",
			/* 17 */ 	"&rArr;",
			/* 18 */ 	"&lArr;",
			/* 19 */ 	"&copy;",
			/* 20 */ 	"&reg;",
			/* 21 */ 	"&trade;",
			/* 22 */ 	"&hellip;",
		);
	}

	if ($local_barre_typo_pas_de_fausses_puces === true) {
		$texte =  preg_replace('/^-\s+/m','-* ',$texte);
	}

	$texte = preg_replace($chercher_raccourcis, $remplacer_raccourcis, $texte);
	
	/*
		Cas particulier pour le gras
		Il ne faut pas traiter la mise en gras ici si le texte contient un tableau
	*/
	if (!preg_match(',.(\|([[:space:]]*{{[^}]+}}[[:space:]]*|<))+.,sS', $texte)) {
		$chercher_raccourcisg = array(
			/* 7 */ 	"/(?<![{])[{][{](?![{])/S", // Expressions complexes car on n'a pas encore traite les titres ici
			/* 8 */ 	"/(?<![}])[}][}](?![}])/S" // En gros, verification qu'on n'est pas a l'interieur d'un titre
		);
		$remplacer_raccourcisg = array(
			/* 7 */ 	"<strong class=\"spip\">",
			/* 8 */ 	"</strong>"
		);
		$texte = preg_replace($chercher_raccourcisg, $remplacer_raccourcisg, $texte);
	}
	return $texte;
}