【環境情報】
・baserCMSのバージョン:4.1.5
・レンタルサーバー名:KDDI ACE01
・使用テーマ:カスタマイズしたもの
・PHPスキル(自己評価):全くわからない
はじめまして。
上記URLをもとにして、同じサイト内にあるサブサイトのサイドメニューの表示を行おうとしましたが、うまくいきません。
【本来表示したい形】
大カテゴリ
- 中カテゴリ1
- 中カテゴリ2
- 中カテゴリ3
- 小カテゴリ1
- 小カテゴリ2
- 極小カテゴリ1
- 極小カテゴリ2
- 極小カテゴリ3
- 小カテゴリ3
- 小カテゴリ4
- 中カテゴリ4
これの「極小カテゴリ」が表示されず困っています
サブサイトである以上、フォルダなどの改装が一段階深くなるので、
public function localNavi($contents, $currentLevel, $current = false){
if ($contents){
if ($contents[0]['Content']['id'] == '3'){
foreach ($contents as $key => $content){
if (preg_match('/^' . str_replace('/', '\/', $content['Content']['url']) . '(.*?)/', $this->request->here)){
$contents = $content['children'];
echo "<h2><a href=\"{$content['Content']['url']}\">" . $content['Content']['title'] . "</a></h2>\n";
}
}
echo "<ul class=\"c-nav-local__list\">\n";
} else {
echo "<ul>";
}
foreach ($contents as $key => $content){
if ($content['Content']['name'] == 'index'){
continue;
}
$dataParent = '';
if (($content['Content']['level'] == '2' || $content['Content']['level'] == '3') && count($content['children']) > 1 && preg_match('/^' . str_replace('/', '\/', $content['Content']['url']) . '(.*?)/', $this->request->here)){
$dataParent = ' data-parent="true"';
$current = true;
}
$dataCurrent = '';
if (preg_match('/^' . str_replace('/', '\/', $content['Content']['url']) . '(.*?)/', $this->request->here)){
$dataCurrent = ' data-current="true"';
}
echo "<li{$dataParent}{$dataCurrent}>\n";
echo "<a href=\"{$content['Content']['url']}\">{$content['Content']['title']}</a>\n";
if ($current && $content['children'] && count($content['children']) > 1 && $content['Content']['level'] < 4){
$this->localNavi($content['children'], $currentLevel, $current);
}
$current = false;
echo "</li>\n";
}
echo "</ul>\n";
}
}
上記のソースをコピーしたうえで、
$dataParent = '';
if (($content['Content']['level'] == '3' || $content['Content']['level'] == '4') && count($content['children']) > 1 && preg_match('/^' . str_replace('/', '\/', $content['Content']['url']) . '(.*?)/', $this->request->here)){
$dataParent = ' data-parent="true"';
$current = true;
}
$dataCurrent = '';
if (preg_match('/^' . str_replace('/', '\/', $content['Content']['url']) . '(.*?)/', $this->request->here)){
$dataCurrent = ' data-current="true"';
}
echo "<li{$dataParent}{$dataCurrent}>\n";
echo "<a href=\"{$content['Content']['url']}\">{$content['Content']['title']}</a>\n";
if ($current && $content['children'] && count($content['children']) > 1 && $content['Content']['level'] < 5){
$this->localNavi($content['children'], $currentLevel, $current);
}
$current = false;
echo "</li>\n";
}
echo "</ul>\n";
}
}
の各階層を一段階深くしたものを「htdocs/theme/(テーマ名)/Helper/ThemeHelper.php」追記すれば、サブサイトでも同じように改装が表示できるかと思ったのですが、できていない状況です。
htmlソースをブラウザ上で表示して比較したところ、サブサイトの方はdata-parent の判定がtrueになってなさそうで、これが原因のような気がしてなりませんが、なぜdata-parentの判定がスルーされてしまうのかがわからない状況です。
どなたかお知恵を拝借できないでしょうか