Initiation aux variables

Les variables sont un élément essentiel du processus de publication. Durant ce processus elles sont substituées par leur valeur ou leur valeur transformée. Les variables sont disponibles dans un espace que l'on appelle le contexte, chaque marqueur de contrôle créant son propre contexte tout en héritant du contexte précédent.

Les variables sont le plus souvent organisées sous forme de tableaux associatifs. Par exemple, le tableaux associatif site dispose de plusieurs propriétés, comme par exemple la propriété url qui contient l'adresse relative au nom de domaine de notre site.

On peut l'afficher comme ceci :

<p>URL de notre site : <b>{site.url}</b></p>

ce qui donnera après la publication :

<p>URL de notre site : <b>/blog/</b></p>

Chaines

Il est également possible d'obtenir les valeurs de propriétés enfouies dans des tableaux associatifs ou des objets. Imaginons que l'on souhaite afficher le nom de la ville dans laquelle on se trouve, et que pour cela il nous faille partir du tableau associatif terre. Dans l'hypothèse hypothétique qu'un tel tableau associatif existe on pourrait imaginer la séquence de propriétés suivante :

<p>Votre ville est : {terre.continent.pays.region.departement.ville}</p>

Transformation

Il est possible de transformer la valeur obtenue. Pour cela reprenons l'exemple utilisant l'URL de notre site. Imaginons maintenant que pour une raison étrange et mystérieuse nous souhaitions afficher cette adresse en majuscules. Il suffit pour cela d'utiliser la commande toupper() comme dans l'exemple suivant :

<p>URL de notre site : <b>{site.url.upper()}</b></p>

ce qui donnera après publication :

<p>URL de notre site en majuscules : <b>/BLOG/</b></p>

Pour une raison pratique et merveilleuse, les fonctions disponibles sous PHP (ainsi que celles ajoutées lors de l'exécution) peuvent être utilisées. Attention cependant : leur premier paramètre sera toujours la valeur de la variable ou le résultat de la dernière transformation (nous verrons plus tard qu'il est possible d'enchainer les transformations).

Il existe également quelques particularités concernant l'utilisation du nom des fonctions. En effet, la fonction toupper() n'existe pas en PHP, par contre la fonction strtoupper() est disponible. Quel-est donc cette magie ?

Complétion

Lorsqu'une fonction n'existe pas, WdPublisher va essayer de trouver un équivalent. Par exemple si la valeur est une chaine de caractères il va ajouter le préfixe str au nom de la fonction. Si la fonction n'existe toujours pas il essaiera avec le préfixe str_. Il est ainsi possible d'utiliser aussi bien toupper() (plus joli) que strtoupper() (moins joli).

Les chaines de caractères ne sont pas les seules à bénéficier de ce traitement. En effet, si la valeur est un tableau associatif et que la fonction n'existe pas, le préfixe array_ sera utilisé.

Transformation en chaine

Tout comme il est possible d'enchainer des propriétés afin d'obtenir une valeur enfouie dans un ensemble de tableaux associatifs, il est possible d'enchainer les fonctions de transformation tout aussi simplement :

<p>URL de notre site : <b>{site.url.upper().suffle()}</b></p>

donnera après publication :

<p>URL de notre site dans le désordre : <b>G/OB/L</b></p>

Objets et méthodes

Les données gérées par WdPublisher sont organisées sous la forme d'objets. Par exemple, les articles sont des objets de la classe Article, les images sont des objets de la classe Image et ainsi de suite. Certains objets comme l'objet User (Utilisateur en Anglais) disposent de méthodes qui leur sont propres. Ainsi, l'objet Article implémente la méthode getURL() qui peut être utilisée pour obtenir l'URL de l'article publié.

Imaginons la variable article contenant l'article. Pour créer un lien permanent vers cet article il suffit alors d'utiliser le code suivant :

<a href="{article.getURL()}">
Lien permanent vers notre article
</a>

ce qui donnera après publication (selon la configuration de votre site) :

<a href="/blog/wdpublisher/wdpublisher_initiation_aux_variables.html">
Lien permanent vers notre article
</a>

Conclusion

Comme nous l'avons vu, les variables sont à la fois simple d'utilisation et offre une puissance sympathique. Dans un prochain billet nous découvriront les marqueurs de contrôle, ceux qui créent les variables et manipulent les blocs de texte avec légèreté.

Laisser un commentaire

Pas de commentaire