第1階層(ホーム直下)のページ名の出力について
ホーム以外の各ページテンプレートで以下を出力したいと考えております。
各ページのパンくずリストに含まれる第1階層(ホーム直下)のページ名とリンク
各ページのページ名(タイトル)表示箇所の上部に大分類名(カテゴリー)として表示するイメージです。
先人に倣いページテンプレートで以下を試しましたところ要件を満たせることは確認できました。
$nh = Core::make('helper/navigation');
// 親ページをすべて取得
$trail = $nh->getTrailToCollection($c);
// 反転(パンくずを取得)
$trail_reverse = array_reverse($trail);
// パンくずから第1階層(ホーム直下)を取得
$level_1 = $trail_reverse[1];
// ホーム直下以外の場合
if ($level_1) {
// ページ名
$level_1_name = $level_1->getCollectionName();
// リンク
$level_1_link = $nh->getLinkToCollection($level_1);
// ホーム直下の場合
} else {
// ページ名
$level_1_name = $c->getCollectionName();
// リンク
$level_1_link = $nh->getLinkToCollection($c);
}
上記を複数のページテンプレートから共通の処理として利用する場合、どこに記述するのが良いのでしょうか。
そもそももっとシンプルな解決方法があるという場合はご教示いただけましたら幸いです。
よろしくお願いいたします。
# concrete5 バージョン
8.2.1
# PHP バージョン
7.1.4
# サーバー
エックスサーバー
# クライアント
macOS 10.12 + Firefox 55
nipper
Re: 第1階層(ホーム直下)のページ名の出力について