Joomladay francophone 2018 à Paris 18 et 19 mai

integrer un menu deroulant a mon template

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] integrer un menu deroulant a mon template

    bonsoir j'ai un probleme d'integration de menu deroulant a mon template je suis une nouvelle dans joomla j'ai dejà pu creer mon template et j'aimerai integrer le menu des deux manieres
    la premiere c'est integrer le code dans ma page index.php j'ai utlisé votre code ci de papounet:

    <?phpfunction buildMenu() {

    require ("../../configuration.php");


    $menuHTML = '<ul id="menu">';

    if (!$link = mysql_connect($mosConfig_host, $mosConfig_user, $mosConfig_password)) return $menuHTML;
    mysql_select_db($mosConfig_db);
    $sql1 = "SELECT id, name, link, parent FROM `jos_menu`";
    $sql1 .= " WHERE `published` = '1'";
    $sql1 .= " AND menutype = 'mainMenuTop'";
    $sql1 .= " AND parent = '0'";
    $sql1 .= " ORDER BY `ordering`";

    $result1 = mysql_query($sql1, $link);
    while ($row1 = mysql_fetch_array($result1)){
    $menuHTML .= '<li><a href="'.$row1['link'].'">'.$row1['name'].'</a>';

    $sql2 = "SELECT id, name, link FROM `jos_menu`";
    $sql2 .= " WHERE `published` = '1'";
    $sql2 .= " AND menutype = 'mainMenuTop'";
    $sql2 .= " AND parent = '".$row1['id']."'";
    $sql2 .= " ORDER BY `ordering`";
    $result2 = mysql_query($sql2, $link);
    if (mysql_num_rows($result2) > 0) $menuHTML .= '<ul>';
    while ($row2 = mysql_fetch_array($result2)){
    $menuHTML .= '<li><a href='.$row2['link'].'>'.$row2['name'].'</a></li>';
    }
    if (mysql_num_rows($result2) > 0) $menuHTML .= '</ul>';
    $menuHTML .= '</li>';
    }

    $menuHTML .= "</ul>";
    mysql_close($link);
    return $menuHTML;
    }

    echo buildMenu(); ?>
    mais ceci me genere des erreurs avec la fonctions require qui ne vois pa je pense le chemin du fichier de configuration de joomla
    s'il vous plait aider moi
    merci

  • #2
    Bonjour,
    tu as essayé d'enlever les ../../ ?
    Finalement le contenant c'est /index.php dans la racine donc configuration.php est au même niveau.
    Schtroumpfe toi le Schtroumpf t'aidera.
    Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

    Commentaire


    • #3
      integrer menu deroulant

      pardon je ne vous comprend pa bien moi je parle de mon fichier index.php et j'ai testé sans les ../.. / çà n'a pa marché le fichier de configuration c'est le fichier de configuration de joomla et le code doit pouvoir avoir accès a ce fichier
      expliquer encor s'il vous plait je ne vous suis pa très bien
      merci

      Commentaire


      • #4
        Re,
        j'ai testé sans les ../.. / çà n'a pas marché
        étonnant...
        le fichier de configuration c'est le fichier de configuration de joomla
        ça j'avais compris Ce que je disais dans le post précédent, c'est que si ce code est inclus dans l'index.php de ton template, la page qui l'exécute n'en est pas moins l'index.php de la racine du site donc à coté du configuration.php, donc en chemin relatif rien à ajouter devant.
        et le code doit pouvoir avoir accès a ce fichier
        ça, ça se discute. Parce qu'en fait il est utilisé dans if (!$link = mysql_connect($mosConfig_host, $mosConfig_user, $mosConfig_password)) return $menuHTML; et ça me semble particulièrement sauvage de refaire à la mano une connexion BDD alors que Joomla peut le faire proprement :

        Code PHP:
        $db =& JFactory::getDBO();
        $query1 'SELECT etc...';
        $db->setQuery($query1);
        $rows1 $db->loadObjectList(); 
        après la boucle sur fetcharray devient un truc comme foreach ( $rows1 as $row1 ) puis idem avec query2 (sans refaire le getDBO).

        Voire même dans ton cas simplement :
        Code PHP:
        $items = &JSite::getMenu();
        $rows $items->getItems('menutype''mainMenuTop'); 
        Mais après il faudra remplacer les 2 boucles imbriquées par un test de changement de "parent"
        Schtroumpfe toi le Schtroumpf t'aidera.
        Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

        Commentaire


        • #5
          merci je vais tester je vais tester je vous tiens au courant merci beau coup pour votre aide

          Commentaire


          • #6
            bonjour
            merci pour votre aide quand j'ai retiré les "../../" il y avait plus d'erreur. maintenant comment il l interagit avec mes menus crée dans joomla comment dois-je avoir accès a lui pour creer mon menu deroulant horizontale et verticale s'il vous plait

            Commentaire


            • #7
              Re,
              comment dois-je avoir accès à lui pour creer mon menu déroulant horizontal et vertical
              euh tu as du récupérer une feuille de style et ou du javascript avec ce code non ?
              Si tu n'es pas assez à l'aise en dev, regarde du coté des extentions de joomla.org : il y a de (nombreux) systèmes de menu déroulants qui fonctionnent...
              Schtroumpfe toi le Schtroumpf t'aidera.
              Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

              Commentaire


              • #8
                j'ai juste recuperer ce code


                <?phpfunction buildMenu() {

                require ("../../configuration.php");


                $menuHTML = '<ul id="menu">';

                if (!$link = mysql_connect($mosConfig_host, $mosConfig_user, $mosConfig_password)) return $menuHTML;
                mysql_select_db($mosConfig_db);
                $sql1 = "SELECT id, name, link, parent FROM `jos_menu`";
                $sql1 .= " WHERE `published` = '1'";
                $sql1 .= " AND menutype = 'mainMenuTop'";
                $sql1 .= " AND parent = '0'";
                $sql1 .= " ORDER BY `ordering`";

                $result1 = mysql_query($sql1, $link);
                while ($row1 = mysql_fetch_array($result1)){
                $menuHTML .= '<li><a href="'.$row1['link'].'">'.$row1['name'].'</a>';

                $sql2 = "SELECT id, name, link FROM `jos_menu`";
                $sql2 .= " WHERE `published` = '1'";
                $sql2 .= " AND menutype = 'mainMenuTop'";
                $sql2 .= " AND parent = '".$row1['id']."'";
                $sql2 .= " ORDER BY `ordering`";
                $result2 = mysql_query($sql2, $link);
                if (mysql_num_rows($result2) > 0) $menuHTML .= '<ul>';
                while ($row2 = mysql_fetch_array($result2)){
                $menuHTML .= '<li><a href='.$row2['link'].'>'.$row2['name'].'</a></li>';
                }
                if (mysql_num_rows($result2) > 0) $menuHTML .= '</ul>';
                $menuHTML .= '</li>';
                }

                $menuHTML .= "</ul>";
                mysql_close($link);
                return $menuHTML;
                }

                echo buildMenu(); ?>
                je n'ai pa eu le javascript ou le css qui l'accompagne
                et j'aimerai pouvoir le faire moi meme biensur avec votre aide pour surtout comprendre merci

                Commentaire

                Annonce

                Réduire
                1 sur 2 < >

                C'est [Réglé] et on n'en parle plus ?

                A quoi ça sert ?
                La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                Comment ajouter la mention [Réglé] à votre discussion ?
                1 - Aller sur votre discussion et éditer votre premier message :


                2 - Cliquer sur la liste déroulante Préfixe.

                3 - Choisir le préfixe [Réglé].


                4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                2 sur 2 < >

                Assistance au forum - Outil de publication d'infos de votre site

                Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                UTILISER À VOS PROPRES RISQUES :
                L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                Problèmes connus :
                FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                Installation :

                1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                Archive zip : https://github.com/AFUJ/FPA/zipball/master

                2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                et remplacer www. votresite .com par votre nom de domaine


                Exemples:
                Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                Télécharger le script fpa-fr.php dans: /public_html/
                Pour executer le script: http://www..com/fpa-fr.php

                Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                Télécharger le script fpa-fr.php dans: /public_html/cms/
                Pour executer le script: http://www..com/cms/fpa-fr.php

                En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                Voir plus
                Voir moins
                Travaille ...
                X