Google Chercher dans diml.org
[ english ]

Table des matières
Importation de templates
La création et l'utilisation de variables
Variables - définition
L'équivalence templates - variables
Variables courantes en DIML
Résumé  Dernières infos
 Une application du composant  WCT_NEWS  
>> Haut de la page

Simples variables ou super éléments

Il existe deux façons principales d'utiliser les templates. Chaque développeur trouvera en plus ses propres astuces et sa propre méthodologie d'utilisation de ce concept. La première façon est de mettre dans des templates des séquences complètes de code, constituant des "parties" de document: les 'super-elements'. L'autre est de paramétrer finement (au niveau de la chaîne ou séquence de caractères) la construction d'une valeur à partir de 'templates-variables' dont la longueur reste limitée.

L'utilisation des templates comme super-éléments

L'une des utilisations premières du DIML est la factorisation de fragments important de HTML. On factorise ainsi une structure reproductible dans une page Web, alors que les variables sont plutôt utilisées comme "paramètres" d'une séquence HTML. Des exemples de ces deux utilisations sont données par la suite.

Dans ce cas, les templates contiennent une portion importante de code, et sont principalement définis à l'aide de la balise <TEMPLATE>

Une bonne gestion des templates, de leur découpage et de leur organisation physique est alors le garant de la maniabilité du projet. Ce qui suit expose quelques unes des syntaxes et fonctionnalités les plus utiles pour gérer des macro-blocs de HTML.

Importation de templates

L'instruction DIML import permet d'importer un template externe dans la table de fragments. Sa syntaxe est similaire à l'appel de template explicite :

<%import file="un_chemin/un_fichier.diml#un_template" %>

A la différence de l'instruction %template ou d'un appel implicite de template local, le template importé n'est pas inséré comme contrepartie de l'instruction. La contrepartie de l'instruction %importtoujours nulle. Son effet se limite à rendre disponible les templates importés au même titre que les autres variables locales.

L'import ciblé sur un template local n'a donc aucun intérêt. L'URI du template sera donc toujours une URI extérieure au fichier courant.

Pour pouvoir utiliser un fichier DIML comme une base de templates, la syntaxe précédente a été généralisée, permettant d'importer un groupe (ou la totalité) des templates d'un fichier. Les templates peuvent être sélectionnés par leur id. Les méta-caractères suivants sont reconnus :

  • * une chaîne quelconque y compris la chaîne vide
  • ? au plus une occurrence d'un caractère quelconque
  • . une occurrence et une seule d'un caractère quelconque
  • + le caractère précédent au moins une fois

Par exemple, l'expression :

<%import file="un_chemin/un_fichier.diml#*" %>

importe la totalité des templates définis dans le fichier un_fichier.diml.

La création et l'utilisation de variables

Variables - définition

On appelle "variable" un template dont le contenu est court. Une variable contient le plus souvent une valeur textuelle simple, mais ce n'est pas exclusif. La frontière entre les notions de "variable" et de "template" est floue et reste à l'appréciation de chaque développeur. En DIML, le concept de variable est toujours celui d'une chaîne de caractères, comme l'induit la syntaxe.

Les syntaxes :


<%%une_variable%%> ou <% %une_variable% %>

peuvent être interprété ainsi :


<% %une_variable% %>

La syntaxe verte représente l'ouverture (et la fermeture) d'une instruction DIML. La syntaxe bleue peut se lire ainsi :

"l'expression chaîne de la variable DIML une_variable"

En effet, pour obtenir la valeur finale d'un appel DIML, la valeur effective de la variable associée au nom une_variable est d'abord convertie sous forme de chaîne, puis éventuellement traitée par des filtres de format, comme dans l'expression suivante :


<% %une_variable MAXLENGTH=4% %>

L'équivalence templates - variables

Hormis une différence de point de vue assez conceptuelle, les variables et les templates, une fois détectés par le processeur ont le même statut.

A quelques détails près, les expressions :


<TEMPLATE ID="une_variable">
Le contenu d'une variable
</TEMPLATE>

et :


<%set %une_variable% = "Le contenu d'une variable" %>

donnent un résultat identique lorsque la variable %une_variable% est appelée.

Une différence essentielle détermine quelle forme utiliser. La définition d'un template est résolue AVANT que le contenu principal de la page DIML soit considéré. Par contre, l'existence des variables n'est effective qu'une fois les instruction %set exécutées. Sur le plan de la syntaxe d'appel, variables et templates représentent des entités équivalentes.

Il existe d'autre différences dont nous parlerons plus avant.

Variables courantes en DIML

Le DIML transfère automatiquement un certain nombre de valeurs disponibles au moment du traitement de la page. Par exemple, toutes les variables d'environnement du serveur sont transférées dans l'espace de noms DIML sous forme de variables. Le tableau ci-dessous donne une partie de la liste des variables CGI :

<%%ENV::HTTP_ACCEPT%%>*/*
<%%ENV::HTTP_ACCEPT_ENCODING%%>gzip, br
<%%ENV::HTTP_CDN_LOOP%%>cloudflare
<%%ENV::HTTP_CF_CONNECTING_IP%%>52.14.126.74
<%%ENV::HTTP_CF_IPCOUNTRY%%>US
<%%ENV::HTTP_CF_RAY%%>876c24490aa629dc-ORD
<%%ENV::HTTP_CF_VISITOR%%>{"scheme":"https"}
<%%ENV::HTTP_CONNECTION%%>close
<%%ENV::HTTP_HOST%%>diml.sourceforge.net
<%%ENV::HTTP_REFERER%%>http://diml.sourceforge.net/support/tutorial/parcours1/07_variables_fr.dim?session=&order=3§ion=1
<%%ENV::HTTP_TRUE_CLIENT_IP%%>52.14.126.74
<%%ENV::HTTP_USER_AGENT%%>Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
<%%ENV::HTTP_X_FORWARDED_FOR%%>52.14.126.74, 52.14.126.74
<%%ENV::HTTP_X_FORWARDED_PROTO%%>http
<%%ENV::HTTP_X_REAL_IP%%>52.14.126.74
<%%ENV::HTTP_X_REMOTE_ADDR%%>52.14.126.74

Pour faciliter son portage et la gestion de ses ressources, ce site utilise des variables "normalisées" paramétrant toutes les URL. Ces variables sont si utiles que leurs noms ont été "réservés" (Voir Les noms réservés). En voici quelques unes :

<%%SITE_ROOT_URL%%>http://diml.sourceforge.net/
<%%IMAGES_ROOT_URL%%>http://diml.sourceforge.net/graphics/
<%%SITE_ROOT_PATH%%>/home/groups/d/di/diml/htdocs/

Ces variables sont déclarées sous forme de templates, mais auraient pu l'être par affectations de variables.

Résumé

  • Les variables sont créées par l'instruction %set.
  • Les templates sont créés par l'élément <TEMPLATE>.
  • Une fois créés, templates et variables peuvent être rappelées indistinctement.
  • On appellera communément variable une définition disposant d'une valeur courte, et ayant en général peu ou pas du tout de balises ou d'éléments DIML.
  • On appelera communément "template" une définition contenant une séquence importante de code source DIML.
  • L'importation permet d'appeler des templates d'autres fichiers.
    précédent sommaire suivant


    All material is copyleft V.G. FREMAUX (EISTI France) 1999 to 2003 except explicitly mentioned