Pourquoi ne peut-on pas insérer du code Smarty dans la bannière des pages de Piwigo ?

Hors-sujet : Indiquer l’url de la galerie est un peu étrange, devoir coder soi-même des balises en réutilisant en général ces mêmes informations relève d’une logique perturbante.
Revenons à la question initiale : vos indications sont d’abord enregistrées dans la base de données, puis lors de la publication d’une page publique ces données seront placées dans une variable Smarty : $PAGE_BANNER et c’est cette variable qui se retrouve dans le header.tpl utilisé par le thème de votre site.
Comment pourrions-nous simplifier ceci ?
Nous avons déjà évoqué la solution, mais elle est passée inaperçue, je ne cherchais pas à la mettre en évidence.
Dans « Concevoir des templates évolutifs » c’est presque la même solution.
Voyons cela avec un cas précis.
Imaginons que nous voulions coder:
En utilisant des templates-extensions.
Dans ./template-extension/ nous allons créer un page_banner.tpl avec :
Et toujours dans ./template-extension/ nous allons créer un header.tpl avec :
Bien entendu on activera le template-extension/header.tpl
Comment ça fonctionne ?
Quand la page sera demandée, l’header.tpl sera sollicité. Celui-ci étant substitué par celui du répertoire template-extension, la première chose réalisée sera l’include de page_banner.tpl. Cependant au lieu de présenter immédiatement le résultat sera affecté à la variable BANNER (assign=BANNER).
Ensuite nous avons un assign var= (facultatif) qui n’est là que pour le cas où nous voudrions utiliser le texte initial de la « Bannière des pages » ultérieurement dans un autre template.
Enfin on sollicite le header par défaut (pour rester évolutif) mais cette fois nous indiquons PAGE_BANNER=$BANNER, c’est à dire que nous changeons le contenu de $PAGE_BANNER par ce que nous avions obtenu de l’include de page_banner.tpl.
Ce n’est que du Smarty tout à fait standard. C’est simple et sympa, bref c’est Smarty.
