Implémenter une balise Smarty dans une autre -
PEGASE - 13/08/2012
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.11.0
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN 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 ==]
{foreach from=$feeds item=onefeed}
<strong><li><a href="{$onefeed->get_permalink()}" title="{$onefeed->get_title()}">{$onefeed->get_title()}</a> : </strong><br>
{capture assign=plus}<a href="$onefeed->get_content()" title="Lire la suite de l\'article..." target="_blank"> [Lire la suite...]</a>{/capture}
{$onefeed->get_content()|truncate:150:"$plus":false}<br><br>
{/foreach}
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 ==]
{foreach from=$feeds item=onefeed}
<strong><li><a href="{$onefeed->get_permalink()}" title="{$onefeed->get_title()}">{$onefeed->get_title()}</a> : </strong><br>
{$onefeed->get_content()|truncate:150:"<a href='{$onefeed->get_permalink()}' title='Lire la suite de l\'article...' target='_blank'> [Lire la suite...]</a>":false}<br><br>
{/foreach}
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.