THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Jusqu'à la V2.3.5 incluse, j'écrivais dans layout.tpl un truc du genre :

{if $smarty.template === "index.html"}
...
{/if}

et {$smarty.template} me retournait bien "index.html"

Dans la v 2.4.0, quelque soit le contexte - index.html, folder.html, category.html... -  {$smarty.template} retourne toujours "layout.tpl"

A la limite, je trouve ça plus logique d'ailleurs, dans le sens où, on comprend que Thelia hiérarchise l'interprétation des pages et leurs inclusion.

J'ai bien de multiples solutions (entre autres tester que le paramètre d'url view est inexistant ou encore que je ne suis pas sur category.html ou content.html), mais ça ne fonctionnera pas pour les routes par exemples.

Je n'ai pas envie de tester le contexte ou je ne suis pas, ce qui risque de cumuler les conditions du test, je souhaite logiquement tester ou je suis, c-à-d index.html

Y'a-t-il un moyen propre de faire ça désormais ?

Last edited by anti-conformiste (03-05-2020 16:52:49)

Offline


On est passé de la version 3.1.20 de Smarty à la version 3.1.33, je suppose que la cause de ce changement est là.

Quoi qu'il en soit, tu peux obtenir la vue courante avec {$app->request->attributes->get('_view')}, et ce même si le rewriting est actif.


OpenStudio Toulouse

Offline


Merci Franck !

J'avais supposé également une maj de Smarty dans le nouveau boundle Thelia v2.4.0.
Cependant, je ne suis pas sûr de bien comprendre ta réponse, parfaitement fonctionnelle par ailleurs.

"attribues" est un paramètre de l'objet "Request", c'est ça ?
C'est "hérité" (terme sûrement mal choisi dans un contexte de programmation) d'un event de Symfony tout ça ? Et appelé par Smarty ???

..et ce même si le rewriting est actif.

>> parce que le paramètre "view" (même si rewriting = 1) est passé (comme on le constate dans le debugger) en paramètre dans l'URL et récupéré via get ...?

Désolé, c'est pas toujours manifeste quand on fait principalement du front dev... c'est pour ça que Thelia existe d'ailleurs, pour nous faciliter la vie et effacer en partie les aspects techniques plus complexes. On comprend globalement de manière intuitive mais c'est parfois utile d'avoir "les points sur les i" ?

Merci pour tes précisions.

Last edited by anti-conformiste (03-05-2020 23:52:07)

Offline


La vue (le paramètre _view) est calculé par Thelia, et est toujours dispo quelque soit le contexte {$app->request->attributes->get('_view')}.

La variable 'app' est construite par Thelia et injectée dans tous les templates.


OpenStudio Toulouse

Offline


roadster31 wrote:

La vue (le paramètre _view) est calculé par Thelia, et est toujours dispo quelque soit le contexte {$app->request->attributes->get('_view')}.

La variable 'app' est construite par Thelia et injectée dans tous les templates.

Ok, c'est clair comme ça.
Merci smile