Skip to content

Instantly share code, notes, and snippets.

@hissy
Last active August 29, 2015 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hissy/72827af7d2893450cb95 to your computer and use it in GitHub Desktop.
Save hissy/72827af7d2893450cb95 to your computer and use it in GitHub Desktop.
#concrete5 オートナビテンプレートで第1階層だけulから外れるパターン
<?php defined('C5_EXECUTE') or die("Access Denied.");
$navItems = $controller->getNavItems();
?>
<div class="menu">
<?php
// サブメニューが開いているかどうかのフラグ
$subMenuIsOpen = false;
foreach ($navItems as $ni) {
// 第1階層の処理
if ($ni->level == 1) {
// サブメニューが開いていたら閉じる
if ($subMenuIsOpen) {
echo '</ul></div><!-- /.submenu -->';
$subMenuIsOpen = false;
}
echo '<h2>';
echo '<a href="' . $ni->url . '" target="' . $ni->target . '">' . $ni->name . '</a>';
echo '</h2>';
// サブメニューがあれば開く
if ($ni->hasSubmenu) {
echo '<div class="submenu"><ul>';
$subMenuIsOpen = true; // 開いたのでフラグを立てる
}
// 第2階層以降の処理はデフォルトのテンプレートとほぼ同じ
} else {
echo '<li>'; //opens a nav item
echo '<a href="' . $ni->url . '" target="' . $ni->target . '">' . $ni->name . '</a>';
if ($ni->hasSubmenu) {
echo '<ul>'; //opens a dropdown sub-menu
} else {
echo '</li>'; //closes a nav item
if ($ni->level > 2) {
echo str_repeat('</ul></li>', $ni->subDepth); //closes dropdown sub-menu(s) and their top-level nav item(s)
}
}
}
}
// サブメニューが開いていたら閉じる
if ($subMenuIsOpen) {
echo '</ul></div><!-- /.submenu -->';
}
?>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment