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

Langage PHP Discussion :

Création d'un menu dynamique:


Sujet :

Langage PHP

  1. #1
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut Création d'un menu dynamique:
    Bonjour, je souhaite créer un menu avec sous menu dynamique.
    Le but étant que dès que j'ajoute une page sur mon site, le menu affiche automatiquement le lien sans que j'ai besoin d'ajouter le lien moi-même dans le menu.
    Le menu doit lister des pages "index.php" et "index.htm", les pages sont présentes dans des sous-dossiers.

    Pour l'instant, j'ai un script PHP qui liste les pages présentes dans des sous-dossiers qui eux sont stockés dans le dossier courant, là où se trouve le script, ce script crée donc des liens dont les textes cliquables sont les noms des sous-dossiers, liens qui pointent vers les fichiers "index.php" présents dans les dossiers.
    Voici le script en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php 
      $directories = glob("*",GLOB_ONLYDIR); 
      foreach ($directories as $dir) 
       { 
          echo '<a href="'.$dir.'/index.php">'.$dir.'</a> <br>&nbsp;'; 
       } 
    ?>
    Donc en fait j'ai plusieurs galeries, donc plusieurs dossiers contenant chacun des sous-dossiers contenants les fichiers "index.php", donc j'ai dans chacun des dossiers sources ce script que j'ai mis ci-haut.
    Ce que je voudrais c'est créer un script qui affiche un menu dont les liens parents seraient les noms des dossiers courants, lorsque l'on passerait le curseur de la souris sur un de ces liens un menu contextuel s'afficherait avec d'autres liens qui eux pointeraient vers les fichiers "index.php" contenus dans les sous-dossiers et les textes cliquables de ces liens seraient les noms de ces sous-dossiers.


    --------------------


    Donc explication en image:

    Il y a une liste de dossiers courants:


    Ces dossiers seraient les liens parents du menu.


    Puis chacun de ces dossiers courants contient une liste de sous-dossiers:

    Ces sous dossiers seraient les textes cliquable des liens des menus contextuels.


    Ces liens pointeraient vers les fichiers "index.php" contenus dans les sous dossiers:



    -------------------



    En espérant m'être à peu près bien expliqué, je fais appel à votre savoir-faire.
    Quelqu'un peut-il m'aider ?

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Va voir du côté du jQuery pour les menus déroulants, c'est assez simple pour faire je pense comme tu le désires, il y aura juste la création des menus, sous menus et encore plus bas avec la lecture des répertoires.

    Je l'ai déjà fais avec des menus et sous menus

  3. #3
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Merci mais je ne veut pas de menu déroulant

  4. #4
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    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
    <?php 
    function dir_scan_html($dir,$niveau=0,$id=0)
    {
    $html=null;
    $html_repertoires=null;
    $html_fichiers=null;
    	if ($handle = opendir($dir)) {
    		while (false !== ($entry = readdir($handle))) {
    			$id++;
    			if(is_dir($dir."/".$entry))
    			{
    				if($entry!='..' && $entry!='.')
    				{
    				 $html_repertoires .= str_repeat("\t",$niveau)."<div id='div_".$id."' style='border:solid 0px #00FF00;' onclick='document.getElementById(\"sub_".$id."\").style.display=\"block\"' onDblclick='document.getElementById(\"sub_".$id."\").style.display=\"none\"'>";
    				 $html_repertoires .= str_repeat("<img src='images/vide.png' border='0'>",$niveau);
    				 $html_repertoires .= "<img src='images/folder.png' border='0'>";
    				 $html_repertoires .= "".$entry."";
    				 $html_repertoires .= "";
    				 $html_repertoires .= "";
    				 $html_repertoires .= str_repeat("\t",$niveau)."</div mid='div_".$id."'>\n";
    					//echo ".".$entry."<br>";
    				 $niveau++;
    				 $html_repertoires .= str_repeat("\t",$niveau)."<div id='sub_".$id."' style='display:none;border:solid 0px #FF0000;' >\n";
    				 $html_repertoires .= dir_scan_html($dir."/".$entry,$niveau,$id);
    				 $html_repertoires .= str_repeat("\t",$niveau)."</div mid='sub_".$id."'>\n";
    				 $niveau--;
    				}				
    			}else{
    				 $html_fichiers .= str_repeat("\t",$niveau)."<div id='fil_".$id."'>";
    				 $html_fichiers .= str_repeat("<img src='images/vide.png' border='0'>",$niveau);
    				 $html_fichiers .= "<img src='images/file_extension_txt.png' border='0'>";
    				 $html_fichiers .= "<a href='".$dir."/".$entry."' target='_blank'>".$entry."</a>";
    				 $html_fichiers .= "</div>\n";
    					//echo " ".$entry."<br>";
    			}
    		}
    		closedir($handle);
    		$html.=$html_repertoires;
    		$html.=$html_fichiers;
    		return $html;
    	}    
    }
    $html = dir_scan_html(".");
    echo $html;
    ?>
    tu met ce code dans l'index.php de ta galerie supérieur
    tu crée un sous-répertoire images
    tu y met les images : file_extension_txt.png folder.png vide.png
    tu obtient quelque chose comme prtscr.png
    un click sur le nom du folder montre son contenu
    un double click cache le contenu
    un click sur un lien fichier ouvre le fichier dans une autre fenêtre
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  5. #5
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Merci beaucoup


    Mais ce n'est pas un menu contextuel si ?

  6. #6
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    menu contextuel ? que veux tu dire ?

  7. #7
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Ca par exemple c'est un menu contextuel
    Images attachées Images attachées  

  8. #8
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    rien ne t'empêche de le rendre contextuel, tu le met dans un <div> et l'afficher via javascript sur un event onmouseover.

  9. #9
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par patrickbaras Voir le message
    rien ne t'empêche de le rendre contextuel, tu le met dans un <div> et l'afficher via javascript sur un event onmouseover.
    Merci mais ce n'est pas un div qu'il me faut mais un vrai menu contextuel


    Mais merci beaucoup de ton aide

  10. #10
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    si tu veux ton menu dans la barre de firefox ce n'est pas "facilement" possible.
    je passe la main.
    désolé.

  11. #11
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par patrickbaras Voir le message
    si tu veux ton menu dans la barre de firefox ce n'est pas "facilement" possible.
    je passe la main.
    désolé.
    Non pas dans la barre de firefox, sur le menu de mon site

  12. #12
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    Non pas dans la barre de firefox, sur le menu de mon site
    Bonjour,
    Si je suis bien ce que vous recherchez, ça ressemble bien à un menu fait par javascript (côté client) à partir de données établies côté serveur. Seul moyen me semble-t-il de reproduire les menus du genre applications windows.
    Cordialement

  13. #13
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Merci

    Mais commet ?

  14. #14
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    Merci

    Mais commet ?
    Vous trouvez un tuto ici, par exemple.
    Ou ici, pour les menus déroulants.

    Sinon, le menu contextuel: http://jcrozier.developpez.com/tutor...nu-contextuel/

  15. #15
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Merci encore

    Donc première question, comment faire un sous meu dans les liens de se code ?


    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
    <ul id="myMenu" class="contextMenu">
        <li class="edit">
            <a href="#edit">Edition</a>
        </li>
        <li class="cut separator">
            <a href="#cut">Couper</a>
        </li>
        <li class="copy">
            <a href="#copy">Copier</a>
        </li>
        <li class="paste">
            <a href="#paste">Coller</a>
        </li>
        <li class="delete">
            <a href="#delete">Supprimer</a>
        </li>
        <li class="quit separator">
            <a href="#quit">Quitter</a>
        </li>
    </ul>

  16. #16
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    Merci encore

    Donc première question, comment faire un sous meu dans les liens de se code ?
    Bonjour,

    le principe générale, c'est de partir sur des <ul> imbriquées, genre:
    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
    <ul id="myMenu" class="contextMenu">
        <li class="edit">
            <a href="#edit">Edition</a>
        </li>
        <li class="cut separator">
            <a href="#cut">Couper</a>
        </li>
        <li class="copy">
            <a href="#copy">Copier</a>
        </li>
        <li>
           <ul>
              <li class="paste">
                 <a href="#paste">Coller</a>
              </li>
              <li class="delete">
                 <a href="#delete">Supprimer</a>
              </li>
              <li class="quit separator">
                 <a href="#quit">Quitter</a>
              </li>
           </ul>
        </li>
    </ul>
    Le plus simple, à mon avis, est de se servir d'un plugin par exemple de Jquery, comme superfish (exemple) qui te permet en quelques lignes de transformer un ensemble de listes imbriquées directement en menu comme tu recherches...
    Hope that was usefull

  17. #17
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Merci beaucoup

    Dans l'exemple que tu m'a donner, ou trouve t-on le fichier hoverIntent.js ?

  18. #18
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    reprendre la function que j'ai donné et la simplifier

    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
    function dir_scan_menu($dir,$niveau=0,$id=0)
    {
    $html=null;
    $html_repertoires=null;
    $html_fichiers=null;
    	if ($handle = opendir($dir)) {
    		while (false !== ($entry = readdir($handle))) {
    			$id++;
    			if(is_dir($dir."/".$entry))
    			{
    				if($entry!='..' && $entry!='.')
    				{
    				 $html_repertoires .= "";
    				 $html_repertoires .= str_repeat("\t",$niveau)."<li>";
    				 $html_repertoires .= "".$entry."";
    				 $html_repertoires .= "</li>\n";
    				 $html_repertoires .= "";
    				 $html_repertoires .= str_repeat("\t",$niveau)."<ul>\n";
    				 $niveau++;
    				 $html_repertoires .= dir_scan_menu($dir."/".$entry,$niveau,$id);
    				 $niveau--;
    				 $html_repertoires .= str_repeat("\t",$niveau)."</ul>\n";
    				}				
    			}else{
    				 $html_fichiers .= str_repeat("\t",$niveau)."<li>";
    				 $html_fichiers .= "<a href='".$dir."/".$entry."'>".$entry."</a>";
    				 $html_fichiers .= "</li>\n";
    			}
    		}
    		closedir($handle);
    		$html.=$html_repertoires;
    		$html.=$html_fichiers;
    		return $html;
    	}    
    }
    $html = dir_scan_menu(".");
    echo $html;
    ?>
    ce qui donne
    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
     
    <li>images</li>
    <ul>
    	<li><a href='./images/folder.png'>folder.png</a></li>
    	<li><a href='./images/prtscr.png'>prtscr.png</a></li>
    	<li><a href='./images/vide.png'>vide.png</a></li>
    	<li><a href='./images/file_extension_txt.png'>file_extension_txt.png</a></li>
    </ul>
    <li>test1</li>
    <ul>
    	<li>test11</li>
    	<ul>
    		<li><a href='./test1/test11/test1.jpg'>test1.jpg</a></li>
    		<li><a href='./test1/test11/test11.jpg'>test11.jpg</a></li>
    	</ul>
    	<li><a href='./test1/test1.jpg'>test1.jpg</a></li>
    </ul>
    <li><a href='./exploreur.php'>exploreur.php</a></li>

Discussions similaires

  1. [Débutant] [SP 2013] Création d'un menu Dynamique Verticale
    Par sonia577 dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 30/08/2013, 13h29
  2. Aide pour la création d'un menu dynamique
    Par manu11 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 12/11/2009, 00h30
  3. [Système] Création menu dynamique
    Par delma dans le forum Langage
    Réponses: 1
    Dernier message: 20/10/2006, 20h44
  4. [C#] Pb de création de menu dynamiques
    Par albireo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/12/2005, 17h49
  5. Création d'un menu (de langue) dynamiquement
    Par neb-toi dans le forum Langage
    Réponses: 7
    Dernier message: 21/11/2005, 16h27

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