Fonction balise_NOM_stat()

Si elle existe, la fonction balise_NOM_stat() va permettre de calculer les arguments à transmettre à la fonction suivante (_dyn()). En son absence, seuls les arguments indiqués dans la fonction calculer_balise_dynamique() sont transmis (dans l’ordre du tableau). La fonction stat, va permettre de transmettre en plus des paramètres issus d’arguments ou des filtres transmis à la balise.

Le fonction reçoit 2 arguments : $args et $context_compil.

  • $args contient les arguments imposés par la fonction calculer_balise_dynamique(), cumulés avec les arguments transmis à la balise.
  • $context_compil est un tableau d’informations sur la compilation effectuée, comportant 5 entrées (nom du squelette, nom du fichier compilé, nom de la boucle éventuelle où figure la balise, numéro de ligne, langue), suivies éventuellement des éléments du tableau optionnel fournis par la fonction principale de la balise dynamique (4e argument de la fonction calculer_balise_dynamique).

Exemple

Reprenons l’exemple de #LOGIN_PUBLIC : elle fonctionne avec 1 ou 2 arguments : le premier est l’URL de redirection après s’être logé, le second est le login par défaut de la personne à loger. Les deux sont optionnels.

On peut donc passer à la balise un argument de redirection : #LOGIN_PUBLIC{#SELF} ou #LOGIN_PUBLIC{#URL_ARTICLE{8}}, mais en absence d’argument, on souhaite que la redirection soit faite sur un paramètre d’environnement url s’il existe. On avait demandé à récupérer cet argument, il se trouve dans $args[0]. $args[1] lui contient le contenu du premier argument donné à la balise (il s’ajoute dans le tableau $args après la liste des arguments automatiquement récupérés). Ceci donne :

function balise_LOGIN_PUBLIC_stat($args, $context_compil) {
	return array(
		isset($args[1]) 
			? $args[1] 
			: $args[0],
		(isset($args[2]) 
			? $args[2] 
			: '')
	);
}

Si $args[1] est présent on le transmet, sinon $args[0]. De même si $args[2] est présent, on le transmet, sinon ’’.

La fonction _dyn() recevra ces 2 arguments transmis :

function balise_LOGIN_PUBLIC_dyn($url, $login) {
...
}

Auteur Matthieu Marcillaud Publié le : Mis à jour : 12/03/23

Traductions : English, français