「concrete5」カテゴリーアーカイブ

#concrete5 cIDから承認済みか否かを取得

concrete5カスタマイズ方法メモ。

$cIDに承認済みかどうか調べたいページのIDが代入されているとして、この方法で承認済みかどうか判別できるっぽい。

$page = Page::getByID($cID);
 $pagev = $page->getVersionObject();
 if($pagev->isApproved()){
 // 承認済み
 }

concrete5はAPIが充実してて、かえって探せない^^;
慣れてないせいなんだけど…分かりにくい。よく使うものだけまとめたい。

#concrete5 ページ属性を追加して、カスタムテンプレート内で使用する

concrete5では、各ページにページ属性が設定でき、各ページの設定>カスタム項目から選択することができます。

このページ属性に「オートナビから除く」というオプションがありますが、例えば「グローバルナビゲーションには表示させたくないがパンくずリストには表示させたい」という場合、ブロックとしてはどちらもオートナビなので困ってしまいます。そういう時は、ページ属性を追加してしまいましょう。

ページ属性の追加は管理画面のページとテーマ>ページタイプ画面で、ページ属性情報を追加ボタンをクリックします。

ページ属性を追加

設定したページ属性は、各ページの設定で選択することができるようになります。

作成したページ属性を選択する

次に、「グローバルナビから除く」にチェックが入っているページを飛ばすオートナビのカスタムテンプレートを作成します。

既存のオートナビのview.phpをローカルにコピーします。
/concrete/blocks/autonav/view.php

「オートナビから除く」にチェックが入っているかを判定している行の「exclude_nav」を「グローバルナビから除く」のハンドルに変更します。

// 変更前
if (!$_c->getCollectionAttributeValue('exclude_nav')) {
// 変更後
if (!$_c->getCollectionAttributeValue('exclude_globalnav')) {

以上の変更をしたview.phpを、適当な名前を付けて保存します。ここでは分かりやすくglobal_nav.phpとしておきます。

最後にカスタムテンプレートとして使えるようにサーバーの下記のディレクトリにアップロードします。カスタムテンプレートの詳細は公式サイトの解説を参考にしてください。
/blocks/autonav/templates/global_nav.php

しかし、concrete5は本当に自由度高いですね。MTやWordPressに慣れているので、不安になるくらいですw