XNA Express Beta start! But...
マイクロソフトはちょうどXNA Game Studio Express Betaダウンロードをリリースしたところです。 私は、このベータをテストするために加わるつもりです。 しかし、私はXOOPS Cube Legacy2.1.0Betaを最優先させなければなりません。Umm…

9月に忙しくなり過ぎるので、私はLegacyのほとんどのタスクを今月終えたかったです。 恐らく、私はうまくいった状態でそれらを終えました。 Legacy には、多くの短所があります。 しかし、これらの短所は、プロジェクトチームがリリースを遅らせる原因にはならないでしょう。私たちは2.1.0の後で「クールでない」問題を修理すればいい。

私は今月、かなり楽しかった。
XOOPS Cube Legacy2.1.0のテストはまだ十分ではありません。 しかし、多くのテスターがアルファーを見直そうとするので、私は心配していません。テストにジョインしてください。以下はレポート場所のリストです。

さらに、あなたはバグをあなたの国のサポートサイトに報告することができます。 あなたの国のサポートサイトの管理者はあなたのレポートをプロジェクト・チームに伝えるでしょう。

よろしくお願いします。
|
Cubson may need change?
XCube名前空間の仮想サービスクラスはビジネスロジックための具体的な定義です。XCube_Serviceのサブクラスは他のモジュール、他のサイト、および携帯電話のようなスマートクライアントに接続可能です。 開発者はモジュール間連携のためにXCube_Serviceを使用するでしょう。それにより、サイトオーナーはAPIを公開可能です。つまり、XCube_Serviceはモジュール間連携とサイト間連携を抽象化するレイヤーです。

ShadeはXCube名前空間としての例です。 それには、Legacyとの互換性がありません。 開発者がShadeのために彼のモジュールを移植したいなら、彼は上手にライブラリを作らなければなりません。 しかし、それには、cubsonは良くはありません。 それは問題です。 CubsonはXCube層の一般的なモジュールを可能な限り生成するべきです。 cubsonがそれをするようになるなら、cubsonユーザはShadeのためのライブラリとして彼のモジュールのいくつかの部品を移植することができます。 そして、それができないまでも、彼はLegacyでウェブサービスを走らせることができるかもしれません。 少なくとも、cubsonはLegacyでXCube_Serviceの実装を生成させるようにならなければなりません。
|
Valid HTML CMS possibility
XOOPS2の歴史の中で、多くのデザイナーが、テーブルタグベースのXOOPS2テンプレートに異議を唱えました。そこで、私は、Shadeを valid HTMLテンプレートにしてみようと思い立ちました。しかし、エンドユーザにとって扱いやすいので、テーブルタグベーステンプレートも有益です。

おそらく、最も良い解決策はXLST+XMLテンプレートです。 この解決策で、私たちは valid HTMLテンプレートと非 valid HTMLテンプレートの両方を扱うことができます。 しかし、私は重要なことを忘れていました。だれがそのような難しいシステムを扱うことができるか?という問題です。それがXLST+XMLではなく、ただの valid HTML テンプレートであったとしても、エンドユーザにとっては十分難しいです。

プロのデザイナーにとって、 valid HTML テンプレートは朗報です。彼らは自由自在にHTMLとCSSを調整することができます。もちろん、彼らはXLST+XMLもよく知っています。 しかし、私のようなウェブ世界のエンドユーザは、そのような技術的なものは決して制御することができません。

この例を見てください。 多くのデザイナーが以下のような HTML を嫌っています。

<font color="red">{$date}</font><br/> / {$poster.name}


それは確かにun-validです。 しかし、エンドユーザはテンプレートマネージャで色を変えることができます。 (彼のテーマの背景色が赤ならば、フォントカラーを変えざるをえないでしょう)

テンプレートが valid HTML であるなら? 彼はCSSを変えなければならないでしょう。そのため、動的CSSメカニズムとCSSマネージャが必須スペックになります。そして、もし項目の位置を変えたいなら、CSSの知識を使ってテンプレートとCSSの両方を変えなければなりません。それはエンドユーザにとってまず無理な話です。

valid
HTMLテンプレートのために、私たちは「エンドユーザはHTMLCSSを変更することができない」という前提条件に立たなければなりません(XOOPSはホビー玩具ですからね)。そして、原則として、テーマがモジュールのテンプレートとCSSの両方を持つことになるでしょう。 RapidWeaver は、そのようなシステムになっています。そして、プロフェッショナルなデザイナーのコントリビュートが必須になるでしょう。
|
Shade!
私はXOOPS Cube層のXCube_Serviceを開発しなければなりません! そして、そのクラスはプロジェクト・チームの他のメンバーによってレビューされなければなりません。 それに関しては、私は日陰研究所を作りました。 すみません! それは日本語専用です。

XOOPS Cube層には、2つの未フィックスな特徴があります。 それらは、XCube_UserAccountXCube_Serviceです。 私はそれらに関して良い案があります。 XOOPS Cubeは接続する抽象的なインタフェースです。 したがって、XCube_UserAccountはウェブブラウズのアクセサとウェブサービスアクセサのための抽象的な層です。 そして、XCube_ServiceXOOPS Cubeの就航メカニズムです。

私は
XOOPS Cube Shadeでそのようなデザインを確立しなければなりません。
|
XNA!
XNA express edition を楽しみにしています。これは、ゲーム開発を楽しむことを忘れたディベロッパーのためのWonder WitchおよびSaturn Basic以来のビッグニュースです。そして、これは C# の簡易ゲームエンジン Buddha プロジェクトのための新しい目的となるでしょう。私たちは、'Easy to Use' 3D シーングラフエンジンとして Buddha を開発し続けました。Buddha PICOPICO3D ゲームを容易に開発することを可能にします。私たちはXNAXBOX360のために Buddha をリメイクするでしょう。

なお、
PICOPICO 3Dゲームは古典的なアーケードのような簡単な3Dショート・ゲームを意味します。
|
XOOPS Cube Manifesto and Tool
私たちは Cube Legacy 2.1.0までに XOOPS Cube のマニフェストのフォーマットをフィックスすることができないかもしれません。それはまだ必須の仕様ではありませんので、私はプロトタイプツールを開発することを試したいと思います。

XOOPS Cube のマニフェストは、アップデート情報、重要なニュース、他のモジュールへの依存、および規則スタイルを示す基礎データです。 XOOPS Cubeプロジェクト・チームはフォーマットのみを決定します。そして、他のプロジェクトはマニフェストを取り扱うことでユーザを助けるツールを開発しようとします。 そのようなツールが、Windows OS アプリケーションと Mac OS X アプリケーションであることがベストです。それが XOOPS Cube プロジェクト・チームが直接そのようなツールを開発しない理由です。

そのようなツールは常にC++プログラマを必要とします。XOOPS Cubeプロジェクトにそれを絶えず要求するのはお門違いでしょう。PHPプログラマとC++プログラマは異なった得意分野を持っています。私は、
XOOPS Shade Projectでそれを開発することを計画しています。

ツールには、以下の仕様がなければなりません:
  • ツールはFTP、SFTP、およびSCPで直接XOOPS Cubeサイトに接続しなければなりません。
  • ツールはマニフェストによってファイルのアップロードとダウンロードが可能な、一種のネットワーククライアントでなければならない。
  • ツールはXOOPS Cube Legacy、D3モジュール、およびXOOPS Cube Shadeをカバーしなければなりません。それらの構造が異なっているとしても。
  • もちろん、ツールはテーマを扱うことができなければなりません。
  • ユーザがモジュールをインストールしようとするとき、ツールはモジュールの依存モジュールを管理しなければなりません。
  • モジュール開発者は、彼らのモジュールを発行するために、特別なメカニズムを持つ必要はありません。
これらの仕様を持つツールはXOOPS Cube世界への必須品です。 私たちはおもちゃとしてXOOPS Cubeを開発しようとしています。しかし、XOOPS Cubeはおもちゃではなく、ただPHPプログラムです。 したがって、私たちはCubeをおもちゃにするツールを開発しなければなりません。私たちが .NET Framework や Mac OS X の WebKit を使用することができるので、そのようなツールを開発することは困難ではありません。これらの環境はネットワーククライアントアプリケーションを開発することを容易にします。

しかし、私はリナックスデスクトップアプリケーション開発に関して詳しくありません。それは問題です……しかし、サイトオーナーは windows か Mac OS X のどちらかは持っているでしょう。
|
BRYCE 5.0 Free Download
私は長い間 BRYCE3 のユーザーでした。先月、私は BRYCE の最新版を家で使うために欲しくなりました。しかし、アップデートコストが高かったので、私は別のソフトウェアを試すことにしました。そして、私はVue5 Espritを買いました。それは良い選択肢でした。多くのお金をブライス5.0に支払っていたら、私は今頃このニュースによって泣かされていたかもしれません。ブライス5.0 は最新版ではありませんが、私たちが無料でそれをダウンロードすることができることはビッグニュースです。しかし、それは無期限ではありません。BRYCE 5.0 が欲しいなら、96日までにダウンロードしなければいけません。

なお、私は、cubson GUI ForceのためにビルボードをレンダリングするのにVue5を使用しました。 私は長い間CGプログラミングに関するブログを書いていませんが、再開したいと思います。

(私はウェブプログラマーではないのに、このブログウェブプログラマのブログに見えます)
|
XTC2006 Presentation PDF Files
遅くなりました。これらの PDF ファイルは先月 XTC2006 において、私が使用したものです。これらのファイルが日本語オンリーであることを申し訳なく思います。

XOOPS Cube はもうすぐやってきます。これらのファイルは Cube のスピリットを理解するために役立ちます。
|
The concept of XOOPS Cube
.NET を知っていますか ? .NET は、マイクロソフトによって開発された開発された windows OS 上のフレームワークです。デスクトップアプリケーション開発は、ウェブアプリケーション開発より容易です。.NET は、デスクトップアプリケーションと同じくらい簡単に、ウェブアプリケーションを開発することのを可能にします。.NET における開発は、マウスドラッグ、及び、少しのコーディングから成っています。マウスドラッグによって、私達は、様々な独立したコンポーネントを我々のアプリケーションに入れます。それから、デリゲートなどを用いて、各コンポーネントを接続するために、プログラムを組みます。

しかし、 .NET のこれらの特徴は、開発者のために作られています。エンドユーザー(アプリケーションを発注する顧客)はこの開発方法とほとんど関係がありません。私は、 XOOPS におけるユーザーはコンポーネントとしてモジュールをインストールし、各モジュールを接続するためのなんらかのメカニズムとしてデリゲートを使用するようになると思います。これは、 .NET プログラマの仕事の一部に、エンドユーザーが楽しみを見いだすであろうことを意味しています。

Legacy は XOOPS2 ベースですので、私達は、 Legasy 上でこの理想を達成することができません。しかし、モジュールはコンポーネントの一種であり、 1 File Hacking は(.NET プログラマがするように)デリゲートでそれらを接続するプロセスです。言い換えれば、 .NET のコンポーネント、及び、 .NET のデリゲートは、開発者のためのものですが、 Cube のモジュール、及び、 Cube のデリゲートは、ユーザーのためにあるということです。

私は、開発者が更に小さいコンポーネントをドロップすることで、 Cube コンポーネントとしてのモジュールを完成させることができる RAD ツールを開発することを望みました。しかし、私には、それをするための時間が十分ではないかもしれません。

趣味 CMS として完成されるために、 XOOPS Cube は、開発者が .NET で使用するこれらのメカニズムを導入しました。しかし、エンドユーザーは、高みに上がることを強制されることになるでしょう。一部のユーザーは、 Cube を拒絶するかもしれません。それゆえに、フォークは、良い選択です。なぜなら、彼らは、 XOOPS に戻ることができるからです。私達は、フォークによってほんの 1 つの新しい選択肢を得ました。 xoops.org のユーザーも Cube を見れば、私達のフォークの意味に納得するでしょう。

少なくとも日本において、ユーザーが動的なサーバアプリケーションに作ることを楽しむという趣味がありません。もちろん、ユーザーは、 XOOPS のように CMS によってそれらのホームページを作成することは楽しみます。しかし、だれも、 CMS の組み立てをレゴブロックのような楽しい趣味と見なしません。XOOPS Cube は、それに挑戦しています。従って、現在のユーザーは、壁にぶつかることになるでしょう。 Cube は新しいコンセプトを彼らに強要します。彼らは、新しい世界の先駆者として、その壁を粉砕しなければなりません。
|
XOOPS Cube Shade
ユーザはXOOPS Cubeのためにプロジェクト・チームより熱心です! 彼らは93日に私たちのBetaを完成させてしまうでしょう。 私は、もうひとつのベースモジュールを仕上げることを急がなくてはいけません。それはXOOPS Cube層の設計思想を証明する実験的なアプローチです。 私は、私の実験用アプリケーションを XOOPS Shade と命名し続けています。

最初の
XOOPS ShadeXOOPS Cube層に変わりました。もともと、私は XOOPS Cube の原型としてそれを開発していました。もちろん、プロジェクトチームのメンバーがレビューしましたので、現在XOOPS Cube層はXOOPS Shadeと比べものになりません。

2XOOPS Shadeはベースモジュールの1種として開発されました。 プロジェクト・チームは、XOOPS Cube 層がXOOPS2の一切のコードを必要としないことを証明するために、もうひとつのベースモジュールを必要としました。しかし、第2XOOPS Shadeがどうにもおもしろくないので、私はそれを開発することをストップしました。

3番目の
XOOPS Shadeもベースモジュールの種類として開発されます。XOOPS Cube Legacyが来月には完成することを考えれば、これはXOOPS Cubeのための重要な計画となります。 言い換えれば、私たちは9月中にXOOPS Cube層の仕様を確立しなければなりません。3番目のXOOPS Shadeは最後の挑戦です。

このページを参照してください。 このページはXOOPS Cube Shadeのサンプルページです。 あなたは、XOOPS Cube ShadeXOOPS Cube Legacyと違うものだということを理解するでしょう。しかし、XOOPS Cube ShadeCubeファミリーの一員なのです。

恐らく、ユーザは自身のベースモジュールとして
LegacyLegacyのサブクラスを使用するでしょう。 LegasyにはXOOPS2のすばらしい歴史があるからです。しかし、実験は常に重要なのです。 XOOPS Cube Shadeには、明白な'存在理由'があります。
|
XCube_ActionFilter (3)

Practice

恐らく、あなたは、 Preload を使いこなすために XOOPS Cube Legacy のその他のメカニズムを理解する必要があるでしょう。プリロードは、ほとんどのカスタマイズの起点となります。

しかし、今は
Preload を理解することが、重要です。そこで、 Preload のみを使用して実例を作成しましょう。それは、 ForceSiteClose というものです。 ForceSiteClose は、特定の IP を除いて全ユーザーのために全ユーザーに対してサイトクローズを行います。それは、テストに便利です、なぜならテスターは特定のIPから来ていれば、ゲストユーザーとしてサイトにアクセスが出来るからです。ForceSiteClose によって、サイトオーナーは、テストしながら訪問者に対してサイトを閉じることができるのです。

class ForceSiteClose extends XCube_ActionFilter
{
  var
$mSpecificIPs = array('127.0.0.1');

  function
preFilter()
  {
     
$ip = $_SERVER['REMOTE_IP'];
     if (!
in_array($ip, $this->mSpecificmIPs)) {
         
$this->doSiteClose();
         exit();
     }
  }

  function
doSiteClose()
  {
     
//
     // You must rewrite the following for your expression.
     //
     
print "This site is closed now, Because ...";
  }
}


あなたは、データベース障害に際してこのフィルタを使ってもよいでしょう。なぜなら、 ForceSiteClose は、データベースなしで動くからです。一方、 XOOPS Cube Legacy のサイトクローズは、データベース障害の下では動きません。

Future XCube_ActionFilter

これは、 ActionFilter に詳しい開発者のための備考です。

Legacy_Controller において、 ActionFilter 機能は、サイトプリロード、及び、モジュールプリロード専用です。つまり、それは、サイト所有者とモジュール開発者がカスタマイズを行うために存在します。Legacy_Controller は、自身を構築するために ActionFilter 機能を使いません。従って、いくつかのフレームワークの ActionFilter と Legacy_Controller における ActionFilter は異なっています。

onokazu 氏は Legacy_Controller がそれ自身を構築するために ActionFilter を使うことは、スマートなプログラムであると言いました。彼のアイデアは、まったく正しく、かつ魅力的です。 ActionFilter はシンプルなメカニズムにすぎませんから、 XCube_ActionFilter のクラス設計は、その用途に十分です。

最終的に、私達は、実例による役割分担の明確化のために Legacy_Controller のこの設計を保持することにしました。ベースモジュールでコントローラを作るためにあなたがそれを使うことは、自由です。そして、近い将来リリースされるであろういくらかのベースモジュールは、そのような目的のために ActionFilter を使うかもしれません。

我々が少なくともそのような使用を検討したことを留意してください。
|
XCube_ActionFilter (2)

How to define ActionFilter

XCube_ActionFilter2つのメンバ関数は仮想関数です。 したがって、あなたは、XCube_ActionFilter のサブクラスを定義して、目的にあわせてオーバーライドでこれらのメンバ関数をオーバーライドを用いて実装しなければなりません。

しかし、
Legacy_Controller があなたの ActionFilter を積み込んで、それをセットアップしないなら、あなたの ActionFilter のための定義はがらくた同然です。あなたは Preload フィーチャーを、あなたのファイルをロードしてクラスをセットするメカニズムとして利用する必要があります。

Legacy
_Controller は規則的にあなたの XCube_ActionFilter のサブクラスのインスタンスを作成します。 Site PreloadModule Preload はお互いに異なる規則を持っています。まずはじめに、Site Preloadの規則を学んでください。

  1. /preload ディレクトリに {filename}.class.php となるファイルを作成する
  2. {filename} クラスを XCube_ActionFilter のサブクラスとして定義する

preBlockFilter()でプロセスを止めるサンプルフィルタを作成してみましょう。 初めに、/preload 'KillBill.class.php' を作成してください。 次に、'KillBill' クラスを以下のように定義してください。

class KillBill extends XCube_ActionFilter
{
  function
preBlockFilter()
  {
    die(
"Kill Bill!");
  }
}

それにより、あなたは、あなたを'KillBill'メッセージによって、あなたの稼働中のXOOPS Cubeにアクセスできなくなります。このルールがどれほど重要であるかを知るために、クラス名を変えてみましょう。

class KissBall extends XCube_ActionFilter

それから、あなたはあなたの稼働中のXOOPS Cubeにアクセスすることができるようになります。 何もあなたを妨げません。Legacy_Controller はこのファイルをロードして、このクラスを定義しますが、彼は、それが違反するので、それをチェーンに積みません。あなたは、あなたのクラスライブラリをロードするのにPreloadのこの特性を使用することができます。
|
XCube_ActionFilter (1)
このエントリでは、 XCube_ActionFilter について学びましょう。ActionFilter は、 mojavi2 から拝借されたアイデアです。あなたが mojavi2 ではなく、 C もしくはアセンブリを知っているならば、ファンクションポインタを配列にプッシュし、後からこれらを順番に呼び出していくテクニックを覚えているかも知れません。ActionFilter は、そのテクニックに似ています。Legacy_Controller は、 XCube_ActionFilter の様々なサブクラスのインスタンスを作成し、そして、これらのインスタンスを、コントローラのメンバプロパティである mFilterChain にプッシュします。

では、
XCube_ActionFilter のクラス設計を見てみましょう。この設計が XOOPS Cube の正規バージョンまでに少し変更されるかもしれないことを覚えておいてください。
XCube_Filter_diag
XCube_ActionFilter は、 preFilter() preBlockFilter() という 2 つのメンバ関数を持っています。これらの 2 つのメンバーファンクションは、 Legacy_Controller によって特定のタイミングで呼ばれることになっています。 preFilter() は、 Legacy_Controller executeCommon() の最初の部分で呼ばれます。それが、 XOOPS2 common.php と似ているので、私は executeCommon() を「コモンプロセス」と呼んでいます。

preFilter() の中では、データベースインスタンスを使うことができません。なぜなら、このメンバ関数はコモンプロセスのまさに最初の部分だからです。そう、このメンバ関数は、 Legacy_Controller がデータベースクラスのインスタンスの作成を試みる前に呼ばれます。

preFilter() は、何のために使われますか ? あなたは、あなたのロジックをコモンプロセスの最初の部分に挿入するために、それを使うことができます。preFilter() の時点で Legacy_Controller が自身のセットアップをほとんど終えていないので、 preFilter() の用途は制限的かもしれません。あなたは、 preBlockFilter() の中で XOOPS Cube のリソースにアクセスするために多くのインスタンスを使うことができますが、 preFilter() の中ではそれはできません。

従って、あなたは、
XoopsProtector のような mainfile.php ハックの代わりに preFilter() を使うのがよいでしょう。言い換えれば、あなたは、それが preBlockFilter() のタイミングで呼ばれるには遅すぎるロジックのために preFilter() を使えばよいのです。

Legacy_Controller がブロックの準備を始める直前に、 preBlockFilter() は、呼ばれます。 preBlockFilter() は便利です。なぜなら、あなたはこのメンバ関数の中では多くの関数および多くのインスタンスを使うことができるからです。例として、データベースインスタンス、または、 XoopsObject ハンドラによってデータベースにアクセスすることが容易です。恐らく、 preBlockFilter() は、ほとんどのケースで使われるでしょう。
|
Carp VS Dragons (2)
CIMG0002_1
私は、昨晩、広島市民球場で野球を観戦しました。そのゲームは、カープ VS ドラゴンズです。私の友人も、彼の両親とともに球場に来ました。昨日のゲームは、本当に良いゲームでした。多くの選手が、多くのチャンスを作り、そして、優れたプレーヤーたちが、ファインプレーでよくそれらをセーブしました。そのような攻防が何度もありました。最終的に、カープは勝ちました!

Mickey

Mickey は、日本初のベースボールドッグです。彼は、カープの一員であり、そして、多くの野球ファンから愛されています。私は、私が球場に入場する前に、偶然 Micky が散歩しているのを見ました。

彼は完璧に彼の仕事を終えました。ベリーキュート
! しかし、実は彼は元警察犬なのです。 Bowhow!

Big Jet Balloon

日本の野球ファンは、許可を与えるいくつかの球場でジェット風船を使用することが出来ます:
CIMG0015_1

しかし、私は奇妙な風船を見ました:
CIMG0018_1

なんですかあれは!?

CIMG0019_1
|
Loglog update
私たち日本人は今お盆です。お盆は、仏教の儀式であり、日本における一種の夏休みです。私も5日間の休みを確保したので、 Eclipse と sourceforge 用の SSH キーファイルをインストールした mac mini と一緒に広島に戻りました。この mac を使って、私はコミットとチェックアウトが可能です。この mac mini のおかげで、私は実家でもコミットとチェックアウトが可能です。

MacのLAMP環境とWindowsの私の普段のLAMP環境は異なっています。 その違いが私が知っていないいくつかのエラーの引き金となるので、私はそれらのバグを修理することができます。 同様に、私はloglogのいくつかのバグを修理しました。 あなたはloglog 0.21を
ここでダウンロードすることができます。

そして、私はSQL用のシンプルな字句解析を開発しました。(それは、
Roadmapに示された目標の1つです)。 次に、私はメッセージカタログを調整するつもりです。 これらのタスクを終えれば、私が帰京する頃には、Alpha4-cをリリースすることができるでしょう。

xoopscube.orgフォーラムの私の友人たちは私が忙しい休暇を過ごすのではないかと心配してくれました。ありがとうございます。 しかし、心配しないでください。 開発は私の趣味であり、そして、多くのバグレポートが私を支えてくれます。私は、バグフィックスを楽しんでます。また、明日には広島市民球場で私の旧友と野球の試合を見に行くつもりです。これはたいへん充実した時間といえるでしょう。

私は十分に夏休みを楽しんでいます。もしよければ……そしてあなたが休暇中なら、あなたも XOOPS Cube の新機能を試用することを楽しんでください。
|
Preload (1)
Loglog は、難しいサンプルであったかもしれません。XOOPS Cube における重要なフィーチャーは、プリ‐ロード、デリゲート、及び、 Xube_Service です。あなたは、これらのフィーチャーによってさまざまにサイトをカスタマイズすることができます。最初は、 Preload を学んでください。

2 種類の Preload ( Site Preload と Module Preload )があります。Site Preload は、本当にシンプルですです。

  1. /preload ディレクトリに XXXX.class.php を作成してください
  2. XCube_ActionFilter のサブクラスである XXXX クラスを定義してください
  3. 目的に合わせて preFilter() と preBlockFilter を実装してください。これらのメンバ関数は XCube_ActionFilter の仮想関数です。

XCube_ActionFilter のメンバ関数は、コモンプロセス(XOOPS2 の common.php と同様に、初期化プロセスを実行する)において呼び出されます。
XOOPS2 では、サイトオーナーが初期化プロセスにおいて彼らのコードを実行する方法が全くありませんでした。それをするために、彼らは、 XOOPS2 コアのソースコードを修正(=hack)しなければなりません。

プリ‐ロード、及び、 ActionFilter は、その問題へのソリューションです。これらのフィーチャーによって、サイトオーナーは、ハックなしで初期化プロセスにおける彼らのコードを実行し得ます。そして彼らはそれを。

あなたはプリロードファイルが新たなパブリケーション単位であることを理解します。サイトオーナーはそれを彼らの友人と共有するかもしれません。そして、彼らはそれをモジュールやテーマと同様にリリースすることが可能です。

Preload は多目的に使えます。

  • カスタマイズのための初期化コードの実行
    • 自分の関数を他のモジュールのデリゲートに追加
    • サービスやデリゲート関数を定義し、他のモジュールのためにそれをコアに追加
    • コアのオブジェクトの交換
  • 必須ライブラリのロード
|
Sample module Loglog
あなたは Cube をテストすることを楽しむ 'loglog' モジュールをここからダウンロードできます。これは、「対数の対数」に関する数学モジュールではありません。 Winking

Loglog は、 XOOPS Cube 層の Delegate を使うサンプルプログラムです。 Loglog は、いつユーザーがログイン、または、ログアウトをするかを記録し、そして、ユーザーがサイトにどのくらい滞在しているかを推測します。

preload/Initialize.class.php を読んでください。英語、及び、日本語でコメントがあります。XOOPS Cube のデリゲートは、コールバックに関する統一手続きです。それは、 C のファンクションポインタ、 C++ ファンクタ C# D のデリゲートのようです。あなたがサンプルを読むことで、 Delegate のエッセンスを理解できます。

Loglog は、単なるサンプルプログラムです。しかし、あなたが更に本格的なロギングモジュールを望むならば、ぜひそれを作ってください! ユーザー全員が、あなたの行動を歓迎します。
|
Alpha4 is available!
我々、プロジェクトチームは、 Alpha4 をちょうどリリースしました ! 私は、非常に興奮しています。なぜなら、それは、 XOOPS Cube Legacy 2.1 におけるファイナルラウンドの始まりだからだ。ユーザーは、多くのバグを報告するでしょう。我々は、それらのバグをフィックスし、そして、いつでもパッケージを再アーカイブするでしょう。重要なバグが取り除かれるであろうとき、 XOOPS Cube Legacy 2.1 は、 Beta になるでしょう。言い換えれば、 Beta は、全てのユーザー(我々を含みます)によって完成されます。

Alpha4 をあなたのローカルな機械にインストールして、そして、あらゆる問題を報告してください ! もちろん、我々は、あなたがそれをあなたの公開サーバにインストールすることを試みるあなたの勇気を歓迎します。私は、 Alpha を私のサイトに既にインストールしました。

あなたのレポートは、
βまで XOOPS Cube αを前進させます。我々は、迅速にあなたのレポートをチェックするでしょう。ファイナルラウンドのゴングは、打たれました !
|