ブログ - 開発用メモカテゴリのエントリ
XoopsModule, Legacy_AbstractModule などの関係についての資料を発見
http://homepage.mac.com/minahito/japanese/index_files/2d89715a772e44a5ed4310503b7f0921-120.html
こんなにいいドキュメントがあったのだね。
XoopsModuleは XOOPS2 由来のものなんだね。
そうかぁ...Cubeでもこれを引き継ぐということなのかな?
それとも互換性のため?
歴史を知らないとこういうときに困るなぁ...
もっと勉強しなくちゃ。
同様に BlockProcedure の設計資料も下記に
http://homepage.mac.com/minahito/japanese/index_files/1cbdd5a94ab4a57dffcc3a9d6f142758-122.html
http://homepage.mac.com/minahito/japanese/index_files/2d89715a772e44a5ed4310503b7f0921-120.html
こんなにいいドキュメントがあったのだね。
XoopsModuleは XOOPS2 由来のものなんだね。
そうかぁ...Cubeでもこれを引き継ぐということなのかな?
それとも互換性のため?
歴史を知らないとこういうときに困るなぁ...
もっと勉強しなくちゃ。
同様に BlockProcedure の設計資料も下記に
http://homepage.mac.com/minahito/japanese/index_files/1cbdd5a94ab4a57dffcc3a9d6f142758-122.html
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';
いつも忘れては昔のコードを探ったりするので、書いておこう。
という感じ...
そのまま直接使うこともできる
元ネタは http://d.hatena.ne.jp/studio-m/20070512/1178978926 から
ありがとうございます。
[追記]
Web上には色々考える人がいるのですね...
http://d.hatena.ne.jp/fbis/20100928/1285657357
確かに文字列配列しか使えないのは困るときがあるよね...
コードを追加したくなかったから上のようにしているのだけれど、
XCLならコアに近い部分にこういうのを忍ばせておくことも出来るし、結構いいかも。
Merci!!
<assign var=signal value=","|split:"青,黄,赤">
という感じ...
そのまま直接使うこともできる
<foreach item=i from=","|split:"1,2,3">
元ネタは http://d.hatena.ne.jp/studio-m/20070512/1178978926 から
ありがとうございます。
[追記]
Web上には色々考える人がいるのですね...
http://d.hatena.ne.jp/fbis/20100928/1285657357
確かに文字列配列しか使えないのは困るときがあるよね...
コードを追加したくなかったから上のようにしているのだけれど、
XCLならコアに近い部分にこういうのを忍ばせておくことも出来るし、結構いいかも。
Merci!!
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メニューへの対応...
altsys [0.58] の便利な機能
おすすめ度:★★★★★
モジュール開発には必須
開発をしている際には頻繁にテンプレートを修正する。
このとき修正したテンプレートを毎回DBテンプレートに反映したり、DBテンプレートを直接修正するのは大変だ。
altsys [0.58] の機能を使えば、モジュールのテンプレートを修正した際に自動でDBテンプレートを更新することができる。
おすすめ度:★★★★★
モジュール開発には必須
開発をしている際には頻繁にテンプレートを修正する。
このとき修正したテンプレートを毎回DBテンプレートに反映したり、DBテンプレートを直接修正するのは大変だ。
altsys [0.58] の機能を使えば、モジュールのテンプレートを修正した際に自動でDBテンプレートを更新することができる。
■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