Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Templates > phplib et phpBB
phplib et phpBB Forum d'entraide sur les moteurs de templates phplib et phpBB. Avant de poster -> FAQ gabarits phpBB2, Cours phpBB2 et Sources phpBB2
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 23/03/2007, 12h25   #1
Invité de passage
 
Inscription : mars 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 7
Points : 1
Points : 1
Par défaut [phpBB 2] un menu dynmique

j'ai un probleme qui conserne mon sit web j'ai un site qui contien un header un menu le corps de la page ou se trouve le contenu un pied de page comme tout le probleme c'est que quan j'ai utiliser le systeme de templates de Phpbb
j'ai eu un tout petit probleme :

vien voir mon menu ne s'affiche pas comme je le souhaite puisque j'utilise une bas de données mon 1er code php etait :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
$queryMenuType="SELECT * FROM menutype WHERE publier='1'"; 
$resultMeTp=mysql_query($queryMenuType) or die(mysql_error()); 
 
 
while($valMeTp=mysql_fetch_assoc($resultMeTp))
        {
	$id= $valMeTp["id"];
        $nom= $valMeTp["nom"];
 
?>
<div id="fond-top-menu"><?php echo $nom; ?></div>
<div id="fond-centre-menu">
 
 
<?php
$queryLienMenu="SELECT * FROM menu WHERE menutype='$nom'"; 
$resultLiMe=mysql_query($queryLienMenu) or die(mysql_error());
 
while($valLiMe=mysql_fetch_assoc($resultLiMe))
	{
	$lien = $valLiMe["nom"];
	$link = $valLiMe["link"];
?>
 
<div id="lein-menu">
<a href="<?php echo $link; ?>"><?php echo $lien; ?></a></div>
 
<?php									
}		 
?>	
 
</div>
<div id="fond-bottom-menu"></div>
 
<?php			 
}	
?>			
</div>

c'est le code de mon menu dynamique.

vraiment ça m'enerve de tout melanger alors je veux utiliser le systeme de templates mais le probleme c'est que je veux


par exemple que mon menu de site soit comme ça



--Categorie 1--
>lien1 (selon la categorie du lien)
>lien2
>lien3
>lien4
....

--Categorie 2--
>lien1
>lien2
>lien3
....

et ainsi de suite
samurai741 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 13h58   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
D'accord vous souhaitez utiliser un système de templates (phpbb) mais je ne vois nul part où vous l'utilisez C'est du PHP "normal" que vous nous montrez là.

Au cas où vous auriez besoin d'une petite lecture : Le système de template de phpBB.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 15h36   #3
Invité de passage
 
Inscription : mars 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 7
Points : 1
Points : 1
non le code que j'ai mis c'est du php melanger avec du html c'est mon code normal alors quand j'ai penser de passer a utiliser le systeme de templates de PHpbb voilà

Code HTML :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
<!-- BEGIN menu -->
 
<div id="top-menu">{CATEGORIE}</div>
<div id="center-menu">
 
<!-- BEGIN lien -->
<a href="{ADRESSE}">{TITRE_ADRESSE}</a>
<!-- END lien -->
 
</div>
<div id="bottom"></div>
 
<!-- END menu -->


ce que je souhaite afficher sur ma page c'est :

Rubrique 1
lien 1
lien 2
lien 3
...


Rubrique 2
lien 1
lien 2
lien 3
lien 4
...


les lien s'affiche selon leur categorie de rubrique dans mon site alors que le premier code fonctionne mais sans le systeme de template de Phpbb
si quelqu'un peut m'aider s'il vous plais ou bien me dire une autre methode et merci d'avance.
samurai741 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 16h40   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Le template est mal écrit au niveau des variables de bloc :
Code HTML :
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- BEGIN menu -->
 
<div id="top-menu">{menu.CATEGORIE}</div>
<div id="center-menu">
 
<!-- BEGIN lien -->
<a href="{menu.lien.ADRESSE}">{menu.lien.TITRE_ADRESSE}</a>
<!-- END lien -->
 
</div>
<div id="bottom"></div>
 
<!-- END menu -->

Après, votre code php aura peut être, lui aussi, besoin d'une correction mais reportez-vous au tutoriel indiqué ci-dessus, les blocs imbriqués y sont largement arbordés.


Cordialement, Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 14h13   #5
Invité de passage
 
Inscription : mars 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 7
Points : 1
Points : 1
Ok mon cher ami le probleme est resolu j'ai pas utiliser les bloc imbriquer mais j'ai utiliser les fonction dan php :

voila les code pour les autres qui ont deja eu le meme probleme :

code index.tpl est :
Code :
1
2
3
4
5
6
 
<div id="menu">
 
{MENU_VER}
 
</div>
<?php

la fonction depuis mon fichier fonction.php est :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
function affiche_Menu(){
 
$reponse = mysql_query("SELECT * FROM test_cat WHERE publier=1");
$categorie='';
while ($donnees = mysql_fetch_array($reponse))
{
 
	$res  = $donnees['categorie'];
	$reponse_lien = mysql_query("SELECT * FROM test WHERE categorie='$res'");
	$lien = '';
	while ($donnees_lien = mysql_fetch_array($reponse_lien))
	{
	$res_lien = $donnees_lien['nom'];
	$lien.='<a href="'.$res_lien; 
	$lien.='">';
	$lien.=$res_lien;
	$lien.='</a><br />';
	}
 
	$categorie.='<div id="fond-top-menu">'.$res.'</div>';
	$categorie.='<div id="fond-centre-menu">';
	$categorie.=$lien;
	$categorie.='</div>';
	$categorie.='<div id="fond-bottom-menu"></div>'; 
}
return $categorie;
}
?>

est enfin le code dans index.php est le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
// On créé une instance de la classe template, passez en paramètre le répertoire ou se trouvent tous vos fichiers templates
$template = new Template('./');
 
// On assigne a un alias "test" le nom du fichier .tpl qu'on compte utiliser
$template->set_filenames(array('test' => 'Templates/test3/test.tpl'));
 
 
$template->assign_vars(array(
 
 
	'META'            =>******,
	'BANNIERE'               =>******,
	'MENU_HORIZONTALE'                =>******,
	'MINI_MENU'                  =>******,
	'CHEMIN_DE_FER'               =>******,
	'AUTEUR'                     =>******,
	'DATE'                         =>******,
	'CONTENU'                    =>******,
	'NAVIGATION'              =>******,
	'BOTTOM'                  =>******,
	'MENU_VER'               =>affiche_Menu(),
 
));
 
 
 
// On parse le fichier HTML, c'est à dire qu'on assigne aux fichier template toutes les données qu'on à créer dans le .php
$template->pparse('test');
 
deconnexion_DB();
?>
est c'est tt.
encore une fois merci pour votre aide mon ami JULP
samurai741 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 14h35   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Vous avez toujours du code HTML dans votre PHP. Personnellement, j'aurais procédé ainsi :
Niveau code PHP :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
<?php
require('template.php');
mysql_connect('localhost', 'julp', '*****');
mysql_select_db('julp');
 
function genererMenu(&$tpl) {
    $reponse = mysql_query("SELECT * FROM test_cat WHERE publier=1;");
    while ($donnees = mysql_fetch_array($reponse)) {
        $res = $donnees['categorie'];
        $reponse_lien = mysql_query("SELECT * FROM test WHERE categorie='$res'");
        $tpl->assign_block_vars('menu',
            array(
                'CATEGORIE' => $res
            )
        );
        while ($donnees_lien = mysql_fetch_array($reponse_lien)) {
            $tpl->assign_block_vars('menu.lien',
                array(
                    'ADRESSE'       => $donnees_lien['nom'],
                    'TITRE_ADRESSE' => $donnees_lien['nom']
                )
            );
        }
    }
}
 
// On créé une instance de la classe template, passez en paramètre le répertoire ou se trouvent tous vos fichiers templates
$template = new Template('./');
 
// On assigne a un alias "test" le nom du fichier .tpl qu'on compte utiliser
$template->set_filenames(array('test' => 'Templates/test3/test.tpl'));
 
 
/*$template->assign_vars(array(
 
 
	'META'            =>******,
	'BANNIERE'               =>******,
	'MENU_HORIZONTALE'                =>******,
	'MINI_MENU'                  =>******,
	'CHEMIN_DE_FER'               =>******,
	'AUTEUR'                     =>******,
	'DATE'                         =>******,
	'CONTENU'                    =>******,
	'NAVIGATION'              =>******,
	'BOTTOM'                  =>******,
));*/
 
genererMenu($template);
 
// On parse le fichier HTML, c'est à dire qu'on assigne aux fichier template toutes les données qu'on à créer dans le .php
$template->pparse('test');
 
deconnexion_DB();
?>
Le code du template :
Code HTML :
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- BEGIN menu -->
 
<div id="top-menu">{menu.CATEGORIE}</div>
<div id="center-menu">
 
<!-- BEGIN lien -->
<a href="{menu.lien.ADRESSE}">{menu.lien.TITRE_ADRESSE}</a>
<!-- END lien -->
 
</div>
<div id="bottom"></div>
 
<!-- END menu -->

Remarquez que je n'ai plus aucun code HTML à gérer dans la partie PHP.
julp 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 15h22.


 
 
 
 
Partenaires

Hébergement Web