注文の多いXOOPS屋 TOP現在のブログ旧スタッフblog アーカイブ
このページは 2007〜2008 年に公開していた「株式会社RYUS スタッフblog」のアーカイブです。内容は当時のものです。

AssetManager の改造

2007/07/07 00:02   Ryuji   カテゴリ: cubson

cubson が生成するコードでは、AssetManger を通して各テーブルのハンドラを取得するようになっています。
自前のカスタムハンドラを作成して、それを使いたいときはコンストラクタで mAssetList に登録することになってます。

・参考「 cubson/壱型フレーム・開発ガイド/アセットマネージャ」

しかし、カスタムハンドラを作成するたびに、AssetManager を編集するのは面倒です。

そこで、AssetManager の _createHandler メソッドを次のように書き換えて使っています。

    function &_createHandler($name)
{
// customHandlerチェック
$file = XOOPS_MODULE_PATH.'/'.$this->mDirname.'/class/customHandler/'.ucfirst($name).'.class.php';
if(file_exists($file)){
require_once($file);
$className = ucfirst($this->mDirname).'_'.ucfirst($name).'CustomHandler';
$handler = new $className($GLOBALS['xoopsDB']);
return $handler;
}

return xoops_getmodulehandler($name, $this->mDirname);
}/PRE

これで、class/customHandler/ 下にカスタムハンドラがあれば、そちらが利用されるようになります。
※カスタムハンドラのクラス名は Dirname_TablenameCustomHandler にします。