モジュールを作ろう!(6)調整その1

本記事は、Cubson というモジュール生成ツールを使った XOOPS のモジュール作成方法を解説するものです。

対象は、XOOPS のモジュールを作ったことはないし、PHP もプログラミング自体もほとんど経験が無い、という人です。

前回作成したモジュールのうち何箇所かはそのままでは使えませんので、今回はモジュール作成後の調整を解説します。

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 が呼び出されることになります。