texte : mettre en exposant le texte selectionne
* texte : mettre en indice le texte selectionne
*
* Styles pour les encadrements a rajouter dans votre feuille de style :
* .texteencadre-spip {
* background: #FFE;
* border-bottom: 2px solid #999999;
* border-left: 1px solid #EEEEEE;
* border-right: 2px solid #999999;
* border-top: 1px solid #EEEEEE;
* padding: .25em;
* }
* .caractencadre-spip {
* border: 1px solid #666;
* padding: 0px .5em 0px .5em;
* }
*
*/
// Gerer les variables de personnalisation, fonction depreciee sous SPIP 2.0
// A suivre sur la methode...
if(!function_exists('tester_variable')) {
function tester_variable($var, $val){
if (!isset($GLOBALS[$var])) $GLOBALS[$var] = $val;
}
}
function typoenluminee_pre_propre($texte) {
if(!$texte) return $texte;
static $chercher_raccourcis=NULL;
static $remplacer_raccourcis=NULL;
if ($chercher_raccourcis===NULL) {
// tous les elements block doivent etre introduits ici
// pour etre pris en charge par paragrapher
// Definition des differents intertitres possibles, si pas deja definies
if ((!function_exists('lire_config')) OR (isset($GLOBALS['config_intertitre']))) {
tester_variable('debut_intertitre', '
');
tester_variable('fin_intertitre', '
');
tester_variable('debut_intertitre_2', '');
tester_variable('fin_intertitre_2', '
');
tester_variable('debut_intertitre_3', '');
tester_variable('fin_intertitre_3', '
');
tester_variable('debut_intertitre_4', '');
tester_variable('fin_intertitre_4', '
');
tester_variable('debut_intertitre_5', '');
tester_variable('fin_intertitre_5', '');
} else {
$GLOBALS['debut_intertitre'] = lire_config('bte/titraille1open','');
$GLOBALS['fin_intertitre'] = lire_config('bte/titraille1close','
');
$GLOBALS['debut_intertitre_2'] = lire_config('bte/titraille2open','');
$GLOBALS['fin_intertitre_2'] = lire_config('bte/titraille2close','
');
$GLOBALS['debut_intertitre_3'] = lire_config('bte/titraille3open','');
$GLOBALS['fin_intertitre_3'] = lire_config('bte/titraille3close','
');
$GLOBALS['debut_intertitre_4'] = lire_config('bte/titraille4open','');
$GLOBALS['fin_intertitre_4'] = lire_config('bte/titraille4close','
');
$GLOBALS['debut_intertitre_5'] = lire_config('bte/titraille5open','');
$GLOBALS['fin_intertitre_5'] = lire_config('bte/titraille5close','');
}
tester_variable('toujours_paragrapher', false);
global $debut_intertitre, $fin_intertitre;
global $debut_intertitre_2, $fin_intertitre_2;
global $debut_intertitre_3, $fin_intertitre_3;
global $debut_intertitre_4, $fin_intertitre_4;
global $debut_intertitre_5, $fin_intertitre_5;
$chercher_raccourcis=array();
$remplacer_raccourcis=array();
/* 9b */ $chercher_raccourcis[]="/(^|[^{])[{][{][{]\*\*\*\*\*(.*)[}][}][}]($|[^}])/SUms";
/* 9 */ $chercher_raccourcis[]="/(^|[^{])[{][{][{]\*\*\*\*(.*)[}][}][}]($|[^}])/SUms";
/* 7 */ $chercher_raccourcis[]="/(^|[^{])[{][{][{]\*\*\*(.*)[}][}][}]($|[^}])/SUms";
/* 5 */ $chercher_raccourcis[]="/(^|[^{])[{][{][{]\*\*(.*)[}][}][}]($|[^}])/SUms";
/* 3 */ $chercher_raccourcis[]="/(^|[^{])[{][{][{]\*(.*)[}][}][}]($|[^}])/SUms";
/* 1 */ $chercher_raccourcis[]="/(^|[^{])[{][{][{](.*)[}][}][}]($|[^}])/SUms";
/* 11 */ $chercher_raccourcis[]="/\{(§|§)\{/S"; # § Pour gerer l'unicode aussi !
/* 12 */ $chercher_raccourcis[]="/\}(§|§)\}/S"; # ne pas sauvergarder ce fichier en utf8 !
/* 9b */ $remplacer_raccourcis[]="\$1\n\n$debut_intertitre_5\$2$fin_intertitre_5\n\n\$3";
/* 9 */ $remplacer_raccourcis[]="\$1\n\n$debut_intertitre_4\$2$fin_intertitre_4\n\n\$3";
/* 7 */ $remplacer_raccourcis[]="\$1\n\n$debut_intertitre_3\$2$fin_intertitre_3\n\n\$3";
/* 5 */ $remplacer_raccourcis[]="\$1\n\n$debut_intertitre_2\$2$fin_intertitre_2\n\n\$3";
/* 3 */ $remplacer_raccourcis[]="\$1\n\n$debut_intertitre\$2$fin_intertitre\n\n\$3";
/* 1 */ $remplacer_raccourcis[]="\$1\n\n$debut_intertitre\$2$fin_intertitre\n\n\$3";
/* 11 */ $remplacer_raccourcis[]="";
/* 12 */ $remplacer_raccourcis[]="";
}
// Conversion des intertitres d'enluminures type {n{titre}n}
// ou n est un nombre en intertitres avec des etoiles type {{{* (avec n etoiles)
// {1{ sera converti en {{{* ; {2{ sera converti en {{{** ; etc.
// Ne faire la recherche que s'il y a au moins un titre ancienne mode a convertir
if (strpos($texte, '{2{')!==false
OR strpos($texte, '{3{')!==false
OR strpos($texte, '{4{')!==false
OR strpos($texte, '{5{')!==false) {
$texte=preg_replace_callback ("/\{(\d)\{(.*)\}(\\1)\}/Ums",
create_function (
'$matches',
'return "{{{".str_repeat("*",$matches[1]).trim($matches[2])."}}}";'
),
$texte);
}
$texte = preg_replace($chercher_raccourcis, $remplacer_raccourcis, $texte);
return $texte;
}
function typoenluminee_post_propre($texte) {
if(!$texte) return $texte;
static $cherche1 = NULL;
static $remplace1 = NULL;
if ($cherche1===NULL) {
# Le remplacement des intertitres de premier niveau a deja ete effectue dans inc/texte.php
$cherche1 = array();
$remplace1 = array();
$cherche1[] = /* 15 */ ",\[/(.*)/\],Ums";
$cherche1[] = /* 16 */ ",\[!(.*)!\],Ums";
$cherche1[] = /* 17 */ ",\[\|(.*)\|\],Ums";
$cherche1[] = /* 19 */ ",\[\((.*)\)\],Ums";
$cherche1[] = /* 21 */ "/\[\*\*/S";
$cherche1[] = /* 21b */ "/\[\*/S";
$cherche1[] = /* 22 */ "/\*\]/S";
$remplace1[] = /* 15 */ "$1
";
$remplace1[] = /* 16 */ "$1
";
$remplace1[] = /* 17 */ "$1
";
$remplace1[] = /* 19 */ "$1
";
$remplace1[] = /* 21 */ "";
$remplace1[] = /* 21b */ "";
$remplace1[] = /* 22 */ "";
}
$texte = preg_replace($cherche1, $remplace1, $texte);
$texte = paragrapher($texte,$GLOBALS['toujours_paragrapher']); // il faut reparagrapher a cause des raccourcis typo que l'on a ajoute (block div)
return $texte;
}
function typoenluminee_pre_typo($texte) {
if(!$texte) return $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_pas_de_fausses_puces'] = true; dans mes_options.php pour avoir ce comportement
if (isset($GLOBALS['barre_typo_pas_de_fausses_puces'])) {
$local_barre_typo_pas_de_fausses_puces = $GLOBALS['barre_typo_pas_de_fausses_puces'];
} else {
if (function_exists('lire_config')) {
$local_barre_typo_pas_de_fausses_puces = (lire_config('bte/puces','Non') == 'Oui')?true:false;
}
}
global $class_spip;
tester_variable('debut_italique', "");
tester_variable('fin_italique', '');
$chercher_raccourcis = array(
/* 9 */ "/(?','↔',$texte);
$texte = str_replace('-->','→',$texte);
$texte = str_replace('<--','←',$texte);
$texte = str_replace('<==>','⇔',$texte);
$texte = str_replace('==>','⇒',$texte);
$texte = str_replace('<==','⇐',$texte);
$texte = str_ireplace('(c)','©',$texte);
$texte = str_ireplace('(r)','®',$texte);
$texte = str_ireplace('(tm)','™',$texte);
$texte = str_replace('...','…',$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 */ "/(?",
/* 8 */ ""
);
$texte = preg_replace($chercher_raccourcisg, $remplacer_raccourcisg, $texte);
}
return $texte;
}
function typoenluminee_post_typo($texte) {
if(!$texte) return $texte;
if (!isset($GLOBALS['barre_typo_pas_de_fork_typo']) OR $GLOBALS['barre_typo_pas_de_fork_typo'] === true)
return $texte;
$texte = str_replace('[^','',$texte);
$texte = str_replace('^]','',$texte);
$texte = str_replace('[**','',$texte);
$texte = str_replace('[*','',$texte);
$texte = str_replace('*]','',$texte);
// Correction des & en &
$texte = preg_replace('/&([A-Za-z#0-9]*);/','@@@amp:\1:amp@@@',$texte); // echapement des entites html deja presentes
$texte = str_replace('&','&',$texte);
$texte = preg_replace('/@@@amp:([A-Za-z#0-9]*):amp@@@/','&\1;',$texte);
// Raccourci typographique
$texte = str_replace('', '', $texte);
$texte = str_replace('', '', $texte);
return $texte;
}
function typoenluminee_nettoyer_raccourcis_typo($texte){
$texte = preg_replace(',\{[1-5]\{,','',$texte);
$texte = preg_replace(',\}[1-5]\},','',$texte);
$texte = preg_replace(',\{\{\{\*+,','{{{',$texte);
$texte = str_replace('…','...',$texte);
return $texte;
}
?>