Page 1 of 1

Bootstrap Menu Template aanpassen

Posted: Wed Feb 11, 2015 9:06 am
by brentnl
Ik heb ooit dit topic geopend, voor hulp bij het bootstrap CMSMS template. Dit is gelukt en werkt perfect.

Nu heb ik echter alleen een nieuwe uitdaging. Ik wil een menu creeëren van ongeveer 8 menu items, met in het midden het bedrijfslogo. 4 items links er van, 4 rechts. Ik kan handmatig een menu maken, maar dit is natuurlijk niet wenselijk aangezien de items regelmatig gewijzigd moeten worden van naam of volgorde.

Is het mogelijk om in dit menu template iets op te nemen dat je in de {foreach} opneemt dat hij alleen de eerste 4 items renderd, dan het logo en dan weer 4 items.

Een andere optie die bedacht is om misschien een een 9e menu item te gebruiken voor het logo, die dan in het midden te zetten en dan op één of andere manier aanroepen via CSS om enkel deze <li> om te toveren tot (klikbaar) logo?

Code: Select all

{* Note1: bootstrap v3 does not natively support more than 2 levels of nav so call with number_of_levels=2 for performance *}
{* Note2: add the loadprops=0 param for performance, this template does not need extended params *}
{* Note3: Pages with children will behave like section headers, and not be navigable.. this is also default behavior with boostrap v3, investigate the css to activate the dropdown on hover instead of click *}

{if $count > 0}
<div class="navbar navbar-default" role="navigation">
      <div class="container">
        <div class="navbar-header">
       <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                  </button>
        </div>
 <div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
{foreach from=$nodelist item=node}
  {if $node->depth > $node->prevdepth}
    {repeat string='<ul class="dropdown-menu">' times=$node->depth-$node->prevdepth}
  {elseif $node->depth < $node->prevdepth}{repeat string='</li></ul>' times=$node->prevdepth-$node->depth}
    </li>
  {elseif $node->index > 0}</li>
  {/if}

  {$classes=''}
  {if $node->parent == true or $node->current == true}
    {$classes='active'}
    {if $node->parent== true}{$classes=$classes|cat:' parent'}{/if}
  {/if}

  {if $node->type == 'sectionheader'}
    {if $node->haschildren == true}
      <li class="dropdown {$classes}"><a class="dropdown-toggle {$classes}" data-toggle="dropdown"><span>{$node->menutext}</span></a>
    {else}
      <li class="nav-header">{$node->menutext}</li>
    {/if}
  {elseif $node->type == 'separator'}
    <li style="divider">
  {elseif $node->haschildren == true}
    <li class="dropdown {$classes}"><a class="dropdown-toggle {$classes}" data-toggle="dropdown" {if $node->target}target="{$node->target}" {/if}
    href="{$node->url}"><span>{$node->menutext}</span> <b class="caret"></b></a>
  {else}
    <li class="{$classes}"><a class="{$classes}" {if $node->target}target="{$node->target}" {/if}
    href="{$node->url}"><span>{$node->menutext}</span></a>
  {/if}

{/foreach}
{repeat string='</li></ul>' times=$node->depth-1}

</li>
</ul>
      </div>
    </div>
    
</div>
{/if}

Re: Bootstrap Menu Template aanpassen

Posted: Wed Feb 11, 2015 9:50 am
by velden
Je kunt maken wat je wilt natuurlijk maar belangrijk is om voor jezelf duidelijk te hebben wat je EXACT wilt anders kun je het ook niet omzetten in template; ongeveer 8, 4 links en 4 rechts van het logo is niet exact genoeg.

Je kunt het heel ingewikkeld maken met tellers die bijhouden hoeveel hoofdmenuitems je hebt, en dan in het midden ervan een logo propt. Persoonlijk zou ik waarschijnlijk gebruik maken van een 'separator' die ik als content-item zou invoegen. Eigenlijk wat jij zelf al voorstelde met je negende menu-item.

Er is veel mogelijk wat betreft menu's. Bijvoorbeeld deze website: http://tinyurl.com/pg3emld
De 'tiles' zijn menu-items. De beheerder kan zelf door middel van separators bepalen hoe de tiles worden verdeeld. In dit geval 3 paginas - separator - 1 pagina - separator - 3 pagina's.
Minimum is natuurlijk 1 pagina en maximum 4 per 'blok'.

Re: Bootstrap Menu Template aanpassen

Posted: Wed Feb 11, 2015 10:07 am
by brentnl
Dus een 'scheidingsteken' als menu item toevoegen, deze manueel in het midden van alle items zetten en dan via CSS .divider aanroepen?

Het is wel van essentieel belang dat het logo exact in het midden van de pagina komt uit esthetisch oogpunt. En dat zal op deze manier niet echt gaan natuurlijk.

Wat voor mij belangrijk is, is dat het logo gecentreerd staat en dat de menu items links/rechts ongeveer evenredig verdeeld zijn. Dit komt niet zo nauw dat het CMS dit moet gaan berekenen (want het ene item is ook weer breder dan het andere, aangezien ik met een tekstueel menu wil werken, zonder vaste breedtes). Maar als via het CMS makkelijk bepaald kan worden wat links en wat rechts van het logo komt, kan ik zelf wel de mooiste verdeling bepalen.

Re: Bootstrap Menu Template aanpassen

Posted: Wed Feb 11, 2015 10:44 am
by velden
Daar heb ik zo geen antwoord op.

Is ook niet echt een cmsms vraagstuk maar meer html/css etc. Ik ben daar niet genoeg in thuis.

Als je het op een statische pagina kan maken dat het werkt dan is het in de regel ook wel werkend te krijgen in cmsms.

Re: Bootstrap Menu Template aanpassen

Posted: Tue Feb 17, 2015 10:23 am
by brentnl
Ik heb het nu zo gemaakt;

ik geef alle pagina's die links moeten komen de extra1 attribute 'links' mee, en rechts laat ik leeg. Vervolgens heb ik in het menu template het volgende opgenomen:

Versimpeld weergegeven:

Code: Select all

<div class="collapse navbar-collapse">

 <ul class="nav-links">
{foreach from=$nodelist item=node}
{if $node->extra1 == "links"} 
... menu ...
{/if}
{/foreach}
</ul>

<div>logo hier </div>

<ul class="nav-rechts">
{foreach from=$nodelist item=node}
{if $node->extra1 == ""} 
... menu ...
{/if}
{/foreach}
</ul>

</div>
Het werkt in ieder geval wel zoals ik het wil, want ik kan nu alles precies met CSS positioneren en toch het menu via het CMS aanpassen.

Is dit aan te raden zo of is dit een enorme belasting voor de menu manager?