WebsiteBaker Community Forum

WebsiteBaker Support (2.8.x) => Templates, Menus & Design => Topic started by: mgeene on October 16, 2017, 10:55:03 AM

Title: Showmenu2 parent item niet klikbaar
Post by: mgeene on October 16, 2017, 10:55:03 AM
Hallo,

Ik heb een menu met submenu gemaakt maar ik wil dat het parent menu niet klikbaar is, dus wel dat het submenu zichtbaar wordt als je er met de cursor overheen gaat. Is dit mogelijk? Ik heb de parent link aangemaakt met "menu_link", alleen zo blijft de knop klikbaar.

Alvast bedankt voor je reactie.
Title: Re: Showmenu2 parent item niet klikbaar
Post by: Gast on October 16, 2017, 02:18:13 PM
you need a solution like this here -> https://forum.WebsiteBaker.org/index.php/topic,26238.msg202469.html#msg202469

the important part is the first definition of $open. for a better view and understanding, i split this code in lines
Quote
$open = '<li class="[if(class=menu-current||class=menu-parent){active}] [if(class==menu-expand){dropdown}]">
[if(class==menu-expand&&level==1)
{<a href="[url]" class="dropdown-toggle" data-toggle="dropdown">[menu_title] <b class="caret"></b></a>}
else
{<a href="[url]">[menu_title]</a>}
]';

purple: set the css-class "active" for the current and his parent menu-item (maybe important for a arrow-icon)
brown: set the css-class "dropdown", if this item has childs - needed in the example for bootstrap
red: condition for the A-links in level 1, here only, if class "menu-expand" and also level 1
green:  build the link for this condition, thats the point to changed for you
blue:    solution, if the condition (red) not work - means: in all other levels

i'm not sure, what you need, but if i understand your post correct, change the red condition nearly to
[if(level==1)  or [if(level==0) - dont know, where your start level is

and the green line to the code, that you need for the items in level 1 or level 0, maybe a simple
<span>[menu_title</span>

thats the way

Title: Re: Showmenu2 parent item niet klikbaar
Post by: mgeene on October 17, 2017, 04:51:32 PM
Thanks for your reply, but it doesn't work, the menu item is still clickable.
Title: Re: Showmenu2 parent item niet klikbaar
Post by: Gast on October 17, 2017, 05:36:36 PM
is it possible, to show us the actual show_menu2-call and some details about the page structure?
Title: Re: Showmenu2 parent item niet klikbaar
Post by: mgeene on October 23, 2017, 04:40:16 PM
Here is the call of show_menu2:

Code: [Select]

<?php       
$open '<li class="[if(class=menu-current||class=menu-parent){active}] [if(class==menu-expand){dropdown}]">
[if(class==menu-expand&&level==1)
{<a href="[url]" class="dropdown-toggle" data-toggle="dropdown">[menu_title] <b class="caret"></b></a>}
else
{<a href="[url]">[menu_title]</a>}
]'
;

ob_start(); 
show_menu2(
$aMenu          1,
$aStart         SM2_ROOT
$aMaxLevel      SM2_ALL,
$aOptions       SM2_ALL,
$aItemOpen      $open,
$aItemClose     '</li>',
$aMenuOpen      '<ul>',
$aMenuClose     '<li class="ulend"></li></ul>',
$aTopItemOpen   true,
$aTopMenuOpen   '<ul id="mobile" class="navmenu">'
);
$topmenu ob_get_contents();
        
ob_end_clean();

?>



And the page structure is that i have some the parent menu-items and under some parent menu-items i have 4 or 5 sub pages and where i have sub pages i want that the parent menu-item not clickable is. The page structure is verry simple.

Title: Re: Showmenu2 parent item niet klikbaar
Post by: mgeene on October 23, 2017, 04:43:40 PM
The output of the navigation is:

Code: [Select]

 <nav class="navmenu center">
     <ul id="mobile" class="navmenu">
          <li class="active "><a href="#">home</a></li>
          <li class=" dropdown"><a href="#">de kliniek</a>
               <ul>
                    <li class=" "><a href="#">Over ons</a></li>
                   <li class=" "><a href="#">Onderwijs</a></li>
                   <li class=" "><a href="#">toegankelijkheid voor honden</a></li>
                  <li class="ulend"></li>
               </ul>
          </li>
         <li class=" dropdown"><a href="#">behandelingen</a></li>
         <li class=" dropdown"><a href="#">tarieven</a></li>
         <li class=" "><a href="#">nieuws</a></li>
         <li class=" dropdown"><a href="#">Contact</a>
              <ul>
                   <li class=" "><a href="#">Afspraak maken</a></li>
                   <li class=" "><a href="#">Contact</a></li>
                   <li class=" "><a href="#">Route</a></li>
                   <li class=" "><a href="#">Vacatures </a></li>
                   <li class="ulend"></li>
              </ul>
           </li>
           <li class="ulend"></li>
       </ul>
</nav>


Title: Re: Showmenu2 parent item niet klikbaar
Post by: nibz on October 23, 2017, 11:26:36 PM
Code: [Select]
<?php       
$open '<li class="[if(class=menu-current||class=menu-parent){active}] [if(class==menu-expand){dropdown}]">
[if(class==menu-expand&&level==1)
{<a href="#" class="dropdown-toggle" data-toggle="dropdown">[menu_title] <b class="caret"></b></a>}
else
{<a href="[url]">[menu_title]</a>}
]'
;

ob_start(); 
show_menu2(
$aMenu          1,
$aStart         SM2_ROOT
$aMaxLevel      SM2_ALL,
$aOptions       SM2_ALL,
$aItemOpen      $open,
$aItemClose     '</li>',
$aMenuOpen      '<ul>',
$aMenuClose     '<li class="ulend"></li></ul>',
$aTopItemOpen   true,
$aTopMenuOpen   '<ul id="mobile" class="navmenu">'
);
$topmenu ob_get_contents();
        
ob_end_clean();

?>


ik heb: {<a href="[url]" class="dropdown-toggle" data-toggle="dropdown">[menu_title] <b class="caret"></b></a>}
aangepast naar: {<a href="#" class="dropdown-toggle" data-toggle="dropdown">[menu_title] <b class="caret"></b></a>}

De omliggende conditional statement if(class==menu-expand&&level==1) kijkt of het "hoofdmenu-item" dochterpagina's heeft.
Ik heb dus simpelweg de WebsiteBaker link [url] weggehaald en verplaatst door een lege url #.
Ik heb een lege url gebruikt omdat het kan zijn dat je in jouw CSS gebruik maakt van styling van de <a> selector.

Probeer dit maar even en koppel terug wanneer iets niet werkt, ik help je graag :).
Title: Re: Showmenu2 parent item niet klikbaar
Post by: mgeene on October 24, 2017, 07:00:28 PM
Super dat je wil helpen, ik heb het geprobeerd, maar het geeft geen resultaat, als ik if(class==menu-expand&&level==1) aanpas naar if(class==menu-expand&&level==0) zie ik wel de pijltjes verschijnen, maar de parent-menu item blijft klikbaar.
Title: Re: Showmenu2 parent item niet klikbaar
Post by: nibz on October 24, 2017, 07:43:06 PM
Ik stuur je een PM
Title: Re: Showmenu2 parent item niet klikbaar
Post by: nibz on October 31, 2017, 07:34:34 PM
Code: [Select]
<?php       
$open '<li class="[if(class=menu-current||class=menu-parent){active}] [if(class==menu-expand){dropdown}]">
[if(class==menu-expand&&level==0)
{<a href="#" class="dropdown-toggle" data-toggle="dropdown">[menu_title] <b class="caret"></b></a>}
else
{<a href="[url]">[menu_title]</a>}
]'
;

ob_start(); 
show_menu2(
$aMenu          1,
$aStart         SM2_ROOT
$aMaxLevel      SM2_ALL,
$aOptions       SM2_ALL,
$aItemOpen      $open,
$aItemClose     '</li>',
$aMenuOpen      '<ul>',
$aMenuClose     '<li class="ulend"></li></ul>',
$aTopItemOpen   true,
$aTopMenuOpen   '<ul id="mobile" class="navmenu">'
);
$topmenu ob_get_contents();
        
ob_end_clean();

?>


Hallo mgeene,

Alleen het level moest naar 0 gezet worden omdat jij het menu op root displayt.
Hierboven de gewijzigde code.