XOOPS用モジュールの開発支援ツールであるcubsonを使って、レストラン評価モジュールを作ってみましょう。
今回はその3回目。
前回の記事はこちらcubsonを使って3時間で作るXOOPS評価モジュール[2]
分かりづらい点や間違い点、質問などありましたら、お気軽にコメントしてください^^
(4) デフォルト・アクションの修正
前回までで、cubsonのインストール、プロジェクトの作成、テーブルの作成まで終わって、とりあえずモジュールの原型ができました。
しかし、今のままだとモジュールにアクセスしたときに何も表示してくれません。
そこで、デフォルトではレストランの一覧を表示するように設定します。
{module_dir}/class/Module.class.php
※{module_dir}は、モジュールが保存されているディレクトリ(C:\xampp\htdocs\html\modules\resrateなど)
を開いて、
function execute(&$controller)内の
$this->mActionName = "Default";
の
“Default”を{テーブル名}+{アクション}
に変更します。
今回はレストランの一覧を表示したいので、”RestaurantList”に変更しました。
変更後:
$this->mActionName = "RestaurantList";
○アクション一覧
- 編集: “Edit”
- 一覧表示: “List”
- 詳細表示: “View”
- 削除: “Delete”
(5) テンプレートの修正
cubson が生成する一覧表示用のコードには余計な文字がまざっていて、うまく表示してくれません。そこで
{module_dir}/templates/{modulename}_{tablename}_list.html
の中の
"|theme}>
をすべて削除してください。
(6) インストール
ここで一度モジュールをインストールしてみましょう。
インストール方法は普通のモジュールと同じです。
モジュールをインストールすると、メインメニューに「RESRATE」というモジュール名が追加されているはずですので、それをクリックしてみましょう。
モジュールにアクセスすると、レストランの一覧表示画面になります。
また「ADD_A_NEW_RESTAURANT」から、新規レストランの追加もできるはずです。
各テーブルへのアクセスは
http://(XOOPSのURL)/modules/{モジュール名}/index.php?action={テーブル名}{アクション}
となっています。たとえば評価(rating)の一覧表示を見たい場合は
http://(XOOPSのURL)/modules/resrate/index.php?action=RatingList
とします。
【ここまでで50分】
次回は投稿時にユーザーIDを自動入力するようにしてみましょう。
はじめまして。
勉強させていただきます。
ちょっと質問させてください。
変更後:
$this->mActionName = “RestaurantList”;
ですよね?
あと、テンプレート自体の作成はどうやるのでしょうか?。
恐縮ですが、よろしくお願いいたします。
mmさん
>変更後:
>$this->mActionName = “RestaurantList”;
>ですよね?
おっしゃるとおりです。修正しました。
ありがとうございます。
>テンプレート自体の作成
cubsonを最初に使ったときに自動で生成されないでしょうか。
いかがでしょう。
初歩的かも知れませんが。。。
テーブルの作成の前にプロジェクトの生成がありますが、この手順でいくとCubsonはテーブルの名前も項目の内容も分からないので、
actions/Restaurant.class.php
を生成できないように思うんですが、これは動的にできるんですか?
テンプレートも同じ意味で、最初にはcubsonくんもわからないかと。。
どうなんでしょうか?
ものすごく今更なのですが、テンプレートは「cubsonを最初に使ったときに自動で生成」されません。
resrate関連のファイルを編集しているのならば、それらを全て保存するなりして終了させた後、
cubsonのコンソールウィンドウに以下のようなコマンドを入力します。
modulename resrate
wizard restaurant
wizard cat
wizard rating
そうすれば、templateフォルダにファイルが作成されます。
後は、xoopsの管理画面でresrateモジュールのアップデートを行えば、使用可能の状態になると思います。