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 22/09/2007, 23h59   #1
Invité de passage
 
Inscription : avril 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 13
Points : 4
Points : 4
Par défaut Variables et HTML

Bonjour,

J'ai découvert Smarty il y a quelques jours et je trouve ça super pratique.

J'ai installé la classe SmartyML pour la version multilingue, donc mes variables sont sous la forme ##nom_de_la_var## et leurs valeurs se trouvent dans des fichier *.lng correspondant à la langue.

Ma question peut paraître bête mais ça serait bien pratique :

Il y a-t-il un moyen de mettre du code HTML directement dans les variables ?

Par exemple j'ai une variable mon_lien=<a href="blabla.html">Blabla</a>
Mais cela ne marche pas. J'ai remarqué que seuls les balises simples sans attributs tels que <span> ou <b> marchent.

Lorsqu'il y a un attribut comme sur <span class="test"> ça ne marche plus.

Je sais que le but de Smarty n'est pas d'écrire du HTML avancé dans les variables mais ça me simplifierait pas mal la tache.

Merci pour votre aide
SlymDesign est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 15h43   #2
Invité régulier
 
Inscription : août 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 17
Points : 6
Points : 6
Par défaut petite info

salut je vais pas t'aider beaucoup puisque moi aussi je suis debutante ,mais si j'ai bien compris ta question alors oui c'est possible:

Dans mon fichier include/common.php:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function show_me_the_way_clic($root, $url_r = true)
{
......
{
......
if ($title_chemin == '')
{$title_chemin='><h1><ahref="'.$re->buildUrl('category',array('name'=>$category->getVar('name'),'id'=>$category->getVar('id'))).'">'.$category->getVar('name').'</a></h1>'.$title_chemin;} 
else
{$title_chemin='><ahref="'.$re->buildUrl('category',array('name'=>$category->getVar('name'),'id'=>$category->getVar('id'))).'">'.$category->getVar('name').'</a>'.$title_chemin;}
}
$title_chemin="<ahref='./'title='".$lang['home']."'>".$lang['home'].'</a>'.$title_chemin;
return $title_chemin;
}
dans include/fonction/main.php:
Code :
1
2
3
4
5
6
7
8
function displayWay($racine)
{
	global $CONFIG;
	$smarty =& TemplateEngine::getInstance();
	$way = show_me_the_way_clic($racine, $CONFIG['url_rewriting']);
	$smarty->assign("way_to_cat",$way);
}
dans main.html:
Code :
1
2
3
4
5
6
<div id="titre">
	<{$way_to_cat}>
</div>
//ex affichage: accueil > assurance > assurance voiture
//ce sont tous des liens et assurance voiture en h1
Voila réessaye ca doit marcher , si ta des question j'essayerai d'y repondre !
bon courage pour la suite...
Céline
celinettebuff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2007, 19h26   #3
Invité de passage
 
Inscription : avril 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 13
Points : 4
Points : 4
merci pour ta réponse.

Cependant je cherchais quelque chose de moins dur à mettre en place.

J'ai finalement trouvé que le problème venait des = dans les balises car smartyML fait un explode( "=" ) pour séparer les variables.

Donc j'ai tout simplement modifier smartyML pour qu'il n'y ai plus de problème en mettant du HTML dans les variables.

Voici la partie modifiée :
Code :
1
2
3
4
5
6
 
        foreach ($entries as $row) {
          if (substr(ltrim($row),0,2) == '//') // ignore comments
            continue;
          $keyValuePair = explode('==',$row);
          // multiline values: the first line with an equal sign '==' will start a new key=value pair
J'ai juste mis un explode ("==") et modifier toutes mes variables en les affectants de la façon suivante :

Code :
1
2
 
ma_variable==<span class="rouge">Ceci est un exemple</span>
Voila, c'est simple et efficace
SlymDesign est déconnecté   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 04h09.


 
 
 
 
Partenaires

Hébergement Web