CakePHPベースの「コーポレートサイトにちょうどいい」国産CMS 
「baserCMS」と 
ベーサーマーケット 
baserCMSユーザ会 関東エリア幹事 
特定非営利法人ベーサー・ファウンデーション 副理事長 
ECWorks 滝下 真玄
自己紹介 
• 滝下 真玄 (たきした まさはる) 
@ecworks_masap 
facebook.com/ecworksmasap 
• baserCMSユーザ会 
関東エリア幹事 
&開発チームメンバー 
• CakePHPコミュニティ
自己紹介
「コーポレートサイトにちょうどいい」 
CakePHPベースのCMS
http://barket.jp/ 
プラグインやテーマを購入出来る 
公式サイト 
(無料ダウンロードあり)
否!
http://barket.jp/ 
プラグインやテーマを 
購入・販売出来る公式サイト 
(無料ダウンロードあり)
販売出来る
つまり
金儲けが 
可能!!
金持ちまでの流れ 
•「http://member.basercms.net/」に 
アクセスしてメンバー登録 
•メンバー画面からプラグインを登録 
•プラグイン・テーマが売れる 
•(゚Д゚)ウマー
「member.basercms.net」にアクセスして 
このボタンを押すことが 
成功への一歩
人生転落注意! 
「member.basercms.net」ではなく 
「barket.jp」の登録をしても 
売れません!! 
間違いやすいので注意!
販売手数料 
•20% 
•AmazonやAppStoreよりも 
断然お得!!
プラグイン開発のポイント 
•基本的にはCakePHPの 
プラグイン機能の作法に則る 
•素のCakePHPの技術は全部 
使えます! 
•その上で、baserCMSの 
強力な機能拡張を利用
成功の鍵
CakeEventを 
極める
baserCMSとCakeEvent 
/Sample/Event/SampleControllerEvent.php 
! 
class SampleControllerEvent extends BcControllerEventListener { 
! 
public $events = array( 
'Users.beforeRender', 
'Users.afterEdit', 
); 
! 
public function usersBeforeRender(CakeEvent $event) { 
// ユーザ編集のビューにサンプルという文字列を引き渡す 
$Controller = $event->subject(); 
$Controller->set('sample', 'sample'); 
} 
! 
public function usersAfterEdit(CakeEvent $event) { 
// ユーザー情報変更後のデータを参照 
var_dump($event->data); 
} 
} 
プラグインイベント 
作成例
baserCMSとCakeEvent 
【コントローラ】 
{ControllerName}.{CakePHP標準イベント名}(例:Users.beforeRender) 
Mail.Mail.beforeSendEmail(メール送信直前) 
Mail.Mail.afterSendEmail(メール送信直後) 
Blog.BlogPosts.afterAdd (ブログ記事追加直後) 
Blog.BlogPosts.afterEdit(ブログ記事編集直後) 
Users.afterAdd(新規ユーザ追加直後) 
Users.afterEdit(既存ユーザ編集直後) 
Pages.afterAdd(新規ページ追加直後) 
Pages.afterEdit(既存ページ編集直後)
baserCMSとCakeEvent 
【ビュー】 
{ControllerName}.{CakePHPの標準イベント名}(例:Users.beforeLayout) 
beforeElement(エレメント生成直前) 
afterElement(エレメント生成直後) 
{ControllerName}.beforeElement(エレメント生成直前) 
{ControllerName}.afterElement(エレメント生成直後) 
header(ヘッダーエレメント生成直後) 
footer(フッターエレメント生成直後) 
{ControllerName}.header(ヘッダーエレメント生成直後) 
{ControllerName}.footer(フッターエレメント生成直後)
baserCMSとCakeEvent 
【モデル】 
{ModelName}.{CakePHP標準イベント名}(例:User.beforeFind) 
【ヘルパー】 
Html.beforeGetLink(リンク取得直前) 
Html.afterGetLink(リンク取得直後) 
Form.beforeCreate(フォーム開始タグ生成直前) 
Form.afterCreate(フォーム開始タグ生成直後) 
Form.beforeEnd(フォーム終了タグ生成直前) 
Form.afterEnd(フォーム終了タグ生成直後) 
Form.beforeInput(フォームパーツタグ生成直前) 
Form.afterInput(フォームパーツタグ生成直後)
baserCMSとCakeEvent 
【ヘルパー】 
Html.beforeGetLink(リンク取得直前) 
Html.afterGetLink(リンク取得直後) 
Form.beforeCreate(フォーム開始タグ生成直前) 
Form.afterCreate(フォーム開始タグ生成直後) 
Form.beforeEnd(フォーム終了タグ生成直前) 
Form.afterEnd(フォーム終了タグ生成直後) 
Form.beforeInput(フォームパーツタグ生成直前) 
Form.afterInput(フォームパーツタグ生成直後)
baserCMSとCakeEvent 
CakeEventをフル活用したアプリは 
おそらくbaserCMSだけ! 
! 
学習教材としても是非どうぞ!!
イベントの予定 
•「baserプラグイン勉強会」 
•「baserCMS Meetup」 
共に11月以降に開催計画中! 
(どなたか会場是非貸してください!)
baserCMSの雑談広場 
http://www.facebook.com/groups/basercms.zatsudan/
ご静聴 
ありがとうございました 
http://basercms.net/

PHPカンファレンス2014「baserCMSとベーサーマーケット」