XOOPSで異なる外部モジュールが同じ物として判断される[お仕事]
(2010-12-14 08:10:56) by shinoda


いやぁ、ちょっとハマって無駄な時間を過ごした。(^^;

例えば、db_user と db_shop というディレクトリ名で、XOOPS 汎用データベースモジュールを元にした外部モジュールをアップしてインストールをしようとすると、どちらの外部モジュールも一覧に同じ名前で表示されてしまうのだ。

modinfo.php の中で、db_user は「ユーザ検索」、db_shop は「お店検索」と名前を付けているのに、どちらも「ユーザ検索」と表示されてしまう・・・という具合だ。

結局、問題なのは db_user と db_shop というディレクトリ名であった。

XOOPS 汎用データベースモジュールは、ディレクトリ名を変えれば複数設置出来るようになっているのだが、そのため、モジュール名に添字(affix)を付けてモジュールを区別出来るようにしているみたい。

その添字の作り方が

$affix = strtoupper(strlen($dirname) >= 3 ? substr($dirname, 0, 3) : $dirname);

という具合にディレクトリ名の頭 3文字だけを取っているのが問題のようである。

ということで、db1_user、db2_shop のように先頭 3文字を抜いても問題の無いディレクトリ名にしてやれば問題ないのであった。

なんか、もう、いちいちこういう細かい仕様で引っかかって、全然本来の開発のところにたどり付けんな。

複数のプログラマ仲間が「今更 XOOPS?PHP のバージョンアップにもまともに対応出来てないのに?XOOPS に手を出すなんて 3〜4年遅いよ。」と言うてたのは本当だな。今更 XOOPS なのである(^^;


コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8