Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
19 Feb 2008, 18:10
Message
#1
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 867 Inscrit : 17 Jul 2006 Lieu : île d'Oléron Membre no 64 525 |
Bonjour à tous
Je suis en train actuellement je refaire un site en deux langues (fr et italien). Je vais utiliser cette methode un peu modifiée. Au lieu d'utiliser un seul fichier, je vais utiliser un fichier par langue et en inclure un en conséquance. Le hic, c'est que j'utilise des templates, et au lieu d'assiger toutes mes variables une à une, je voudrais faire en sorte que lorsque je fait : {L_VARIABLE}, il affiche le contenu de $lang['variable'] dans le fichier de langue inclut. J'utilise la class phpBB 2.0 (vu qu'il n'y a pas de 3.0 stand alone). Le soucis se situe vers la ligne 310. J'ai rajouté CODE if (strpos($code, '{L_') !== false) { $code = preg_replace('#\{L_([a-z0-9\-_]*)\}#is', "<?php echo ((isset(\$this->_rootref['L_\\1'])) ? \$this->_rootref['L_\\1'] : ((isset(\$lang['\\1'])) ? \$lang['\\1'] : '{ \\1 }')); ?>", $code); } mais évidemment ça ne marche pas. Si quelqu'un peut m'aider Merci
Fichier(s) joint(s)
-------------------- iBluelight
MacBook Pro Retina Late 2014 sous Mavericks| Carte son RME BabyFace | iPhone 4 Pour les Macbidouilleuses, allez jeter un oeil sur le Pink Topic, Breton par descendance grand-parentale !! CTC, Le singe mécanique. |
|
|
|
26 Feb 2008, 07:20
Message
#2
|
|
|
Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 771 Inscrit : 9 Apr 2006 Membre no 59 107 |
Désolé pour cette réponse assez tardive...
En fait, la classe template de phpBB3 fonctionne très bien en stand-alone... Il suffit de télécharger phpBB 3 et de récupérer les fichiers : - includes/template.php - includes/functions_template.php Et de remplacer, lignes 256 et 263 de functions_template.php, \$user->lang par \$lang et ajouter $lang à la liste des globales passées à display(), ligne 144 de template.php pour que les variables L_ soient remplacées par le contenu du tableau $lang. (Il y a également LA_ qui fonctionne comme L_ mais qui subit un addslashes, utile pour du JavaScript) CODE <?php header('Content-type: text/html; charset=utf-8'); // A régler au bon charset define('IN_PHPBB', true); $phpEx = substr(strrchr(__FILE__, '.'), 1); $config = Array('load_tplcompile' => false); require('includes/template.php'); $lang = array( 'PHPBB' => 'phpBB', ); $template = new Template(); $template->set_custom_template('templates', 'mon_site'); $template->set_filenames(array( 'body' => 'ma_page.html' )); $template->assign_vars(array( 'VAR1' => $var1, )); $template->display('body'); ?> utilisera le template ma_page.html situé dans le dossier 'templates'. Tu peux avoir plusieurs templates du même nom dans des dossiers différents (utile pour des thèmes) mais il faudra alors que 'mon_site' soit différent d'un thème à l'autre. Un gros avantage des templates de phpBB3, c'est qu'un cache des templates est maintenu, ce qui accélère nettement le fonctionnement du système. Pour qu'il fonctionne, il suffit de créer un dossier 'cache' (et interdire son accès depuis le Web !). Si load_tplcompile est à true, le cache sera mis à jour au moindre changement dans les fichiers de templates. Un peu d'infos sur les fonctions des templates de phpBB3 : http://area51.phpbb.com/docs/coding-guidel...html#templating PS : Je pense que les avantages du système de phpBB3 sont suffisants pour justifier son utilisation. Mais si tu tiens à utiliser le système de la version 2, je pense qu'il faudrait ajouter "global $lang;" à la fonction pparse($handle) pour que ça marche (à vérifier...) Ce message a été modifié par Vin's - 26 Feb 2008, 13:57. -------------------- MacBook Pro 2.13 Ghz, 4 Go RAM, 500 Go DD Quinti-boot Mac OS X 10.6.0, Debian GNU/Linux "unstable", Fedora 11, Windows 7, Haiku
Mac Mini 1.5 Ghz SuperDrive, 2 Go RAM, 160 Go DD - Tri-boot Mac OS X 10.5.8, Debian GNU/Linux Testing, Windows 7 |
|
|
|
26 Feb 2008, 21:17
Message
#3
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 867 Inscrit : 17 Jul 2006 Lieu : île d'Oléron Membre no 64 525 |
Salut
Dans le fichier, il y a des objet $user, class que j'ai pas instancé avant Je fait quoi ? J'instance ou je vire et remplace les $user ? -------------------- iBluelight
MacBook Pro Retina Late 2014 sous Mavericks| Carte son RME BabyFace | iPhone 4 Pour les Macbidouilleuses, allez jeter un oeil sur le Pink Topic, Breton par descendance grand-parentale !! CTC, Le singe mécanique. |
|
|
|
26 Feb 2008, 22:53
Message
#4
|
|
|
Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 771 Inscrit : 9 Apr 2006 Membre no 59 107 |
CITATION(iBluelight @ 26 Feb 2008, 21:17) [snapback]2578328[/snapback] Salut Dans le fichier, il y a des objet $user, class que j'ai pas instancé avant Je fait quoi ? J'instance ou je vire et remplace les $user ? De mon côté, je ne m'en suis pas préoccupé, et ça marche quand même Mais c'est vrai que pour être propre, il faudrait les enlever, ainsi que les bouts de code qui les utilisent... La classe user est définie dans includes/session.php, mais ça en fait quand même beaucoup juste pour utiliser un template. EDIT : J'ai procédé à un rapide toilettage des deux fichiers (en retirant également le code propre au stockage du template en base de données, inutilisable à cause de l'absence de l'instance de classe $db) Ce message a été modifié par Vin's - 26 Feb 2008, 23:02.
Fichier(s) joint(s)
-------------------- MacBook Pro 2.13 Ghz, 4 Go RAM, 500 Go DD Quinti-boot Mac OS X 10.6.0, Debian GNU/Linux "unstable", Fedora 11, Windows 7, Haiku
Mac Mini 1.5 Ghz SuperDrive, 2 Go RAM, 160 Go DD - Tri-boot Mac OS X 10.5.8, Debian GNU/Linux Testing, Windows 7 |
|
|
|
27 Feb 2008, 12:22
Message
#5
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 867 Inscrit : 17 Jul 2006 Lieu : île d'Oléron Membre no 64 525 |
C'est quoi ta hiérarchie à toi? Parce que j'ai rien qui ne s'affiche, je soupçonne le système de ne pas trouver le fichier
-------------------- iBluelight
MacBook Pro Retina Late 2014 sous Mavericks| Carte son RME BabyFace | iPhone 4 Pour les Macbidouilleuses, allez jeter un oeil sur le Pink Topic, Breton par descendance grand-parentale !! CTC, Le singe mécanique. |
|
|
|
27 Feb 2008, 15:22
Message
#6
|
|
|
Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 771 Inscrit : 9 Apr 2006 Membre no 59 107 |
CITATION(iBluelight @ 27 Feb 2008, 12:22) [snapback]2579176[/snapback] C'est quoi ta hiérarchie à toi? Parce que j'ai rien qui ne s'affiche, je soupçonne le système de ne pas trouver le fichier Au niveau de la page php dont j'ai donné le code, j'ai un dossier "templates" avec un template "ma_page.html", un dossier "includes" avec dedans "template.php" et "functions_template.php", et un dossier "cache" (en chmod 777) -------------------- MacBook Pro 2.13 Ghz, 4 Go RAM, 500 Go DD Quinti-boot Mac OS X 10.6.0, Debian GNU/Linux "unstable", Fedora 11, Windows 7, Haiku
Mac Mini 1.5 Ghz SuperDrive, 2 Go RAM, 160 Go DD - Tri-boot Mac OS X 10.5.8, Debian GNU/Linux Testing, Windows 7 |
|
|
|
27 Feb 2008, 22:05
Message
#7
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 867 Inscrit : 17 Jul 2006 Lieu : île d'Oléron Membre no 64 525 |
Merci
CODE public function set_custom_template($template_path, $template_name) { global $phpbb_root_path; $this->root = 'styles/'.$template_name.'/'.$template_path; $this->cachepath = $phpbb_root_path . 'cache/ctpl_' . $template_name . '_'; return true; } -------------------- iBluelight
MacBook Pro Retina Late 2014 sous Mavericks| Carte son RME BabyFace | iPhone 4 Pour les Macbidouilleuses, allez jeter un oeil sur le Pink Topic, Breton par descendance grand-parentale !! CTC, Le singe mécanique. |
|
|
|
27 Feb 2009, 19:39
Message
#8
|
|
|
Nouveau Membre Groupe : Membres Messages : 1 Inscrit : 30 Jan 2009 Membre no 130 338 |
merci beaucoup
ca marche tres bien chez moi!!!(avec les fichiers modifies de vin's) |
|
|
|
![]() ![]() |
| Nous sommes le : 4th April 2026 - 14:17 |