Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Implémenter une balise Smarty dans une autre
#1

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
Répondre
#2

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 Wink ) : http://www.cmsmadesimple.fr/forum/viewtopic.php?id=4478
Répondre
#3

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
Répondre
#4

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 Big Grin

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.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)