|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 94 ![]() |
Bonjour,
J'ai un script qui affiche des titres d'article mais les accent sont remplacé par (�) sous PHP pas de soucis pour la conversion avec utf8_encode, mais comment faire dans le template directement? Voici ma boucle qui affiche les données stocké dans un array l'utf8_encode ne fonctionne pas : Code HTML :
Merci pour votre aide. |
||
|
|
00
|
|
|
#2 | ||||||
|
Membre Expert
![]() ![]() ERIC POMMEREAUIngénieur intégration Inscription : décembre 2004 Messages : 683 ![]() |
Bonjour,
Il est normal que ce code échoue Code :
{$table_menu_init[idx].name|utf8_encode} Je vois deux choix possibles Soit tu encode côté php, ce qui te fait reprendre les données de ton tableau et faire un remplacement pour chacune de tes valeurs (je comprends que ça te gave un peu Sinon tu crées ton propre modificateur que tu places dans le répertoire plugins de smarty : Par exemple nom du fichier modifier.utf8_encode.php Contenu : Code :
Dans le fichier php : Code php :
Dans le template : Code html :
Le résultat : Sans encode : Je cherche actuellement une solution �l�gante au probl�me suivant : Avec encode : Je cherche actuellement une solution élégante au problème suivant : Voilà ... @++
__________________
Eric POMMEREAU Articles : Smarty, JpGraph, Ajax YUI, IPython, Design patern strategy en PHP, Firebug Site : Antiquités du Marché des Ternes |
||||||
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 94 ![]() |
J'obtiens ce message d'erreur :
Dans Template : {$table_news_home[idx].titre|utf8_encode} /** * Smarty utf8_encode modifier plugin * * Type: modifier * Name: utf8_encode * Purpose: convert string utf-8 * @author Eric POMMEREAU * @param string * @return string */ function smarty_modifier_utf8_encode($string) { return utf8_encode($string); } ?> Fatal error: Smarty error: [in news_listing.tpl line 14]: [plugin] function smarty_modifier_utf8_encode() not found in /home/dev3dvf/www-NicyicVit5/libs/plugins/modifier.utf8_encode.php (core.load_plugins.php, line 73) in /home/dev3dvf/www-NicyicVit5/libs/Smarty.class.php on line 1095 |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 94 ![]() |
Erf j'ai oublié un Tag <?php en début de script.
Merci beaucoup pour ton aide, la deuxième avec ton Tut d'initiation. |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : août 2008 Messages : 2 ![]() |
Bonjour,
J'ai un problème similaire avec le formatage des caractères spéciaux. Ma base Mysql est en UTF-8, mes pages php et tpl sont encodé en UTF-8, les metadata sont aussi sur UTF-8 et mon navigateur est paramétré sur UTF-8. Malgré cela je doit encode les données récupérées en base. Le poste m'a beaucoup intéressé car je ne veux pas faire l'encodage dans le php mais plutôt juste avant l'affichage et donc dans le template. La solution de développer son propre modificateur est un bon palliatif mais depuis la version 3 de Smarty il y a 2 modificateurs: to_charset et from_charset basés sur la fonction php mb_convert_encoding. Chose étrange, lorsque j'utilise le modifieur to_charset, mes caractères accentués sont tout simplement supprimés... Print_r sur le retour de la requête: Array ( [id] => 1 [titre] => Odyss�e [idAuteur] => 1 ) Array ( [id] => 2 [titre] => Sahara [idAuteur] => 1 ) Array ( [id] => 3 [titre] => Dragon [idAuteur] => 1 ) Array ( [id] => 4 [titre] => Une chance de trop [idAuteur] => 2 ) Array ( [id] => 5 [titre] => Ne le dis a personne [idAuteur] => 2 ) Array ( [id] => 6 [titre] => Disparu � jamais [idAuteur] => 2 ) Array ( [id] => 7 [titre] => Dune [idAuteur] => 3 ) Array ( [id] => 8 [titre] => La barri�re de santaroga [idAuteur] => 3 ) Array ( [id] => 9 [titre] => Les guerriers du silence [idAuteur] => 4 ) Array ( [id] => 10 [titre] => La citadelle hyponeros [idAuteur] => 4 ) Array ( [id] => 11 [titre] => Terra mater [idAuteur] => 4 ) code du template: Code :
Une idée? Une erreur? Merci d'avance pour votre aide |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com