zapsgate さま
添付画像のように『外部リンク』としてサイトマップに追加してください。
ただし、パンくず表示のときに『ホーム / ホーム(jp) / 子供A』というように表示されますので、スタイルシート等で適宜対応してください。
よろしくお願いします。
特定のページだけを階層を含めたメニュー表示にする
2016年7月5日 at 11:58
5.7ユーザーです
過去に同様の件名のトピックスがあったので
参考にしてオートナビのテンプレートを加工しようとしています
親ページ
ー子どもA
ー子どもB
ー子どもC
を特定のページ(親ページ)だけでナビを作る場合
ー子どもA
ー子どもB
ー子どもC
となってしまうので
親ページも含めてナビに表示させるには
どのようにすれば良いのでしょうか?
phpはほとんど素人です
タグ:
Re: Re: 特定のページだけを階層を含めたメニュー表示にする
2016年7月7日 at 15:04
せいけんさま
> autonavのview.phpを加工すればよいかとおもっていたのですが
カスタムテンプレートを制作されたことがあるということですので、以下の記述を autonav のview.php をもとにカスタマイズしてください。
現在のページの親ページのリンクとタイトルを取得して表示しています。
あとは適宜修正してください。
よろしくお願いします。
> autonavのview.phpを加工すればよいかとおもっていたのですが
カスタムテンプレートを制作されたことがあるということですので、以下の記述を autonav のview.php をもとにカスタマイズしてください。
//*** Step 2 of 2: Output menu HTML ***/
$th = Loader::helper('text');
$nh = Loader::helper('navigation');
$parent = Page::getByID($c->getCollectionParentID());
$parentLink = $nh->getCollectionURL($parent);
$parentName = $th->entities($parent->getCollectionName());
if (count($navItems) > 0) {
echo '<h3><a href="' .$parentLink. '">' .$parentName. '</a></h3>';
echo '<ul class="nav">'; //opens the top-level menu
現在のページの親ページのリンクとタイトルを取得して表示しています。
あとは適宜修正してください。
よろしくお願いします。
Re: 特定のページだけを階層を含めたメニュー表示にする
2016年7月7日 at 17:40
だぶん、下記で可能と思います。テストしてないのでたぶんですが。。。
↓
ただ、これは表示できるデータが0件の時にはエラーになりますので、nipperさんが書かれたソースをすべて、
以下に入れたほうが無難です。
$parent = Page::getByID($c->getCollectionParentID());
↓
$parent = Page::getByID($navItems[0]->cObj->getCollectionParentID());
ただ、これは表示できるデータが0件の時にはエラーになりますので、nipperさんが書かれたソースをすべて、
if (count($navItems) > 0) {
以下に入れたほうが無難です。
Re: 特定のページだけを階層を含めたメニュー表示にする
2016年7月8日 at 10:05
nipperさま aclissさま
ありがとうございました
表示ができるようになりました
そもそも
ディレクトリ/index.html
の感覚があるので戸惑ってしまいます
下記のようなソースにしています
これで見た目はOKでした。欲を言えばリストの中にparentを入れたいので勉強してみます
ありがとうございました
表示ができるようになりました
そもそも
ディレクトリ/index.html
の感覚があるので戸惑ってしまいます
下記のようなソースにしています
これで見た目はOKでした。欲を言えばリストの中にparentを入れたいので勉強してみます
//*** Step 2 of 2: Output menu HTML ***/
if (count($navItems) > 0) {
$th = Loader::helper('text');
$nh = Loader::helper('navigation');
$parent = Page::getByID($navItems[0]->cObj->getCollectionParentID());
$parentLink = $nh->getCollectionURL($parent);
$parentName = $th->entities($parent->getCollectionName());
echo '<p><a href="' .$parentLink. '">' .$parentName. '</a></p>';
echo '<ul class="fh5co-links">'; //opens the top-level menu
foreach ($navItems as $ni) {
echo '<li class="' . $ni->classes . '">'; //opens a nav item
echo '<a href="' . $ni->url . '" target="' . $ni->target . '" class="' . $ni->classes . '">' . $ni->name . '</a>';
if ($ni->hasSubmenu) {
echo '<ul>'; //opens a dropdown sub-menu
} else {
echo '</li>'; //closes a nav item
echo str_repeat('</ul></li>', $ni->subDepth); //closes dropdown sub-menu(s) and their top-level nav item(s)
}
}
echo '</ul>'; //closes the top-level menu
} else if (is_object($c) && $c->isEditMode()) { ?>
<div class="ccm-edit-mode-disabled-item"><?php echo t('Empty Auto-Nav Block.')?></div>
<?php }
Your post has been saved and will be published after approval by the forum moderator.
zapsgate
Re: 特定のページだけを階層を含めたメニュー表示にする
多言語化の auto_nav メニューで悩んでいます。
旧来は
ホーム--+
|
+-子供A
|
+-子供B
|
+-子供C
であったため
displayPages = 'top'
orderBy = 'display_asc'
displaySubPages = 'all'
displaySubPagesLevels = 'all'
の指定で
「ホーム」「子供A」「子供B」「子供C」
と並んでくれていましたが ustream の多言語化にならい
ホーム--+
|
+-ホーム(jp)--+
| |
| +-子供A
| |
| +-子供B
| |
| +-子供C
|
+-ホーム(us)--+
(以下略)
とした場合に「ホーム(jp)」をメニュー表示させることで悩んでます。
displayPages = 'second_level' からスタートしたときには「ホーム(jp)」が表示されずに
「子供A」「子供B」「子供C」だけになってしまいます。
displaySubPages/displaySubPagesLevels/displayPagesCID もいろいろと弄ってはみたのですが
なかなか思ったように表示されず手強くて困っています。
どう指定すると「ホーム(jp)」「子供A」「子供B」「子供C」と並んでくれるのでしょうか?