モジュールを作ろう!(6)調整その1
前回作成したモジュールのうち何箇所かはそのままでは使えませんので、今回はモジュール作成後の調整を解説します。
Default Action Name
モジュールのトップ(例:/modules/bookmark/ など)にアクセスした場合、どの画面を表示するか(どの機能が呼ばれるか)は、/class/Module.class.php で指定しています。
Cubson が出力したコードではこの部分に "Default" という存在しないアクションが指定されているため、モジュールのトップにアクセスすると、サイトのトップまで戻されてしまいます。
- /class/Module.class.php
function execute(&$controller) { if ($this->mActionName == null) { $this->mActionName = xoops_getrequest('action'); if ($this->mActionName == null) { $this->mActionName = "Default"; } } (後略)
この "Defalt" となっている部分を変えることで、モジュールのトップにアクセスしたときに表示する画面を制御することができます。
ところで、Cubson でモジュールを作ると、テーブルに対する「編集」「一覧表示」「詳細表示」「削除」の4つの機能(アクション)を生成してくれますが、これらの機能を呼び出すには、URLの中で以下のような引数を "action=" に加えます。
"テーブル名" + "アクションの種類"
"テーブル名" は、prefix を除いたテーブル名で、頭1文字目を大文字にします。
"アクションの種類" は、以下のとおりです。
- 編集: "Edit"
- 一覧表示: "List"
- 詳細表示: "View"
- 削除: "Delete"
たとえば、テーブル "ad1ud9_bookmark_bm" を「編集」であれば、"BmEdit"、テーブル "ad1ud9_bookmark_tag" を「詳細表示」であれば "TagView" となります。
したがって、URL は、
- {XOOPS_URL}/modules/bookmark/index.php?action=BmEdit
- {XOOPS_URL}/modules/bookmark/index.php?action=TagView
のようになります。
そして、先ほどの "Default" を、"action=" の引数に書き換えます("BmEdit"や"TagView"など)。
- /class/Module.class.php
function execute(&$controller) { if ($this->mActionName == null) { $this->mActionName = xoops_getrequest('action'); if ($this->mActionName == null) { $this->mActionName = "BmEdit"; } } (後略)
この例では、モジュールのトップにアクセスすると /modules/bookmark/index.php?action=BmEdit が呼び出されることになります。