Changeset 43782 in spip-zone


Ignore:
Timestamp:
Jan 22, 2011, 3:12:29 AM (9 years ago)
Author:
patfr@…
Message:

Function cs_traitements() : ajout d'un paramètre permettant l'exclusion d'un traitement particulier sur une balise particuliere

Exemple qui empêche l'applicaton du glossaire : [(#TEXTE*|cs_traitements{TEXTE,articles,cs_glossaire})]

Attention, cela ne concerne que les outils qui agissent au niveau du traitement d'une balise.

Rappel :
function cs_traitements($texte, $nom_champ='NULL', $type_objet='NULL', $exclusions=NULL)
filtre appliquant les traitements SPIP d'un champ (et eventuellement d'un type d'objet) sur un texte
(voir la fonction champs_traitements($p) dans : public/references.php)
=> permet d'utiliser les balises etoilees : #TEXTE*|mon_filtre|cs_traitements{TEXTE,articles}
ce mecanisme est a preferer au traditionnel #TEXTE*|mon_filtre|propre
cs_traitements() consulte simplement la globale $table_des_traitements et applique le traitement adequat
$exclusions est une chaine ou un tableau de filtres a exclure du traitement

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/couteau_suisse/outils/cout_fonctions.php

    r43233 r43782  
    8484// ce mecanisme est a preferer au traditionnel #TEXTE*|mon_filtre|propre
    8585// cs_traitements() consulte simplement la globale $table_des_traitements et applique le traitement adequat
    86 function cs_traitements($texte, $nom_champ='NULL', $type_objet='NULL') {
     86// $exclusions est une chaine ou un tableau de filtres a exclure du traitement
     87function cs_traitements($texte, $nom_champ='NULL', $type_objet='NULL', $exclusions=NULL) {
    8788        global $table_des_traitements;
    8889        if(!isset($table_des_traitements[$nom_champ])) return $texte;
     
    9091        if(is_array($ps)) $ps = $ps[isset($ps[$type_objet]) ? $type_objet : 0];
    9192        if(!$ps) return $texte;
     93        // retirer les filtres a exclure
     94        if($exclusions!==NULL) $ps = str_replace($exclusions, 'cs_noop', $ps);
    9295        // remplacer le placeholder %s par le texte fourni
    9396        eval('$texte=' . str_replace('%s', '$texte', $ps) . ';');
    9497        return $texte;
    9598}
     99function cs_noop($t='',$a=NULL,$b=NULL,$c=NULL) { return $t; }
    96100
    97101?>
Note: See TracChangeset for help on using the changeset viewer.