baserCMSにはウィジェット機能(/admin/widget_areas/index)があります。
ブログコンテンツでは、最近の投稿や月別一覧を表示できたり、固定ページでは、見ているページが属しているカテゴリに属する固定ページ一覧を表示できる機能です。
ドラッグ&ドロップで、表示するパーツの場所を簡単に入れ替えできたり、いくつものパターンが作れるので便利な機能ですね。
このウィジェットには、プラグイン側から好きな内容を追加することができます。
想定している対象者
- baserCMSでウェブサイトを制作をしている方
- baserCMSのプラグインを開発してる方
- baserCMSのプラグインを、これから作ってみようと思ってる方
- PHPer
状況
- プラグインに独自のウィジェットを持たせて利用したい
作り方(概要)
- プラグイン内のビュー、Elements/widgets 内に、ウィジェット用のファイルを置く
- admin フォルダ側には、管理側で利用するファイルを置く
- 公開側と管理側のウィジェット用のファイル名は同じに揃える
作り方(公開側)
以下のパスにファイルを作成します。
- /app/Plugin/YOUR_PLUGIN/View/Elements/widgets/YOUR_WIDGETS.php
<?php
/**
* [PUBLISH][widgets]
*
*/
?>
<div class="widget">
<?php if ($name && $use_title): ?>
<h2><?php echo $name ?></h2>
<?php endif ?>
</div>
作り方(管理側)
以下のパスにファイルを作成します。
- /app/Plugin/YOUR_PLUGIN/View/Elements/admin/widgets/YOUR_WIDGETS.php
<?php
/**
* [ADMIN][widgets]
*
*/
$title = 'ウィジェットとして表示されるタイトルを記述する';
$description = 'ウィジェットの説明文を記述する';
?>
設定を持たせたい場合
管理側のウィジェットに設定を持たせることができます。
<?php echo $this->BcForm->label($key . '.your_input', '入力欄') ?>
上記で作成した場合、公開側のウィジェット用のファイル内では「$your_input」の変数名で、入力内容を利用できます。
入力欄の作り方は、以下のファイルが参考になります。
参考記事
- ポピュラーブログポスト プラグインの場合はこんな感じです。
https://github.com/materializing/PopularBlogPost/blob/master/View/Elements/admin/widgets/popular_blog_post.php