0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-10-23

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

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

参考記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?