Re: オートナビから特定ページのみ除くについて
hissyさんありがとうございます。
処理を囲むことで対応しましたが、「$ni->isLast」で呼び出すと
フルサイトマップで一番下にあるものが判定されてしまうので
フルサイトマップの一番下に移動させるという感じで対応してみました・・・
表示されるものの最後に付与する方法を引き続き模索してみます。
長くなりますが、カスタムテンプレートのソース張っておきます。
生意気ではございますがひとつ・・・ifの閉じ括弧がありませんでした。
<?php defined('C5_EXECUTE') or die("Access Denied.");
$navItems = $controller->getNavItems();
?>
<ul class="nav-header">
<?php foreach ($navItems as $ni) {
if (!$ni->cObj->getATtribute('exclude_globalnav')) {
$classes = array();
if ($ni->isCurrent) {
$classes[] = 'nav-selected';
}
if ($ni->inPath) {
$classes[] = 'nav-path-selected';
}
if ($ni->isFirst) {
$classes[] = 'first';
}
if ($ni->isLast) {
$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
}
}
?>
</ul>
<div class="ccm-spacer"> </div>
Re: Re: オートナビから特定ページのみ除くについて
> 階層関係なく、最後のliにclassをつけたい、ということでしょうか?
単純に表示されているオートナビの最後のliに入れたいと思っています。
例えば、ヘッダーのナビでは
・Home
・会社概要
・サービス案内
・お問い合わせ
とあったとしたならばお問い合わせにclass="last"が付くように、
フッターナビでは
・Home
・会社概要
・サービス案内
・お問い合わせ
・プライバシーポリシー
・サイトマップ
としたならば、サイトマップにclass="last"が付くようにといった感じです。
Re: オートナビから特定ページのみ除くについて
$count = 0;
foreach ($navItems as $ni) {
$count++;
if ($count == count($navItems)) {
$classes[] = 'last';
}
}
Re: オートナビから特定ページのみ除くについて
基本的には動いてくれるのですね。
ただ、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>
takuro hishikawa
Re: オートナビから特定ページのみ除くについて
階層関係なく、最後のliにclassをつけたい、ということでしょうか?