Moteur de template phpbb3 simplifié en php5

Soyez le premier à donner votre avis sur cette source.

Vue 12 158 fois - Téléchargée 1 053 fois

Description

Voici une classe simplifiée pour l'utilisation de moteur de template phpBB3. J'ai regroupé en une seule classe 'template.class.php' les 2 classes template.php et function_template.php de phpBB3. Durant l'instanciation de la classe, il faut preciser le repertoire où se trouve les fichiers templates et le repertoire où on met les fichiers compilés(cache), et voir la documentation de phpBB3. Voici le lien:
"http://area51.phpbb.com/docs/coding-guidelines.html#templating".
Bonne prog.

Source / Exemple :


// dans le zip
include('includes/template.class.php');

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
samedi 29 janvier 2011
Statut
Membre
Dernière intervention
30 janvier 2011

C'est bon j'ai trouver mon erreur , faut juste mettre en majuscule les champs ^^
Messages postés
2
Date d'inscription
samedi 29 janvier 2011
Statut
Membre
Dernière intervention
30 janvier 2011

Bonjour,
J'ai testé avec une simple assignation mais avec un bloc ça ne marche pas.
j'ai testé avec des truc simple mais rien.
Est ce qui faut faire un truc en plus au niveau configuration pour utilisé le assign_block_vars??

merci d'avance
Messages postés
3
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2010

Désolé, j'avais oublié de répondre... merci, j'ai pu faire le fichier pour la sélection de langues et le remplacement des variables {L_VAR} dans les templates...
Par contre j'essaye depuis un moment de faire un menu multilingue dynamique(bdd) et en dur mais je n'arrive pas à faire la modification des langues...

mon code langues:

function set_lang()
{

global $template;

// on precise la variable langage
$template->set_language_var($lang);

$lang = array('en','fr');

if (!empty($_GET['lang']) && (in_array($_GET['lang'], $lang)) ) {
$expire = 365*24*3600;
$lang = $_GET['lang'];
setcookie('lang', $lang, time() + $expire, null, null, false, true);
}
elseif (!empty($_COOKIE['lang']) && (in_array($_COOKIE['lang'], $lang))) {
$lang = $_COOKIE['lang'];
}
else {
$lang = "fr";
}
include('lang/'.$lang.'.php');
}

mon code menu:

//Menu supérieur
$menu = array(
'L_HOME' => 'index.php',
'L_PAGE1' => 'page1.php',
'L_PAGE2' => 'page2.php',
'L_PAGE3' => 'page3.php',
'L_PAGE4' => 'page4.php',
'L_PAGE5' => 'page5.php'
);

//Envoie des variables au gabarit
foreach($menu as $key=>$value){
$template->assign_block_vars('nav', array(
'URL' => $value,
'ITEM' => $key));
}

dans ma page il apparait (L_HOME, L_PAGE1, etc...), je vois pas comment faire...

Merci
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

Dans fr.php:
$lang = array();
$lang['WELCOME'] = 'Bienvenue';

Dans en.php:
$lang = array();
$lang['WELCOME'] = 'Welcome';

Dans le fichier template:(exemple)
{L_WELCOME}



Dans le fichier principal:
// inclure le fichier langue (fr.php ou en.php selon la langue), à toi de gerer ça.
include('fr.php');
$template = new Template('dossier TEMPLATE', 'dossier CACHE', $lang);
$template->set_filenames(array('body' => 'fichier template'));
$template->display('body');
Messages postés
3
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2010

Je m'explique...

Si je créer un dossier lang et que dedans je mets mes ficher fr.php et en.php, comment je dois procéder pour le code php (pour faire appel à ces fichier pour qu'il remplace le {L_WELCOME}).

je ne comprends pas vraiment la fonction lang dans le moteur de template et comment écrire la page php pour qu'il aille chercher les infos !

Je vous remercie par avance.
Afficher les 25 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.