Forum CMS Made Simple Francophone

Aide francophone sur CMS Made Simple

Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de CMS Made Simple. Nous ne faisons de support que sur LA dernière version de CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 13/08/2012 16:11:31

PEGASE
Membre
Lieu : Sous le soleil
Inscription : 21/04/2010
Messages : 35

Implémenter une balise Smarty dans une autre

#~~~~~ 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


{$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

{$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...

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

Hors ligne

#2 13/08/2012 17:00:14

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 693
Site Web

Re : Implémenter une balise Smarty dans une autre

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

Dernière modification par Jean le Chauve (13/08/2012 17:04:03)

Hors ligne

#3 14/08/2012 22:31:06

PEGASE
Membre
Lieu : Sous le soleil
Inscription : 21/04/2010
Messages : 35

Re : Implémenter une balise Smarty dans une autre

Merci Jean pour ta réponse...

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:

[== 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 tongue ):

[== 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....

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

Hors ligne

#4 30/01/2013 01:32:29

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 693
Site Web

Re : Implémenter une balise Smarty dans une autre

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_smile

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.

Hors ligne

Pied de page des forums