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 08/08/2012 13:45:39

pierrepercee
Membre
Inscription : 11/06/2009
Messages : 418
Site Web

[Résolu]udt et smarty - remplacer méthode _compile_source

#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site :
#~ Hébergeur / Soft : localhost
#~ Informations Système :
#~      1.11.1 (JCE)
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

Suite à l'upgrade vers 1.11 voici quelques retours d'expérience:
Ceux qui rencontrent des problèmes avec le module News, le tag SocialBookmarking et le module CGFeedBack tireront grand profit de la mise à jour différentielle diffusée par JCE sur son site (un grand merci à JCE de nous faire profiter avec quelques heures d'avance de la dernière Maj).
Sinon la syntaxe "smarty" doit désormais être impeccable... Les UDT (les miens, pas ceux des autres) qui fonctionnaient bien en 1.10.3 causent désormais un certain nombre d'erreurs.
Faites impérativement un upgrade en local avant de tenter l'upgrade sur un site en production sous peine de...

Sinon cette syntaxe ne fonctionne plus (extrait http://wiki.cmsmadesimple.fr/wiki/Udt_base)

[== Indéfini ==]

$smarty = cmsms()->GetSmarty();
$smarty_data = "{menu}";
$smarty->_compile_source('temporary template', $smarty_data, $_compiled );
@ob_start();
$smarty->_eval('?>' . $_compiled);
$_contents = @ob_get_contents();
@ob_end_clean();
echo $_contents;

à cause de la méthode "_compile_source", (erreur

[== Indéfini ==]
Call of unknown method '_compile_source'.
Error: at line 806 in file C:\wamp\www\wxs\lib\smarty\sysplugins\smarty_internal_templatebase.php

) je n'ai pas trouvé comment réécrire la chose en Smarty3. Il y a bien un thread sur le sujet dans le forum anglais ici mais la solution ne s'y trouve pas !
Voilà si quelqu'un s'est déjà penché sur ce point... smile

Dernière modification par pierrepercee (17/08/2012 12:39:32)


Win 7 pro 64 - CMSMS 1.6.4 à 2.1.2

Hors ligne

#2 08/08/2012 15:40:42

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

J'ai rencontré l'erreur (sur www.su3.fr)

Je n'ai pas encore de solution. Je reste à l'écoute de ce thread smile

Apparemment la solution sera de repasser par une fonction purement Smarty de compilation (et non une fonction custom interne à cmsms comme c'était le cas avant)

Hors ligne

#3 08/08/2012 15:45:55

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

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

De la manière dont les 2 ont répondu à ton post, je me demande si tu vas recevoir une réponse plus efficace.
Te remballer sur smarty.net n'est pas des plus sympas, surtout sans donner de lien précis wink
C'est pourtant la seule méthode que je connaisse pour incorporer des balises smarty dans une udt.

Hors ligne

#4 08/08/2012 16:03:18

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

http://www.smarty.net/docs/en/api.functions.tpl

Notre solution est l'une de ces fonctions, je regarde laquelle correspondrait au mieux à notre besoin : transformer une chaine vers un Objet Template Smarty et ensuite de pouvoir le compiler

Hors ligne

#5 08/08/2012 16:15:46

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

regarde de ce côté : http://www.smarty.net/docs/en/resources.string.tpl

Dans ton UDT "toto":

$smarty->assign('foo','value');
$template_string = 'display {$foo} here';
$smarty->display('string:'.$template_string); // compiles for later reuse
$smarty->display('eval:'.$template_string); // compiles every time

Dans ton gabarit


{toto}{include file="string:$template_string"} {* compiles for later reuse *}
{toto}{include file="eval:$template_string"} {* compiles every time *}

Hors ligne

#6 08/08/2012 18:00:52

pierrepercee
Membre
Inscription : 11/06/2009
Messages : 418
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Salut et merci Bess !

Dans mon cas je cherche à appeler un UDT dans un autre UDT (tu parles de gabarit, je dois mal comprendre). Je viens de faire un essai avec cette méthode mais j'ai du en "faire une", cela ne marche pas.
C'est vrai que sur le forum US la réponse faite à "rotezecke" ne fait guère avancer la chose... La doc Smarty, entre nous c'est pas vraiment un modèle de pédagogie hein! hmm


Win 7 pro 64 - CMSMS 1.6.4 à 2.1.2

Hors ligne

#7 08/08/2012 18:05:32

pierrepercee
Membre
Inscription : 11/06/2009
Messages : 418
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Je ne sais pas comment on modifie le Wiki mais ce serait bien, une fois la solution trouvée et validée, de modifier l'article en question histoire de ne pas laisser de "scories anciennes". smile


Win 7 pro 64 - CMSMS 1.6.4 à 2.1.2

Hors ligne

#8 08/08/2012 20:02:36

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

le wiki est en mode "accès écriture sur demande" pour éviter le spam.

Je te créé un compte pour l'occasion

Hors ligne

#9 08/08/2012 21:25:10

jce76350
Administrateur
Lieu : Rouen
Inscription : 23/09/2007
Messages : 6 087
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Ce serrait pas mieux de déplacer cette discussion dans Modules, Tags, Aide concernant l'utilisation des modules, balises et balises utilisateur car les propos pas grand chose n à voir avec Installation ?


J-C Etiemble Tutoriels v 2.2.x

Hors ligne

#10 08/08/2012 22:51:30

pierrepercee
Membre
Inscription : 11/06/2009
Messages : 418
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Bonsoir JCE,

Effectivement cela a plus à voir avec les balises utilisateurs, tu as raison. Je l'ai mis ici car la difficulté n'est rencontrée que lors de l'installation de la 1.11 avec l'adoption de Smarty3 et je pensais que pour les nouveaux utilisateurs de la 1.11 confrontés au problème il n'était pas complètement illogique de consulter cette section.
Merci Bess pour le compte, je n'ai pas encore eu le temps de regarder le problème, mais dès que cela "tourne", je modifie le Wiki.


Win 7 pro 64 - CMSMS 1.6.4 à 2.1.2

Hors ligne

#11 09/08/2012 09:45:48

jce76350
Administrateur
Lieu : Rouen
Inscription : 23/09/2007
Messages : 6 087
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Effectivement cela a plus à voir avec les balises utilisateurs, tu as raison. Je l'ai mis ici car la difficulté n'est rencontrée que lors de l'installation de la 1.11 avec l'adoption de Smarty3

Oui mais rien a voir avec installation , justes un problème  de balises en CMSms 1.11
Donc je déplace dans Modules, Tags


J-C Etiemble Tutoriels v 2.2.x

Hors ligne

#12 09/08/2012 10:40:50

pierrepercee
Membre
Inscription : 11/06/2009
Messages : 418
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Merci JCE d'avoir déplacé ce "thread". je n'ai pas encore eu le temps de regarder de plus près les méthodes disponibles que Bess a eu la gentillesse de m'indiquer (a vrai dire j'ai fait une vague tentative puis j'ai été occupé par ailleurs). wink


Win 7 pro 64 - CMSMS 1.6.4 à 2.1.2

Hors ligne

#13 16/08/2012 21:32:42

kraygoon
Membre
Lieu : Pau, France
Inscription : 02/11/2007
Messages : 495
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Je ne sais pas si vous aviez réussi à trouver solution, mais voici la mienne :

[== PHP ==]
$smarty = cmsms()->GetSmarty();
$smarty_data = "{menu}";
@ob_start();
echo $smarty->display('string:'.$smarty_data) ;
$_contents = @ob_get_contents();
@ob_end_clean();
echo $_contents;

Hors ligne

#14 16/08/2012 22:45:43

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Je confirme Kraygoon : tu as tout bon dans le code, ça fonctionne impec chez moi. Merci pour l'astuce que je reporte dans le WIKI aussitôt

Hors ligne

#15 16/08/2012 23:25:11

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Rectification de Calguy1000

$smarty = cmsms()->GetSmarty();
$smarty_data = "{menu}"; 
echo $smarty->display('string:'.$smarty_data) ;

effectivement ^^

Hors ligne

#16 17/08/2012 09:03:34

kraygoon
Membre
Lieu : Pau, France
Inscription : 02/11/2007
Messages : 495
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Désolé pour le « @ob_start() » et la suite. En effet, je n'avais pas rencontré précisément ce code et il fallait que le retour du $smarty->display() me soit fourni dans une variable.

Hors ligne

#17 17/08/2012 09:15:00

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

aucun soucis, moi même en regardant le code superflu je me suis dis "putain pourquoi je l'avais pas vu celle là"...

j'imagine qu'en ayant démarré de l'ancien code , ça a faussé notre jugement parce que oui clairement il y avait du superflu et qu'aucun de nous ne l'a vu ^^

j'ai mis à jour les docs wiki.

Hors ligne

#18 17/08/2012 12:38:24

pierrepercee
Membre
Inscription : 11/06/2009
Messages : 418
Site Web

Re : [Résolu]udt et smarty - remplacer méthode _compile_source

Grand merci à tous. Je n'ai pas eu le temps de me pencher dessus ces derniers jours et mes affinités avec la syntaxe Smarty étant ce qu'elles sont cela aurait sans doute donné un "Brontosaure" à peine bricolé et tout juste fonctionnel. wink
Merci à Bess d'avoir modifié le Wiki !

Dernière modification par pierrepercee (17/08/2012 12:38:56)


Win 7 pro 64 - CMSMS 1.6.4 à 2.1.2

Hors ligne

Pied de page des forums