Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Templates > Smarty
Smarty Forum d'entraide sur le moteur de templates Smarty. Avant de poster -> FAQ Smarty et Cours Smarty
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2011, 15h58   #1
Invité2
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Par défaut convertir html en smarty

Bonjour à tous,
J'ai encore du mal avec Smarty
J'ai un textarea ou je peux écrire ce que je veux afficher dans ma page web et qui est enregistré dans une bdd(cela fonction bien). Mais si je veux mettre un plugin Smarty :
Code :
{menu name="chocolate"}
Quand j'affiche ma page, au lieu de m'afficher mon menu, cela m'affiche :
Code :
{menu name="chocolate"}
J'ai un problème de compilation et ne vois pas comment procéder.

Merci.
  Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 16h20   #2
Expert Confirmé
 
Avatar de krachik
 
Inscription : décembre 2004
Messages : 1 957
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 1 957
Points : 2 646
Points : 2 646
Bonjour

De quel plugin s'agit il? le menu est censé être comment?
T'as pas des balises literal qui traînent?
__________________
Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells
krachik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 16h28   #3
Invité2
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
c'est un plugin qui affiche un menu. Je l'ai utilisé pour faire un test.
Si je le met un fichier .tpl, il fonctionne.

Même si je met un commentaire en smarty, la page va l'interpréter comme du html.

Il n'y a aucune balise litteral
  Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 20h19   #4
Expert Confirmé
 
Avatar de krachik
 
Inscription : décembre 2004
Messages : 1 957
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 1 957
Points : 2 646
Points : 2 646
J'ai du mal à comprendre tes phrases

Citation:
Même si je met un commentaire en smarty, la page va l'interpréter comme du html.
j'arrive pas à comprendre ce que ça veut dire
__________________
Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells
krachik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 20h55   #5
Invité2
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
oui, désolé, moi aussi j'ai du mal à me comprendre.

Voici une image pour expliquer.

Dans la partie module, au lieu de me charger le module, cela m’écrit {module name="news"}, il n'est pas interprété par Smarty.
Je pense qu'il faut re-compiler mais je ne vois pas trop comment m'y prendre..


Dernière modification par Invité2 ; 01/04/2011 à 08h15.
  Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 21h40   #6
Expert Confirmé
 
Avatar de krachik
 
Inscription : décembre 2004
Messages : 1 957
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 1 957
Points : 2 646
Points : 2 646
Toujours difficile de t'aider avec ces informations, il en faut plus pour comprendre pourquoi c'est pas interprété
Il s'agit d'un CMS qui utilise smarty?

Bref si tu penses qu'il faut recompiler, il faut juste trouver les configs de smarty et appliquer ce qu'il faut par exemple
Citation:
$smarty->force_compile = true;
$smarty->compile_check = true;
Mais ça m'étonnerait que ce soit ça. Pour t'aider efficacement il faudrait savoir comment est appelé le plugin et ou etc
__________________
Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells
krachik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 08h26   #7
Invité2
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Bonjour,

C'est un cms que je suis en train de construire.

Le fonctionnement :

J'ai une classe "template" dans laquelle j'affecte des variables à l'objet Smarty.
Exemple : $smarty->title.
Dans cette meme classe, j'affecte les valeurs à ces variables.
Exemple : $smarty->title = "titre"
Toujours la cette classe, une fois que toutes les variables sont chargées, j'affiche le tempate :
$smarty->display("db:".$id)

pour cet exemple, j'ai un plugin 'title' qui contient le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
function smarty_function_title($params, &$smarty)
{
    if (!isset($smarty->title)) {
        $smarty->_trigger_fatal_error("[plugin] le paramètre 'title' est vide");
        return;
    }
	else{
		return $smarty->title;
	}
}
J'appel ce plugin dans le template par :

Dernière modification par Invité2 ; 01/04/2011 à 10h08.
  Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 10h05   #8
Invité2
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Peut être avec la fonction suivante ?
Code :
1
2
 
function _compile_source($resource_name, &$source_content, &$compiled_content, $cache_include_path=null)
C'est bien avec cette fonction

J'ai fait :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function smarty_function_DisplayContentModule($params,&$smarty)
{ 
  $tpl = '{test}';
  if( empty($tpl) ) return;
 
  $smarty->_compile_source('Display content module', $tpl, $_compiled);
  @ob_start();
  $smarty->_eval('?>' . $_compiled);
  $result = @ob_get_contents();
  @ob_end_clean();
 
  return $result;
}
Cela fonctionne, il ne me reste plus qu'a attribuer la valeur de $tpl par la valeur contenue dans la bdd.

Dernière modification par Invité2 ; 08/04/2011 à 08h32.
  Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h56.


 
 
 
 
Partenaires

Hébergement Web