XOOPSモジュール作成

仕事で、XOOPSモジュールを作成することになり、
触ったことのない、XOOPSをひととおり触ってみた。


以前、分厚い書籍をチラ見して、難しそうだ・・・という印象を持ったが、
そんなに難しい物でも無かった。
覚えることもそんなにない。


そこで、初歩のXOOPS作成講座をやってみる。
講座といっても読みきりだけどね。(自分の覚書きなので読みにくさ抜群でお送りします。)


まず、覚えることは大きく3つ。

の3つ。


まず、モジュール内のディレクトリ構成。
これについては、モジュールのテンプレを自動生成してくれるWebサービスがあるので、こちらを利用させてもらう。
つまるところ、覚えることはほとんどない。
一応説明しておくと、
admin以下が管理画面
blocks以下がブロック*1
上記ディレクトリと同じ階層にあるファイルが一般画面のファイルとなり、
templatesがテンプレート
sqlがインストール時に突っ込むSQL
となる。基本的に名前から類推できるので、
管理画面、ブロック、一般画面の違いさえ把握できればそれでよい。


次にDBアクセス。
TECH/query xoops wiki
ここが参考になる。
$xoopsDBはグローバル変数なのだが、届かない場合もあるので、事前に
$xoopDB =& Database::getInstance();
と書いてやったほうが良さげ。
アクセスについて簡単に説明すると、
基本的にアクセスはActiveRecordとかそういうやつはなく、sql文を構築して投げる形をとります。
テーブル名は、共通のプレフィックスが付くので、$xoopsDB->prefix('test_tbl')という書き方でプレフィックスを補います。
select文の実行には、queryメソッドを。insert,delete,updateの実行にはqueryFメソッドを使用します。


select文の実行は以下のような形で可能。
$results = array();
$sql = 'select * from '.$xoopsDB->prefix('test_tbl');
if($result = $xoopsDB->query($sql)) {
 while($row = $xoopsDB->fetchArray($result)) {
  $results[] = $row;
 }
}
fetchArrayでキーがカラム名連想配列が返ります。
ここまで分かれば、DBアクセスは余裕でしょう。


最後にSmarty
これは、Smartyのオフィシャルやらを見れば分かります。
簡単なモジュールの作成でちょっとだけ触れていますので、こちらも参考に。
XOOPSSmartyの書き方は、{〜〜}ではなく、<{〜〜}>となるので注意が必要。


ホントに最後。
SQLやテンプレートを追加した場合は、xoops_version.phpに追記しないといけません。
(しないと、インストールが正常に行われない)
書き方は、簡単なモジュールの作成に書いてあるので参考にしてみてください。

*1:トップページに表示できるやつ。