Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

[baserCMS]プラグイン側からウィジェットを追加する

More than 5 years have passed since last update.

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」の変数名で、入力内容を利用できます。

入力欄の作り方は、以下のファイルが参考になります。

参考記事

materializing
Cakeをもぐもぐ。。。 https://github.com/materializing
http://www.materializing.net/
e-catchup
国産オープンソース baserCMS を世に送り出したWeb技術のプロフェッショナル集団です。
https://catchup.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away