管理画面ページ
concrete5 の開発者にとって一般的なタスクは、管理画面のページを作制することです。管理画面ページは "single_pages/dashboard" ディレクトリ内にあるシングルページです。この中に作成したシングルページは、自動的に管理画面内に表示されます。
Dashboard Controller
管理画面のページコントローラーを作成する際は、\Concrete\Core\Page\Controller\PageController ではなく、 \Concrete\Core\Page\Controller\DashboardPageController を継承するようにしてください。次のコードは、管理画面>システムと設定>ゲーム に管理画面ページコントローラーを作成する例です。
<?php namespace Application\Controller\SinglePage\Dashboard\System; use \Concrete\Core\Page\Controller\DashboardPageController; class Game extends DashboardPageController { public function view() { } }
エラーハンドリング
管理画面ページコントローラーのすべてのメソッドは、DashboardPageController クラスによって定義された protected $error 変数にアクセスできます。これは、\Concrete\Core\Error\Error オブジェクトのインスタンスになります。単にこのエラーオブジェクトに追加するだけで、ページに表示されます。
public function view() { if ($foo != '1') { $this->error->add('This is error 1'); } if ($foo != '2') { $this->error->add('This is error 2'); } if ($this->error->has()) { // continue processing } }
成功/情報のレスポンスを表示する
同じように、$message と $success パラメーターは特別な変数で、ビューテンプレートで自動的に表示されます。
public function view() { $this->set('message', 'My regular message'); }
public function view() { $this->set('success', 'My success message'); }
デザインガイドライン
success, error, message メッセージは、ユーザーのアクションが成功した時、または失敗した時に表示してください。管理画面は Bootstrap 3 を使用していますので、BootstrapのUI要素を使用することができます。もし作成する管理画面ページにひとつ以上の重要なボタンがある場合、ヘッダーに配置しましょう。bootstrapのボタングループを使ってグルーピングすることもできます。
<form method="post" action="<?=$controller->action('submit')?>"> <div class="ccm-dashboard-header-buttons btn-group"> <button class="btn btn-default" type="submit" name="action" value="reload"><?=t('Reload Strings')?></button> <button class="btn btn-default" type="submit" name="action" value="export"><?=t('Export to .PO')?></button> <button class="btn btn-danger" type="button" data-dialog="reset" value="reset"><?=t('Reset All')?></button> </div> </form>
"ccm-dashboard-header-buttons" クラスを使うとページの上部にボタンを配置できます。
長いフォームのページを作成する際は、ボタンフッターを使うことができます。
<form method="post" action="<?=$view->action('update_sitename')?>"> <fieldset> <div class="form-group"> <label for="SITE" class="launch-tooltip control-label" data-placement="right" title="<?=t('By default, site name is displayed in the browser title bar. It is also the default name for your project on concrete5.org')?>"><?=t('Site Name')?></label> <?=$form->text('SITE', $site, array('class' => 'span4'))?> </div> </fieldset> <div class="ccm-dashboard-form-actions-wrapper"> <div class="ccm-dashboard-form-actions"> <button class="pull-right btn btn-success" type="submit" ><?=t('Save')?></button> </div> </div> </form>
ccm-dashboard-form-actions-wrapper と ccm-dashboard-form-actions クラスは、ページの下部に黒い背景色で固定配置することができます。