JLuc a écrit :
Pat a écrit :
Sur un site, j'utilise le raccourcis [tarif:FormuleX] qui est remplacé par la globale $tarif['FormuleX']
Sur un autre site, j'ai une lame qui recense toutes les variables
variables spip ou 'locales' ?
Variables php dans ce cas.
Voici le code.
Il donne accès :
1. à toutes les constantes PHP du style :
define('maConstante', 'toto');
grâce au raccourci : [def:maConstante]
2. au tableau global $tarifs :
$GLOBALS["tarifs"] = array(
"Formule1" = 10,
"Formule2" = 20,
);
grâce au raccourci [tarif:Formule1] par exemple.
Attention, ce code est très ouvert, il est livré à titre d'exemple et doit être adapté à chaque cas particulier.
############## COUTEAU SUISSE : LAME PERSO #################
// Installation d'une nouvelle lame personnalisee
$GLOBALS['mes_outils']['constantes_php'] = array(
'nom' => 'Constantes PHP du site',
'description' => 'De nouveaux raccourcis pour accéder aux constantes du site.',
'auteur' => 'Pat',
'categorie' => 'typo-racc',
'pipeline:pre_typo' => 'constantes_stage_pre_typo',
'pipeline:nettoyer_raccourcis_typo' => 'constantes_php_nettoie',
);
// on nettoie les raccourcis
function constantes_php_nettoie($texte) {
return constantes_php_pre_typo($texte);
}
// On indique le nouveau raccourci
function constantes_php_raccourcis() {
return 'Constantes PHP : <b>[def:maconstante]</b> ou <b>[tarif:maformule]</b>';
}
// Fonction de remplacement
function constantes_php_rempl($texte) {
$texte = preg_replace(',\[tarif:(.*?)\],e', '$GLOBALS["tarifs"]["$1"]', $texte);
return preg_replace(',\[def:(.*?)\],e', '$1', $texte);
}
// Fonction de pipeline
function constantes_php_pre_typo($texte) {
if (strpos($texte, '[')===false) return $texte;
// appeler constantes_php_rempl() une fois que certaines balises ont ete protegees
return cs_echappe_balises('', 'constantes_php_rempl', $texte);
}
Pat