Implémenter une balise Smarty dans une autre - 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 : Implémenter une balise Smarty dans une autre (/thread-2163.html) |
Implémenter une balise Smarty dans une autre - PEGASE - 13/08/2012 Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~ Bonjour à tous, Est-il possible d'implémenter une balise Smarty dans une autre. J'ai ce code intégré à un template RSS Simple Pie. Il fonctionne sans problème Code : {$onefeed->get_content()|truncate:150:" [...]":false} Je souhaiterais que le [...] soit un lien qui redirige vers l'article du flux RSS. J'ai donc pensé que le code suivant fonctionnerait Code : {$onefeed->get_content()|truncate:150:"<a href="$onefeed->get_content()" title="Lire la suite de l'article..." target="_blank"> [Lire la suite...]</a>":false} Malheureusement, ça plante... Code : Syntax Error in template "module_db_tpl:RSSSimplePie;rss_templateRSS-PEGASE" on line 3 "{$onefeed->get_content()|truncate:150:"<a href="$onefeed->get_content()" title="Lire la suite de l'article..." target="_blank"> [Lire la suite...]</a>":false}<br><br>" - Unexpected "$", expected one of: "}" , " " , ATTR Le problème doit venir de $onefeed->get_content(). J'ai essayé de le mettre entre "", '', ou encore {}, cela ne fonctionne pas... ou je m'y prends mal... (surement dirons-nous !) :lol: :lol: Merci pour votre aide Implémenter une balise Smarty dans une autre - Jean le Chauve - 13/08/2012 Ce n'est pas une balise smarty dans une autre smarty. Ton problème provient des quotes de séparation du modficateur smarty : "", '' ne peuvent fonctionner puisque tu les utilises déjà tous les deux (l'article). Il suffit donc de capturer ce qui doit se trouver entre les doubles apostrophes : {capture assign=plus}<a href="$onefeed->get_content()" title="Lire la suite de l'article..." target="_blank"> [Lire la suite...]</a>{/capture} Puis d'insérer la capture dans ta balise smarty : {$onefeed->get_content()|truncate:150:"$plus":false} Je t'ai donné des coups de main, je souhaiterais que tu me rendes la pareille en répondant à ce post (communauté oblige ) : http://www.cmsmadesimple.fr/forum/viewtopic.php?id=4478 Implémenter une balise Smarty dans une autre - PEGASE - 14/08/2012 Merci Jean pour ta réponse... Citation :Ton problème provient des quotes de séparation du modficateur smarty : "", '' ne peuvent fonctionner puisque tu les utilises déjà tous les deux (l'article). Oh, la honte ! Le boulet ! Du B.A. BA ! :mad: Désolé, 12-14 heures/jour de TAF à 44 ans, on voit le résultat sur le neurones.... Par contre j'ai intégré ton script: Code : [== Indéfini ==] Et derrière le résultat est plutôt surprenant ! La fonction truncate tronque quand elle veut ! En coup elle tronque à 30 caractères, un coup à 80, mais jamais à 150. Plus étrange, l'url renvoyée est du type: monsite.fr/$onefeed->get_content() !!! et donc pas vers l'url de l'article du flux. :lol: Si je code (avec des guillemets simples :p ): Code : [== Indéfini ==] L'URL vers l'article RSS est correcte. Mais par contre ça truncate à vau l'eau ! Puisque le "content" est tronqué à 0 !! Donc plus d'article.... Citation :Je t'ai donné des coups de main, je souhaiterais que tu me rendes la pareille en répondant à ce post (communauté oblige ) : http://www.cmsmadesimple.fr/forum/viewtopic.php?id=4478 Promis je regarde ça as quick as possible ! Bonne soirée Implémenter une balise Smarty dans une autre - Jean le Chauve - 30/01/2013 Désolé de reprendre ce post si tard, je l'avais perdu de vue. Je suppose qu'il n'est plus d'actualité pour régler ton problème de flux d'actualités Ton problème de truncate provient du fait que smarty applique d'abord le modificateur avant que le texte de $onefeed->get_content() aie été récupéré. Essaye en appliquant le truncate uniquement sur des variables capturées. |