Wikini

ActionCondition

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-54-163-20-57.compute-1.amazonaws.com
Nom de la contribution : ActionCondition
Description : Permet aux utilisateurs d'afficher des choses différentes grâce à des instructions conditionnelles
Type de contribution : Action
Fonctionne avec : WikiNi 0.4.3
Intégration technique : placez le contenu de l'archive dans './actions'
Mainteneur : LordFarquaad
Licence : GPL
Dernière version : 0.1.1-20041223 (beta)
Dernière livraison : 23/12/2004
Accès au code et mise en oeuvre : http://contributions-wikini.notredomaine.org/ActionCondition-v.0.1.1-20041223.zip
Démonstration : http://www.notredomaine.org/ActionCondition
Intégration au projet WikiNi :
Bugs : [signaler ici les bugs connus]
Mode d'emploi :
Utilisez l'action comme ceci:
L'action va vérifier la condition cond et afficher la partie then si elle est vérifiée ou la partie else (facultative) sinon.
Dans cond, vous pouvez utiliser la liste de fonctions décrites par {{condition/list}}. Vous pouvez les combiner de la façon suivante:
La casse n'a pas d'importance (sauf éventuellement dans les arguments des fonctions)

Suivant le résultat de la condition, la partie then ou else est passée au moteur wiki pour que celui l'analyse comme du texte normal. Cependant si vous voulez utiliser d'autres actions, la balise de fin d'action ("}}") pose problème car le moteur la confondra avec celle de l'ActionCondition. Pour éviter cela placez une antislash au milieu (comme ceci: "}\}"). Vous pouvez faire de même avec la balise ouvrante mais ça ne sert à rien...
De même les guillemets doubles posent problème puisqu'ils servent normalement à encadrer les arguments. Remplacez donc chaque guillemet double par deux guillemets simples.
NB.: le tracking des liens est stoppé pendant l'évaluation de l'ActionCondition, et rétabli à son ancien état après.

Les fonctions utilisables doivent être placées dans le dossier './actions/ConditionFunctions'. Il n'existe encore que 4 fonctions utilisables dans les conditions:
Pour obtenir de l'aide sur ces fonctions, utilisez la commande
Pour obtenir la liste des fonctions avec leur aide, utilisez:
Pour établir une liste de toutes les fonctions sous forme de liens:
Vous trouverez plus de détails dans l'entête du fichier condition.php

Applications possibles:
Important : l'ActionCondition ne protège en aucun cas l'accès aux pages, elle ne sert qu'à masquer certaines choses et à en montrer d'autres...

Notes aux développeurs : modifiez l'ActionCondition "à vos risques et périls", le code est assez fragile, notemment à cause des nombreux appels récursifs (et réciproques) des fonctions mises en jeux... Modifier la moindre chose peut donc parfois faire apparaître des boucles infinies...
Si vous avez des suggestions d'optimisation elles sont les bienvenues. Je pense qu'il y a moyen de travailler en une seule étape plutôt qu'en deux, ce qui serait en toute logique plus performant... seulement au niveau du code ce serait probablement beaucoup moins clair...
Par contre la gestion des erreurs me paraît assez bonne: si une erreur se produit dans un appel récursif, elle affiche un message d'erreur (convivial) et la valeur NULL est retransmise jusqu'à l'origine pour empêcher la poursuite de l'exécution de l'action.

Changelog

2004-12-23 - version 0.1.1
2004-12-07 - version 0.1.0

Votre avis m'intéresse !

J'hésite un peu à la poster dans les ContributionsClesEnMain, car pour l'instant on ne sait pas en faire grand chose, il faut encore programmer des fonctions conditionnelles... -- LordFarquaad

A mon avis, cette action est bien trop complexe pour des utilisateurs "normaux" de WikiNi. Je pense qu'il serait plus interressant de coder les conditions dans les actions elles-mêmes, par exemple pour l'affichage de l'action {{usersettings}} si l'utilisateur est loggé ou non. En tout cas, c'est un bel effort de participation! --GarfieldFr

Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]