ブログ - ユーザー登録画面のカスタマイズ (Preload版) その1
以前ユーザ登録画面のカスタマイズをHackで対応してみた。「ユーザー登録画面のカスタマイズ」
今回はプリロードを使ってHackなしで対応してみる。
以下は [XCL 2.1.4] [XCL 2.1.5] で試してみたもの...
今回はプリロードを使ってHackなしで対応してみる。
以下は [XCL 2.1.4] [XCL 2.1.5] で試してみたもの...
_
■機能:名前を登録項目にする。
とりあえず XOOPS_TRUST_PATH/modules/ に user/ ディレクトリを作成する。
まずフックのための仕掛け作り。プリロードを作る。
preload/Primary/HookUser.class.php
続いて、このプリロードが機能するようにする。
XOOPS_TRUST_PATH/modules/ の下に作ってしまったので、setting/site_default.ini.php に書くことができない...
シンボリックリンクが使えるなら XOOPS_ROOT_PATH/preload からシンボリックリンクを張るとか
使えないなら、XOOPS_ROOT_PATH/preloadへコピーする。
これで XOOPS_TRUST_PATH/modules/user/actions/ の下に ...ActionEx.class.php というファイルがあれば、元の ...Action.class.php の代わりに使われるようになる。
その2へ続く...
■機能:名前を登録項目にする。
とりあえず XOOPS_TRUST_PATH/modules/ に user/ ディレクトリを作成する。
まずフックのための仕掛け作り。プリロードを作る。
preload/Primary/HookUser.class.php
<?php
class HookUser extends XCube_ActionFilter {
function preFilter() {
$root = $this->mRoot;
$root->mDelegateManager->add('User_ActionFrame.CreateAction', 'HookUser::_createAction', XCUBE_DELEGATE_PRIORITY_NORMAL-1);
}
function _createAction(&$actionFrame) {
if (is_object($actionFrame->mAction)) {
return;
}
//
// Create action object by mActionName
//
$className = "User_" . ucfirst($actionFrame->mActionName) . "ActionEx";
$fileName = ucfirst($actionFrame->mActionName) . "ActionEx";
if ($actionFrame->mAdminFlag) {
$fileName = XOOPS_TRUST_PATH . "/modules/user/admin/actions/${fileName}.class.php";
}
else {
$fileName = XOOPS_TRUST_PATH . "/modules/user/actions/${fileName}.class.php";
}
if (!file_exists($fileName)) return;
require_once $fileName;
if (class_exists($className)) {
$actionFrame->mAction =& new $className($actionFrame->mAdminFlag);
}
}
}
?>
続いて、このプリロードが機能するようにする。
XOOPS_TRUST_PATH/modules/ の下に作ってしまったので、setting/site_default.ini.php に書くことができない...
シンボリックリンクが使えるなら XOOPS_ROOT_PATH/preload からシンボリックリンクを張るとか
使えないなら、XOOPS_ROOT_PATH/preloadへコピーする。
これで XOOPS_TRUST_PATH/modules/user/actions/ の下に ...ActionEx.class.php というファイルがあれば、元の ...Action.class.php の代わりに使われるようになる。
その2へ続く...