[pmwiki-users-fr] page text variable

Petko Yotov 5ko at 5ko.fr
Lun 14 Déc 02:14:30 PST 2020


Alors celui-ci serait plus simple avec une règle de conversion (Markup) 
qui intercepterait la variable spécifique et réécrirait le texte désiré 
à sa place.


   Markup('ReelMaterialite', '<{$var}', 
'/\\{(\\S*)\\$:ReelMaterialite\\}/', 'ReelMaterialite');
   function ReelMaterialite($m) {
     # nom des variables, dans le bon ordre
     $ptv = explode(" ", "Matiere Presentation Valeur Repartition 
Utilisation Materialite");
     $out = "|| ";
     $pn = $m[1];
     foreach($ptv as $v) {
       $out .= " {" . $pn. "\$:" . $v . "} ||";
     }
     return $out;
   }

La fonction trouve {Groupe.Nom$:ReelMaterialite} et construit le texte
   "|| {Groupe.Nom$:Matiere} ||  {Groupe.Nom$:Presentation} ||
    {Groupe.Nom$:Valeur} || {Groupe.Nom$:Repartition} ||
    {Groupe.Nom$:Utilisation} || {Groupe.Nom$:Materialite} ||"

qui est ensuite traité/transformé par PmWiki normalement.

Avec ça, la variable (:ReelMaterialite:...:) définie dans une page 
serait ignorée.

Je ne suis pas certain que ça marcherait dans une "PageList template" 
avec le raccourci {=$:ReelMaterialite} -- sinon on peut utiliser 
{{=$FullName}$:ReelMaterialite} à sa place.

Petko


On 14/12/2020 10:36, Pierre-Marie Carette wrote:
> Grand merci !
> 
>> Le 14 déc. 2020 à 10:06, Petko Yotov <5ko at 5ko.fr> a écrit :
>> $DefaultUnsetPageTextVars['VarC'] = "{\$:VarA}\n{\$:VarB} »;
>  ça me crevait les yeux !
> 
> Mais
> 
>>> Et malheureusement seulement pour la page en cours, c'est à dire
>>> {AutrePage$:VarC} ne marchera pas.
>> 
>> Le problème :
> 
> Dans chaque page je crée les variables modifiables
> 
> (:Matiere: Matière :)
> (:Presentation: Présentation :)
> (:Valeur: Valeur:)
> (:Repartition: Répartition:)
> (:Utilisation: Utilisation:)
> Je peux partout y faire mention par {Groupe.Nom$:Matiere}...
> 
> Je construit dans chaque page la variable-synthèse
> 
> (:ReelMaterialite: ||  {$:Matiere}  || {$:Presentation} || {$:Valeur}
> || {$:Repartition} || {$:Utilisation} || {$:Materialite} ||:)
> 
> Je peux partout y faire mention par {Groupe.Nom$:ReelMaterialite}
> 
> Cela m’oblige à répéter cette définition dans chaque page (et
> j’ai 27 définition de variables-synthése)
> Problème : répétition= lourdeur=illisibilité
> 
> But de. la question : Mettre la définition de ReelMaterialité dans
> config
> 
> Ca ressemble à la deuxième proposition
> 
>>> utiliser la fonction PageTextVar($pagename, 'VarA') dans une
>>> fonction $PostConfig ou après l'inclusion de pgcust.php.
> 
> J’en étais là (PageTextVariables) mais ça dépasse mes
> compétences !
> Merci
> 
> Pierre-Marie CARETTE (FidelioEspoir)



Plus d'informations sur la liste de diffusion pmwiki-users-fr