Plusieurs lignes mais un seul lien

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

  • Plusieurs lignes mais un seul lien

    Hello toutes et tous !!

    aïe aïe aïe ! Je vais essayer de m'expliquer.

    Voilà j'ai un menu vertical avec un sous menu qui s'affiche sur un des liens du menu. Jusqu'ici tout va bien.

    C'est maintenant que ça se corse. Le code HTML :

    <ul>
    <li>lien 1</li>
    <li>lien 2</li>
    <li>lien 3

    <ul>
    <li>lien 3 a->mot 1<br>lien 3 a->mot 2<br>lien 3 a->mot 3<br>lien 3 a->mot 4<br>lien 3 a->mot 5<br>
    <li>lien 3 b</li>
    <li>lien 3 c<br>

    </ul>

    </li>
    <li>lien 4</li>
    <li>lien 5</li>
    <li>lien 6</li>
    <li>lien 7</li>

    Voilà, en fait j'aimerai que les 5 mots du sous menu ne fasse qu'un lien et les 5 mots doivent être à la ligne.

    Merci pour votre aide

  • #2
    Re : Plusieurs lignes mais un seul lien

    <li><a href=ton_lien>mot1<br/>mot2</br>...etc...</a></li>
    Christophe
    http://www.webcrea.fr

    Commentaire


    • #3
      Re : Plusieurs lignes mais un seul lien

      Merci webcrea !

      coté HTML c'est bon je connais, en fait c'est dans la création du menu sous joomla que j'aimerais mettre à la ligne.

      Commentaire


      • #4
        Re : Plusieurs lignes mais un seul lien

        Je ne suis pas sûr qu'on puisse saisir du html dans une option de menu, en revanche, tu peux faire un essai directement dans phpmyadmin...
        Christophe
        http://www.webcrea.fr

        Commentaire


        • #5
          Re : Plusieurs lignes mais un seul lien

          ah oui bonne idée, je teste et te redis !

          Commentaire


          • #6
            Re : Plusieurs lignes mais un seul lien

            Bonjour,

            Une solution élégante, sans passer par du bricolage dans la base de données est:
            surcharger mod_menu.
            Dans les 3 layouts (default_component, default_separator, default_url)
            Je prends l'exemple avec mod_menu de base de Joomla!, à surcharger dans le template
            default_component.php qui est:
            Code PHP:
            <?php
            /**
             * @package        Joomla.Site
             * @subpackage    mod_menu
             * @copyright    Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
             * @license        GNU General Public License version 2 or later; see LICENSE.txt
             */

            // No direct access.
            defined('_JEXEC') or die;

            // Note. It is important to remove spaces between elements.
            $class $item->anchor_css 'class="'.$item->anchor_css.'" ' '';
            $title $item->anchor_title 'title="'.$item->anchor_title.'" ' '';
            if (
            $item->menu_image) {
                    
            $item->params->get('menu_text') ?
                    
            $linktype '<img src="'.$item->menu_image.'" alt="'.$item->title.'" /><span class="image-title">'.$item->title.'</span> ' :
                    
            $linktype '<img src="'.$item->menu_image.'" alt="'.$item->title.'" />';
            }
            else { 
            $linktype $item->title;
            }
            switch (
            $item->browserNav) :
                default:
                case 
            0:
            ?><a <?php echo $class?>href="<?php echo $item->flink?><?php echo $title?>><?php echo $linktype?></a><?php
                    
            break;
                case 
            1:
                    
            // _blank
            ?><a <?php echo $class?>href="<?php echo $item->flink?>" target="_blank" <?php echo $title?>><?php echo $linktype?>/a><?php
                    
            break;
                case 
            2:
                
            // window.open
            ?><a <?php echo $class?>href="<?php echo $item->flink?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title?>><?php echo $linktype?></a>
            <?php
                    
            break;
            endswitch;
            Maintanant, un peu de magie.
            Code PHP:
            <?php
            /**
            * @package        Joomla.Site
            * @subpackage    mod_menu
            * @copyright    Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
            * @license        GNU General Public License version 2 or later; see LICENSE.txt
            */

            // No direct access.
            defined('_JEXEC') or die;

            // Note. It is important to remove spaces between elements.
            $class $item->anchor_css 'class="'.$item->anchor_css.'" ' '';
            $title $item->anchor_title 'title="'.$item->anchor_title.'" ' '';

            // pour le alt image
            $titleImg str_replace'|'' '$item->title ) ;
            // et pour le multiligne
            $mytitle str_replace'|''<br />'$item->title ) ;
            if (
            $item->menu_image) {
                    
            $item->params->get('menu_text') ?
                    
            $linktype '<img src="'.$item->menu_image.'" alt="'.$titheImg.'" /><span class="image-title">'$mytitle.'</span> ' :
                    
            $linktype '<img src="'.$item->menu_image.'" alt="'.$titleImg.'" />';
            }
            else { 
            $linktype $item->title;
            }
            switch (
            $item->browserNav) :
                default:
                case 
            0:
            ?><a <?php echo $class?>href="<?php echo $item->flink?><?php echo $title?>><?php echo $mytitle?></a><?php
                    
            break;
                case 
            1:
                    
            // _blank
            ?><a <?php echo $class?>href="<?php echo $item->flink?>" target="_blank" <?php echo $title?>><?php echo $mytitle?>/a><?php
                    
            break;
                case 
            2:
                
            // window.open
            ?><a <?php echo $class?>href="<?php echo $item->flink?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title?>><?php echo $mytitle?></a>
            <?php
                    
            break;
            endswitch;
            Cette logique est à appliquer également aux autres layoiuts.

            Il ne reste plus qu'à mettre dans les libellés des menus, pour le titre, des | au lieu d'espaces, où on veut les sauts de ligne.

            Ce n'est qu'un exemple...
            Pas de demande de support par MP.
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

            Commentaire


            • #7
              Re : Plusieurs lignes mais un seul lien

              Si c'est juste pour un lien, c'est se fatiguer pour pas grand chose mais effectivement c'est plus élégant
              Christophe
              http://www.webcrea.fr

              Commentaire


              • #8
                Re : Plusieurs lignes mais un seul lien

                tu es Dieu ... descendu sur terre

                Pour webcrea ... phpmyadmin ... ça marche aussi !

                Merci beaucoup pour vos réponses.

                - - - Mise à jour - - -

                Envoyé par jisse03 Voir le message
                Bonjour,

                Une solution élégante, sans passer par du bricolage dans la base de données est:
                surcharger mod_menu.
                Dans les 3 layouts (default_component, default_separator, default_url)
                Je prends l'exemple avec mod_menu de base de Joomla!, à surcharger dans le template
                default_component.php qui est:
                Code PHP:
                <?php
                /**
                 * @package        Joomla.Site
                 * @subpackage    mod_menu
                 * @copyright    Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
                 * @license        GNU General Public License version 2 or later; see LICENSE.txt
                 */

                // No direct access.
                defined('_JEXEC') or die;

                // Note. It is important to remove spaces between elements.
                $class $item->anchor_css 'class="'.$item->anchor_css.'" ' '';
                $title $item->anchor_title 'title="'.$item->anchor_title.'" ' '';
                if (
                $item->menu_image) {
                        
                $item->params->get('menu_text') ?
                        
                $linktype '<img src="'.$item->menu_image.'" alt="'.$item->title.'" /><span class="image-title">'.$item->title.'</span> ' :
                        
                $linktype '<img src="'.$item->menu_image.'" alt="'.$item->title.'" />';
                }
                else { 
                $linktype $item->title;
                }
                switch (
                $item->browserNav) :
                    default:
                    case 
                0:
                ?><a <?php echo $class?>href="<?php echo $item->flink?><?php echo $title?>><?php echo $linktype?></a><?php
                        
                break;
                    case 
                1:
                        
                // _blank
                ?><a <?php echo $class?>href="<?php echo $item->flink?>" target="_blank" <?php echo $title?>><?php echo $linktype?>/a><?php
                        
                break;
                    case 
                2:
                    
                // window.open
                ?><a <?php echo $class?>href="<?php echo $item->flink?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title?>><?php echo $linktype?></a>
                <?php
                        
                break;
                endswitch;
                Maintanant, un peu de magie.
                Code PHP:
                <?php
                /**
                * @package        Joomla.Site
                * @subpackage    mod_menu
                * @copyright    Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
                * @license        GNU General Public License version 2 or later; see LICENSE.txt
                */

                // No direct access.
                defined('_JEXEC') or die;

                // Note. It is important to remove spaces between elements.
                $class $item->anchor_css 'class="'.$item->anchor_css.'" ' '';
                $title $item->anchor_title 'title="'.$item->anchor_title.'" ' '';

                // pour le alt image
                $titleImg str_replace'|'' '$item->title ) ;
                // et pour le multiligne
                $mytitle str_replace'|''<br />'$item->title ) ;
                if (
                $item->menu_image) {
                        
                $item->params->get('menu_text') ?
                        
                $linktype '<img src="'.$item->menu_image.'" alt="'.$titheImg.'" /><span class="image-title">'$mytitle.'</span> ' :
                        
                $linktype '<img src="'.$item->menu_image.'" alt="'.$titleImg.'" />';
                }
                else { 
                $linktype $item->title;
                }
                switch (
                $item->browserNav) :
                    default:
                    case 
                0:
                ?><a <?php echo $class?>href="<?php echo $item->flink?><?php echo $title?>><?php echo $mytitle?></a><?php
                        
                break;
                    case 
                1:
                        
                // _blank
                ?><a <?php echo $class?>href="<?php echo $item->flink?>" target="_blank" <?php echo $title?>><?php echo $mytitle?>/a><?php
                        
                break;
                    case 
                2:
                    
                // window.open
                ?><a <?php echo $class?>href="<?php echo $item->flink?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title?>><?php echo $mytitle?></a>
                <?php
                        
                break;
                endswitch;
                Cette logique est à appliquer également aux autres layoiuts.

                Il ne reste plus qu'à mettre dans les libellés des menus, pour le titre, des | au lieu d'espaces, où on veut les sauts de ligne.

                Ce n'est qu'un exemple...

                Commentaire


                • #9
                  Re : Plusieurs lignes mais un seul lien

                  Ce n'est qu'une méthode parmi d'autres, en se basant sur les surcharges, tu peux réaliser des choses étonnantes
                  Pas de demande de support par MP.
                  S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X