Re: オートナビから特定ページのみ除くについて

2014年6月24日 at 23:49

hissyさんのおかげで解決できました。
基本的には動いてくれるのですね。

ただ、count($navItems)にすると階層全部引っ張ってきてしまったので
先に違う変数を作ってカウントさせることで対応させました。
ありがとうございました。非常に助かりました。

以下、ソースです。


<?php defined('C5_EXECUTE') or die("Access Denied.");
$navItems = $controller->getNavItems();

$navattr = "exclude_globalnav"; // 属性

$excount =0;
foreach ($navItems as $ni) {
if (!$ni->cObj->getATtribute($navattr)) {
$excount++;
}
}
?>


<ul class="nav-header">

<?php

$count = 0;

foreach ($navItems as $ni) {
if (!$ni->cObj->getATtribute($navattr)) {

$classes = array();

if ($ni->isCurrent) {
$classes[] = 'nav-selected';
}
if ($ni->inPath) {
$classes[] = 'nav-path-selected';
}
if ($ni->isFirst) {
$classes[] = 'first';
}

$count++;
if ($count == $excount) {
$classes[] = 'nav-last';
}

$classes = implode(" ", $classes);
?>

<li class="<?php echo $classes?>">
<a class="<?php echo $classes?>" href="<?php echo $ni->url?>" target="<?php echo $ni->target?>"><?php echo $ni->name?></a>
</li>

<?php
} // END *** if (!$ni->cObj->getATtribute('exclude_globalnav'))
}
?>

</ul>

<div class="ccm-spacer"> </div>