翠灯舎 | Suitosha Inc. 翠灯舎 Suitosha Inc.

かゆいところに手が届くかも!concrete5 8系 地味カスタマイズ集

2017.12.16

 

この記事は concrete5 Japan Advent Calendar 2017 の16日目の記事です。
前回はASUMIさんの「concrete5 “Meetup Tokyo”に参加してきました!」でした。
concrete5全然関係ない内容も満載の懐深いMeetup・・・!
今年の東京勉強会は面白そうな内容多かったなぁ〜。

 

今年の京都チームはというと「concrete5の日」を複数回開催したのみ!ということで
来年はもう少し動きを増やしていければなーと思ってます。

 

はい、というわけで今年もたくさんconcrete5のお仕事させていただきました。
本記事ではconcrete5でサイトを作る上でかゆ〜いところに手が届く(?)カスタマイズを幾つか紹介します。
とにかくかゆい、かゆいんだ!

 

 

かゆい1:「ページ」をクリックした時のパネルをカスタマイズ

 

ログイン時に表示される「ページ」をクリックした際に表示されるここ↓。
コンポーザーからページを作成したり、サイトマップや下書きを確認したりと
サイト制作時に非常によく目にすることになるこのエリアにもう少し色気を加えます。

 

 

まずはこのエリアを出力しているconcrete/views/panels/sitemap.phpをオーバーライド。
application/views/panels/sitemap.phpとしてコピーします。

 

これで準備はOK。
先ほどコピーしたsitemap.phpではこんな感じで各種情報が出力されています。

 

・6〜29行目あたり:よく利用される&他のページタイプ
・43〜61行目あたり:下書き
・64〜79行目あたり:サイトマップ

 

とりあえず下書きエリアをちょっと変更してみます。
下書きリストにはページタイプが表示されないのでページタイプを表示させてみましょう。

 

 

いい感じです!

 

 

とりあえずこのファイルに記述した内容は出力されるのでサポート情報を掲載したりするのもいいかもですね。

 

 

 

かゆい2:あるページのあるエリアを指定してあるブロックを取得、そこからどう出力するか??

 

ページテンプレートなどで、あるページのあるブロックに登録された内容を出力したい時って結構あります。

 

例えば「Page Selector Attribute」を使ったページ属性である商品ページを選択、「関連する商品」としてそのページのブロック内の情報を出力したい!とか。

 

そんな時はこれ。
まずは指定されたページの狙いのエリアにある狙いのブロックを取得。

 

 

$_blocksには狙いのブロックオブジェクトが入ります。
これを使ってこんな感じで出力できます。

 

 

controllerをカスタマイズして独自のメソッドを追加していたり、
独自の変数を登録している場合も上記の方法で自由に扱うことができます。

 

 

かゆい3:君にだけ通知を送りたいんだ・・・

 

(設定は非常に非常に面倒ですが使いこなせれば)強力なconcrete5デフォルト機能、「ワークフロー」。
皆さん使ってますか?
今年も幾つかのサイトでお世話になりました。

一般的なサイトだと大体「承認者グループ」「投稿者グループ」といった具合に
グループ向けにワークフローを設定することが多いと思うのですが
通知設定かけたグループに含まれるすべてのユーザーにメールが飛んでしまうんですよね。
当たり前といえば当たり前ですが。


ただ「投稿者グループ」に所属している「ワークフローに送信したユーザー」にだけ通知したい時、ありますよね?

 

まずはconcrete/src/Concrete/Workflow/BasicWorkflow.php
application/src/Concrete/Workflow/BasicWorkflow.phpとしてコピーします。
それからapplication/bootstrap/app.phpでオーバライド設定。

 

 

ワークフローの通知関連エリアをカスタマイズします。

 

 

これでうっかりテストサイトからたくさんのユーザーに通知が入って大目玉食らうことが防げるぞ!
(↑実際にありました。)

 

 

かゆいおまけ:「通知設定」やってるやってる〜??

 

デフォルト状態ではワークフローを設定した際「管理者」グループに属していないユーザーは「確認待ち」ページで承認リストが表示されません。
管理画面の下記ページで確認待ち情報を通知したいグループを追加しましょう。

 

/dashboard/system/registration/notification

 

 

これ地味に設定忘れる&この設定ページ自体を忘れるのでメモメモ。

 

今年もお世話になりました

 

今年も各方面の皆々様、大変お世話になりました。

来年もレッツエンジョイ concrete5!

ますます機能充実の3.0もリリースされてこれからも楽しみです。

加速して熱を帯び発光するconcrete5 アドベントカレンダー 2017、次回はtao-sさんの「8.3.0について何か」です!

Offer to Us

to Top Page

Contact

Contact