Skip to content

Instantly share code, notes, and snippets.

@bueckl
Last active August 29, 2015 14:25
Show Gist options
  • Save bueckl/f95a60ec73adffa2ef02 to your computer and use it in GitHub Desktop.
Save bueckl/f95a60ec73adffa2ef02 to your computer and use it in GitHub Desktop.
Multi Column Nav Example #SS3, #Silverstripe 3
/* On Controller …
This method splits the nav in rows of 3
*/
public function getCustomMenu($level = 1) {
$visible = parent::getMenu($level = 1);
$GroupedMenu = new ArrayList();
$count = 0;
$index = 0;
$set = new ArrayList();
foreach ($visible as $v) {
if ($count < 3 ) {
$GroupedMenu[] = $v;
if ( $count == 2 ) {
//debug::dump('Count'.$count);
//debug::dump($index);
$set->push( $GroupedMenu );
$GroupedMenu = new ArrayList();
$count = 0;
$index++;
} else {
$count++;
}
}
}
// Rest of the items
$set->push( $GroupedMenu );
//debug::dump($set);
return $set;
}
public function CustomMenu($level) {
return $this->getCustomMenu($level);
}
<ul class="nav navbar-nav">
<% loop CustomMenu(1) %>
<div class="col-nav">
<% loop $Me %>
<% if not $HideFromMainMenu %>
<li class="dropdown">
<a href="$Link" class="dropdown-toggle disabled" data-toggle="dropdown"> $MenuTitle <% if Children %><b class="caret"></b><% end_if %></a>
<% if Children %>
<ul class="dropdown-menu">
<% loop Children %>
<li class="$LinkingMode $FirstLast $EvenOdd"><a href="$Link" title="$Title.XML">$MenuTitle</a></li>
<% end_loop %>
</ul>
<% end_if %>
</li>
<% end_if %>
<% end_loop %>
</div>
<% end_loop %>
<li class="pull-right"><a href="/"><img src="$ThemeDir/images/cocreate.png" style="width: 180px; height: auto;"/></a></li>
</ul>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment