Forum CMS Made Simple FR
[Résolu] Passer du Smarty dans un champ LISE - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : [Résolu] Passer du Smarty dans un champ LISE (/thread-3935.html)



[Résolu] Passer du Smarty dans un champ LISE - Brick - 14/12/2016

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 2.1.5
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

J'ai un soucis avec le module LISE, je me demandais si c'est possible de passer du smarty (quel qu'il soit) dans une definition de champ propre à une instance (par exemple dans un champ texte) ?

Car en ayant fouillé -> forum.cmsmadesimple.org/viewtopic.php?f=7&t=70052 je constate que apparemment c'était possible dans la version 1 du module (Listit 2) avec la balise {eval}.

Mais en essayant dans LISE, je remarque qu'elle n'est pas interprétée, elle s'affiche sur le front sans être compilée
(Sur le front on voit -> {eval var=$item->email})

Une idée pour passer du smarty dans un champ d'une instance LISE ?


[Résolu] Passer du Smarty dans un champ LISE - airelibre - 14/12/2016

Hello,

et en mettant le {eval} dans l'un des gabarits de LISE ? Avec pour paramètre une des valeurs de champs


[Résolu] Passer du Smarty dans un champ LISE - Brick - 15/12/2016

Hello, merci pour ta réponse!

J'ai testé et mis par exemple ceci dans mon template sommaire LISE
Code :
{eval var=$item->title assign="test"}

Ensuite j'ai appelé la variable dans un fielddef "textarea" d'un item de mon instance LISE
Code :
{$test}

Mais je n'ai toujours pas ma variable compilée sur le front du site, tout ce que je vois c'est "{$test}".

Du coup il faudrait que je regarde pour compiler le Smarty avec une UDT ?

J'essaie de trouver la logique. Une piste (pas forcément la réponse) sera grandement appréciée :)


[Résolu] Passer du Smarty dans un champ LISE - airelibre - 15/12/2016

Si par exemple tu as un textarea que tu cherches avec
Code :
{$item->fielddefs.mon_texte->value}
, et que dans ce textarea tu as un bout de code Smarty, alors en théorie un
Code :
{eval var=$item->fielddefs.mon_texte->value}
devrait faire fonctionner ton code smarty.

Néanmoins, je t'avoue ne pas avoir compris où tu voulais en venir Wink Peux-tu décrire pourquoi tu as besoin d'évaluer du Smarty dans un champ ?


[Résolu] Passer du Smarty dans un champ LISE - Brick - 15/12/2016

Big Grin Merci je vais tester maintenant. Pour l'explication, la voici (en espérant qu'elle soit compréhensible)

En fait j'ai crée une instance LISEmodules.
Avec les items de LISEmodules je fais appel à d'autres instances LISE du site.
1 item crée dans LISEmodules = 1 appel d'une autre instance LISE du site (dans le textarea justement)

Ex. d'un contenu de textarea d'un item de LISEmodules
Code :
<div class="block-container sidebar-files">
  <div class="block-title">Fichiers</div>
  {LISEfiles pagelimit="3" category="{$page_alias}"}
</div>

(Petite précision, les balises html ci-dessus sont bel et bien interprétée sur le front-office, mais pas le Smarty)

Ceci afin de gérer l'apparition, l'ordre d'apparition (et d'autres params) dans une barre latérale du front-office

C'est à dire que cette barre latérale est peuplée selon ce que choisit le client final dans l'admin de l'instance LISEmodules.


[Résolu] Passer du Smarty dans un champ LISE - airelibre - 15/12/2016

Ok mais je ne comprend pas pourquoi le mettre dans un textarea, au lieu de dans le gabarit directement ? Quitte à utiliser une case à cocher pour afficher ou non dans le gabarit. Ca me semble plus souple et plus simple, mais peut être y'a-t-il une autre explication ?


[Résolu] Passer du Smarty dans un champ LISE - Brick - 15/12/2016

C'est tout bon! Big Grin

Merci beaucoup Aire Libre la réponse était effectivement {eval var=$item->fielddefs.mon_texte->value}! à placer dans le gabarit LISE.

Soit j'avais mal écrit mon {eval} de départ soit pas mis à la bonne place (un peu des deux je pense) mais {eval var=$item->fielddefs.mon_texte->value} à fait le café! De plus je ne l'avais jamais utilisée jusqu'à maintenant.

En fait la raison pour laquelle j'ai mis dans un textarea plutôt que dans le gabarit (avec des condition etc.) c'est principalement car les items de LISEmodules sont en fait repris et listé (grace à une UDT) dans des menu déroulant <select> au sein de chaque pages de contenu du site. Les menu déroulant servent de slots libres pour les items de LISEmodules.

Ainsi le client peut choisir d'afficher tel module, sur telle page, en 2ème position etc.

Et si on décide que le client n'aura pas accès à un module en particulier, on désactive l'item dans LISEmodules (comme ça plus listé dans les listes déroulantes), on limite les permissions du module en question, et le client n'a plus aucune traces ou possibilités d'activer le module. Ce qui aurait été le cas si on avait fait avec des cases à cocher etc.

Encore merci et à bientôt!


[Résolu] Passer du Smarty dans un champ LISE - airelibre - 15/12/2016

Ok super Wink Marque le sujet en [Résolu] dans le sujet stp si tout est bon !

Bonne continuation,