ブログ - XCL開発資料カテゴリのエントリ
settings/site_custom.ini.php または
settings/site_default.ini.php
root= には XOOPS_ROOT_PATH などの定数が指定できる
path= root 以降のパス
class=クラス名
settings/site_default.ini.php
[Cube]
Controller=XXXX_Controller
[XXXX_Controller]
root=
path=
class=
root= には XOOPS_ROOT_PATH などの定数が指定できる
path= root 以降のパス
class=クラス名
include/version.php に書いてある
<?php
define("XOOPS_VERSION", "XOOPS Cube Legacy 2.1.4");
?>
XCL流のブロック開発はクラスを使ったもの?
■従来のブロック定義
xoops_version.phpの定義
(modules/legacy/admin/class/ModuleInstallUtils.class.php参照)
■従来のブロック定義
xoops_version.phpの定義
(modules/legacy/admin/class/ModuleInstallUtils.class.php参照)
■従来のインストール&アップデート機能の定義
xoops_version.php に下記を定義する。
xoops_version.php に下記を定義する。
$modversion['onInstall'] = 'oninstall.php';
$modversion['onUpdate'] = 'onupdate.php';
$modversion['onUninstall'] = 'onuninstall.php';
XCL流モジュール開発で管理者メニューを作る場合。
■
xoops_version.php に
$modversion['hasAdmin'] = 1;
が必要
--------
■クラス定義
class/Module.class.php ファイルの中に
Dirname_Module extends Legacy_ModuleAdapter
(または extends Legacy_AbstractModule ?)
クラスが必要
クラスメソッドとして以下のものを記述
public function getAdminMenu()
■D3 (not class)
adminmenu="admin_menu.php"
$adminmenu4altsys (??)
■D3対応への考察
Legacy_Utils::createModule()ではクラスファイルを
modules/${dirname}/class/Module.class.php としているので、このままでは公開側にproxyファイルを必要とする。
同様にモジュールクラス名も
ucfirst(モジュールディレクトリ名)."_".'class名'
という形なので、複製に対応できない...
■
Legacy_Utils::createModule() にはデリゲート「Legacy_Utils.CreateModule」が設定されている。
ここでオーバーライドすれば複製対応が可能と思われる。
■altsysメニューへの対応...
■
xoops_version.php に
$modversion['hasAdmin'] = 1;
が必要
--------
■クラス定義
class/Module.class.php ファイルの中に
Dirname_Module extends Legacy_ModuleAdapter
(または extends Legacy_AbstractModule ?)
クラスが必要
クラスメソッドとして以下のものを記述
public function getAdminMenu()
■D3 (not class)
adminmenu="admin_menu.php"
$adminmenu4altsys (??)
■D3対応への考察
Legacy_Utils::createModule()ではクラスファイルを
modules/${dirname}/class/Module.class.php としているので、このままでは公開側にproxyファイルを必要とする。
同様にモジュールクラス名も
ucfirst(モジュールディレクトリ名)."_".'class名'
という形なので、複製に対応できない...
■
Legacy_Utils::createModule() にはデリゲート「Legacy_Utils.CreateModule」が設定されている。
ここでオーバーライドすれば複製対応が可能と思われる。
■altsysメニューへの対応...
■db 取得の仕方
(1) $db = $xoopsDB;
(2) $db = & XoopsDatabaseFactory::getDatabaseConnection();
(3) $db = $root->mController->getDB();
個人的には(3)がいいかなぁ...
■クラス XoopsMySQLDatabase
(1) $db = $xoopsDB;
(2) $db = & XoopsDatabaseFactory::getDatabaseConnection();
(3) $db = $root->mController->getDB();
個人的には(3)がいいかなぁ...
■クラス XoopsMySQLDatabase
D3モジュール関連の調査をしているときに
$mydirname と $mytrustdirname の値が空になることがあった。
xoops_version.php 内に関数を作って
関数内から global 宣言をして $mydirname などにアクセスするのだが、いくら確認しても空なのだ。
まったく理解できずに、設定している場所にも global 宣言を置いてみたら、正しくアクセスできるようになった。
kernel/module.php loadInfo() 内から xoops_version.php はinclude されていた。
確かに、xoops_version.php で定義するものがグローバルになってしまうのは困るから...
やはり、xoops_version.php にはあまり変なことをしないほうがよさそうだ。
$mydirname と $mytrustdirname の値が空になることがあった。
xoops_version.php 内に関数を作って
関数内から global 宣言をして $mydirname などにアクセスするのだが、いくら確認しても空なのだ。
まったく理解できずに、設定している場所にも global 宣言を置いてみたら、正しくアクセスできるようになった。
kernel/module.php loadInfo() 内から xoops_version.php はinclude されていた。
確かに、xoops_version.php で定義するものがグローバルになってしまうのは困るから...
やはり、xoops_version.php にはあまり変なことをしないほうがよさそうだ。
Legacypage.UserInfo.Access
ユーザ情報を表示する
User_LegacypageFunctions::userinfo
Legacypage.Edituser.Access
ユーザ情報を編集する
User_LegacypageFunctions::edituser
Legacypage.Register.Access
ユーザ情報を登録する
User_LegacypageFunctions::register
Legacypage.User.Access
???
User_LegacypageFunctions::user
Legacypage.Lostpass.Access
パスワード紛失(?)
User_LegacypageFunctions::lostpass
Site.CheckLogin
Loginチェックをする(?)
User_LegacypageFunctions::checkLogin
Site.CheckLogin.Success
Loginチェック完了(?)
User_LegacypageFunctions::chckLoginSuccess
Site.Logout
Logoutをする(?)
User_LegacypageFunctions::logout
Legacypage.Misc.Access
???
User_LegacypageFunctions::misc
これらは modules/user/preload/Primary/Primary.class.php で定義されている。
User_LegacypageFunctions は modules/user/kernel/LegacypageFunctions.class.php で定義されている
新規登録をデリゲートで差し替えるのは、かなりのコードを記述(というかほとんどコピペしてきて、パス関係を修正)しなければできないと思う...
単純な項目の追加などには、直接修正のほうがどう考えてもメリットがあるのではないだろうか?
ユーザ情報を表示する
User_LegacypageFunctions::userinfo
Legacypage.Edituser.Access
ユーザ情報を編集する
User_LegacypageFunctions::edituser
Legacypage.Register.Access
ユーザ情報を登録する
User_LegacypageFunctions::register
Legacypage.User.Access
???
User_LegacypageFunctions::user
Legacypage.Lostpass.Access
パスワード紛失(?)
User_LegacypageFunctions::lostpass
Site.CheckLogin
Loginチェックをする(?)
User_LegacypageFunctions::checkLogin
Site.CheckLogin.Success
Loginチェック完了(?)
User_LegacypageFunctions::chckLoginSuccess
Site.Logout
Logoutをする(?)
User_LegacypageFunctions::logout
Legacypage.Misc.Access
???
User_LegacypageFunctions::misc
これらは modules/user/preload/Primary/Primary.class.php で定義されている。
User_LegacypageFunctions は modules/user/kernel/LegacypageFunctions.class.php で定義されている
新規登録をデリゲートで差し替えるのは、かなりのコードを記述(というかほとんどコピペしてきて、パス関係を修正)しなければできないと思う...
単純な項目の追加などには、直接修正のほうがどう考えてもメリットがあるのではないだろうか?