XOOPSのモジュールを作ってみる

ApacheとかXOOPSはインストールされているものとする。

ここでスケルトンを作成できるので作ってmodulesディレクトリの下におく。ここではモジュール名はbunkoにした。そしてこのモジュールを管理画面からインストールする。成功したらトップページのメニューにBUNKOが追加されるので、クリックして実行できた。

bunko1

一般ユーザ(非登録ユーザ)で実行できないので、以下のようにしてアクセス可能にする。

bunko2

あとは作っていくわけだがこれもなかなか難しい。デフォルトのindex.phpは以下のようになっている。

bunko_index.htmlはtemplatesディレクトリにあるファイルを指定している。これがテンプレートになっていて、このファイルの中で使われる変数の定義をしているのがassignの行だろう。_XD_TITLEはlanguageで定義されている。つまりbunko_index.htmlがMVCのビューに相当して、index.phpがモデルとコントローラになるのか?

このスケルトンにはデータベース関係が含まれていないので、少し書いてみたい。mysqlディレクトリにあるmysql.sqlはこのモジュールのインストール時に実行され、必要なデータベースが作られると思われる。まずmysql.sqlを以下のように編集する。

次にxoops_version.phpの以下の行のコメントをはずしてからモジュールの再インストールを行ってみる。

bunko3

fc6515_bunkodata ができた。

このテーブルにアクセスしてみる。ここではあらかじめデータを入れておき読み込みのみを考える。入ってるデータは以下。
bunko4

まずbunko_index.htmlを以下のようにする。

<{で始まってるのはsmartyの文法なのか?まあいいや。 次にindex.phpを以下のようにする。

templateを編集した場合は、モジュールのアップデートをしなければならないのでアップデートしてから以下のようにできた。 bunko5

最後にはユーザによる処理分けについて。
これは$xoopsUserというのを使うらしい。これが定義されていなければ未登録ユーザ。定義されていればいろいろ情報を持ってこれる。
これを使って以下のようにできた。

bunko_index.html

index.php

bunko6
難しかった。

★ここにあるソースのライセンスはGPLを継承。

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)