Syntaxe

La forme générique de la directive (:if:) est

(:if cond param:)

où "cond" nomme une condition du tableau $Conditions à tester, et "param" est un paramètre ou autre argument contenu dans $condparm dans le test. Par exemple, ce qui suit (dans config.php) ajoute (:if group GroupName:) en tant que balise :

$Conditions['group'] = "FmtPageName('\$Group',\$pagename)==\$condparm";

On peut alors utiliser la balise suivante :

(:if group PmWiki:) Ce texte n'apparaîtra que dans le groupe "PmWiki" (:if:)

La forme négative de (:if:) est de plus automatiquement gérée, ainsi :

(:if ! group PmWiki:) Ce texte apparaît partout sauf dans le groupe "PmWiki"(:if:)

N'importe quel (:if:) termine automatiquement le précédent :

(:if group PmWiki:) Faire ceci dans le groupe PmWiki
(:if group Main:) Faire ceci dans le groupe Main
(:if:) Et ceci dans tous les groupes

Tout ce qui reste à faire maintenant est d'avoir un bon jeu de $Conditions. Le test d'appartenance à des groupes en est un bon, nous pouvons aussi vouloir créer quelque chose pour des recherches de motifs (pattern matching) génériques sur les noms de pages.

(:if match ^PmWiki\. :) N'apparaît que dans le groupe PmWiki
(:if match RecentChanges$ :) Partout sauf dans les pages RecentChanges?
(:if ! match ^(Main|PmWiki)\. :) Tous les groupes sauf Main et PmWiki
(:if:) encore - tous les groupes

$Conditions peut aussi être conditionnel sur d'autres éléments; par exemple la date, l'heure, le jour de la semaine, etc.

Exemples avec des balises de condition / $Conditions:

(:if group NOMGROUPE:) - affiche le texte qui suit seulement si groupe = nomgroupe spécifié :
$Conditions['group'] = "FmtPageName('\$Group',\$pagename)==\$condparm";

(:if author NOMAUTEUR:) - affiche le texte qui suit seulement si auteur = nomauteur spécifié :
$Conditions['author'] = "\$GLOBALS['Author']==\$condparm";
ne fonctionnera que si l'auteur est connecté ou a déjà rempli son nom dans le champ auteur pendant l'édition d'une page, c'est à dire que la variable $Author doit être initialisée.

J'aimerais aussi savoir si c'est possible de vérifier qu'un utilisateur est authentifié comme "éditeur" ou comme "administrateur" (au niveau des permissions pour l'édition des pages wiki), et alors soit cacher, soit afficher le lien "Editer page" suivant que l'utlisateur a le droit ou non d'éditer la page - Steven Leite (Nov 25/04)


Traduction de ConditionalMarkup - Page originale sur PmWiki:PmWikiFr.BaliseDeCondition