dari88's diary

これから趣味にするプログラミング/PHP/javascript/kohana/CMS/web design/

XOOPS(XCL)のお勉強・・・簡易掲示板の構造を調べる

今日も「XOOPS Cube Legacy デベロッパーズ・バイブル」の勉強をしています。今日のお題は第6章「モジュールを作ってみよう」の簡易掲示板 lighhtboard です。簡易といってもこれは相当な機能を持っています。さすが CMS という感じではあります。

で、このサンプルコードなんですが、のっけから問題があったので対策しました。

<対策>
EUC-JP → UTF-8 変換は昨日実施した。
xoops にインストール出来ず、エラーメッセージが出る。どうも SQL 文がエラー。mysql.php の最後の文 TYPE=MyISAM; を ENGINE=MyISAM; に変更したらインストール出来た。原因は MySQL のバージョンが新しいからだと思う。
・掲示板にアクセウすると PHP の警告文が沢山出る。どうも参照渡しに関する文句みたいだ。PHP5 では &obj =& new A; という参照渡しのコンストラクタの使い方は警告が出るようだ。
・対策として 秀丸grep で =& new を = new に全部変更した。

ということでこのサンプルコードはすっきり動いています。このサンプルコードは修正BSDライセンスということになっています。って何なんだと調べると、条件を満たせば再配布が可能なんですね。ということで、ボンビー学生の為に lighhtboard バージョン 0.0 を再配布しちゃいます。これは上記の修正のほか、教科書から得た簡易説明を記入してあります。というか、教科書ではこれくらいしか説明していません・・・(^^;;;

尚、lightboard の最新版は作者のサイトで配布されていますので、実運用する場合はこちらを使用した方が良いでしょう。

XOOPS というのは要するにいろいろなお仕事をするクラスや関数の集合体だと思うのですが、lightboard ではどれだけ使っているのかを調べてみました。

継承してクラスを作っているもの( extends で検索)
Legacy_BlockProcedure
Legacy_ModuleAdapter
XCube_ActionForm
XoopsObjectGenericHandler
XoopsSimpleObject

newでオブジェクトを作っているもの( = new で検索)
CriteriaCompo
XCube_FieldProperty
XCube_PageNavigator
XCube_StringProperty
XCube_TextProperty

関数を呼び出しているもの(xoops_で検索)
xoops_gethandler()
xoops_getLinkedUnameFromId()
xoops_getmodulehandler()

 なるほど、たったこれだけしか使ってないんですね。何を言いたいかというと、先ずはこれらのクラスや関数を勉強すればデータベースを使った簡単な掲示板くらいは作れるということですね。泥沼に落ち込んだような気分が少し晴れたような気がします。

先ずはこのサンプルコードを読み込んで理解を深める事と致しましょう。