Concrete5でパッケージからDashBoard項目を追加する(singlepage)

Concrete5タイトル

Concrete5で、パッケージとともに設定画面を追加したい時があります。(ブロックの共通データ画面など)

情報が非常に少ないうえに、そのものズバリが見つけられませんでした。とりあえず成功したのでまとめてみます。

スポンサードリンク

前提

まずは使用するさまざまな名称を再確認をします。(ちなみに自分の中でつけた名称ですので、Concrete5の標準的な名称がありましたらTwitterとかで教えて下さい。)

  • シングルページ:機能の操作ページ(php)
  • パッケージディレクトリ:パッケージのルートディレクトリ
  • ダッシュボード名:ダッシュボードに表示される大枠の名称(コンポーザーやワークフローなど)
  • 機能名:ダッシュボードの細かな機能(フルサイトマップ、ファイルマネージャなど)

今回は

  • パッケージ名 = test_pkg
  • ダッシュボード名 = test
  • 機能名 = setting
  • 機能表示名=テスト

として話を進めます。

ディレクトリ構成

次にディレクトリ構成です。
図で示すと以下の様な構成が基本となります。

Concrete5 シングルページの構成 (1)

Concrete5のメインディレクトリにシングルページを追加する構成と、全く同じ構成をパッケージ内に作ります。

インストール方法

パッケージインストール時にシングルページをインストールするコードです。
これはパッケージのcontroller.phpに記入します。

SinglePage::addのパスには パッケージ名、controllers や single_pages は含めません。/dashboard/ダッシュボード名/機能名 となります。

引数のcNameは機能の表示名です。ここでは日本語をベタ打ちしていますが、なるべく t() などを使用してマルチ言語に対応するとよいでしょう。

またコードを単純化するためにエラー処理はしていません。運用時は、$single_pageが生成できなかった場合などのエラー処理は必要です。

エラー処理の一例:

機能のcontroller.php

機能のコントローラを書きます。書き方は concrete5で管理画面に独自ページ(シングルページ)を追加する | notnil creation weblog のページを参考に(というか丸写し)しています。(詳しい解説は上記ページヘ! <  説明も丸投げという・・・)

コントローラの名前は Dashboard[ダッシュボード名][機能名]Controller となります。必ずディレクトリ名と合わせ、キャメルケースで書きます。

機能のview.php

続いて設定画面のview.phpです。これもまた上記ページから引用させていただきます。

インストールとテスト

ではパッケージをインストールしてみましょう。

  1. パッケージディレクトリを Concrete5 > packages に入れます。
  2. [インストール]から作ったパッケージをインストール。

管理画面に戻ると右下に追加されています!

image

機能を使う

「テスト」を開いてみましょう。

image

 

設定画面が表示されました!これで共通データの設定などが行えます。

「あああ」と打って保存してみます。

screenshot_0119

 

保存されました!

screenshot_0120

 

上記のコードではDBのconfigテーブルに保存されます。

image

WTS的まとめ

まとめれば非常にカンタンに使える機能ですが、いかんせん情報が少ないですね。(-_-;
ここまでたどり着くのに2日ぐらいかかりました。

Concrete5のユーザー層が拡大するように、これからも機能のまとめを作っていきたいと思います。

参考ページ

concrete5で管理画面に独自ページ(シングルページ)を追加する | notnil creation weblog

concrete5 :: Working with Dashboard Single Pages