[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