IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[phpBB][2] Un menu dynamique


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [phpBB][2] Un menu dynamique
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Le template est mal écrit au niveau des variables de bloc :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div id="menu">
     
    {MENU_VER}
     
    </div>
    <?php

    la fonction depuis mon fichier fonction.php est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Vous avez toujours du code HTML dans votre PHP. Personnellement, j'aurais procédé ainsi :
    Niveau code PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Free Pascal] Intégrer des valeurs dans un menu dynamique
    Par boullery dans le forum Free Pascal
    Réponses: 16
    Dernier message: 30/03/2005, 17h04
  2. Créer un sous-menu dynamiquement
    Par PurL dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/09/2004, 10h31
  3. [JSP]menu dynamique en jsp
    Par laouedjahmed dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 22/03/2004, 10h50
  4. Menu dynamique sous Flash MX
    Par dens63 dans le forum Flash
    Réponses: 7
    Dernier message: 29/10/2003, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo