本ページではXoops Cube のサンプルモジュールの作成方法を記載します。
1. Xoops CubeをEclipseのプロジェクトに追加しよう
2. サンプルモジュールを作ってみよう
Xoops CubeをEclipseのプロジェクトに追加しよう
プロジェクト名にXamppのhtdocsフォルダでXoops Cubeをインストールしたフォルダ名(例 xoops)を指定して
「完了」ボタンを押下して下さい。
※htdocsフォルダにあるフォルダ名を指定した場合に「完了」ボタンの上の注意書きが表示されます。
プロジェクトの作成が完了すると、上記のようなエラーが発生している画面となります。
エラーの内容は、HTML及びXMLについての記載エラー、及びPHPのエラーです。
HTML及びXMLのエラー表示は不要のため表示しないように設置を変更します。
Eclipse上部の「ウィンドウ」->「設定」を選択して下さい。
次にPHPファイルの修正を実施します。
Eclipseの画面左側にある「PHPエクスプローラー」から
「xoops」->「class」->「tardownloader.php」ファイルを選んでダブルクリックして開いて下さい。
表示されたファイルを下にスクロールするとエラーが発生している箇所が表示されます。
このエラーが発生している箇所を以下の記載内容に修正します。
修正前
header('¥Content-Type: application/x-tar¥') ;
header('¥Content-Length: ¥'.floatval(@strlen($file))) ;
修正後( ¥マークを削除する )
header('Content-Type: application/x-tar') ;
header('Content-Length: '.floatval(@strlen($file))) ;
次に「zipdownloader.php」ファイルを開いて下さい。
表示されたファイルを下にスクロールするとエラーが発生している箇所が表示されます。
このエラーが発生している箇所を以下の記載内容に修正します。
修正前
header(¥'Content-Type: application/zip¥') ;
header(¥'Content-Length: ¥'.floatval(@strlen($file))) ;
修正後( ¥マークを削除する )
header('Content-Type: application/zip') ;
header('Content-Length: '.floatval(@strlen($file))) ;
サンプルモジュールを作ってみよう
xoops_version.phpを以下のように編集して下さい。
xoops_version.phpは、作成するモジュールの各種設定するのに必要なファイルです。
$modversion['name'] = 'サンプルモジュール';
$modversion['dirname'] = basename(dirname(__FILE__));
$modversion['hasMain'] = 1;
$modversion['cube_style'] = true;
$modversion['templates'][0]['file'] = 'sample.html';
一行目の $modversion['name'] = 'サンプルモジュール'; は
モジュール名を指定しています。好きなモジュール名を指定出来ます。
二行目の $modversion['dirname'] = basename(dirname(__FILE__)); は
モジュールのディレクトリ名を指定しています。
__FILE__ でxoops_version.phpファイルのフルパスを取得しています。
次にdirname()でファイルのディレクトリのパスを取得しています。
最後にbasename()でフォルダ名(本例だとsample)を取得しています。
三行目の $modversion['hasMain'] = 1; はメインメニューに追加するために指定しています。
四行目の $modversion['cube_style'] = true; はSQL文の解析置換を行うために指定しています。
五行目の $modversion['templates'][0]['file'] = 'sample.html'; はテンプレートファイルの指定です。
次に「index.php」ファイルを作成します。
「xoops_version.php」ファイルと同様のやり方で、「index.php」ファイルを作成して下さい。
作成が完了したら、以下のように編集して下さい。
require '../../mainfile.php';
$root = & XCube_Root::getSingleton();
$root->mController->executeHeader();
$render = & $root->mContext->mModule->getRenderTarget();
$render->setTemplateName('sample.html');
$render->setAttribute('value', 'Hello Xoops Module');
$root->mController->executeView();
一行目の require '../../mainfile.php'; は
Xoop Cubeの基本動作を行えるようにするためにまず読み込んでいます。
二行目の $root = & XCube_Root::getSingleton(); は
Xoops Cube Legacy のオブジェクトの取得をしています。
三行目の $root->mController->executeHeader(); は
Xoops Cube のブロックの読み込みをしています。
※これは省略することが出来ますが、省略した場合はブロックが表示されません。
四行目の $render = & $root->mContext->mModule->getRenderTarget(); は
作成した本モジュールのレンダーシステムを取得しています。
五行目の $render->setTemplateName('sample.html'); は
レンダーシステムに使用するテンプレート名を設定しています。
六行目の $render->setAttribute('value', 'Hello Xoops Module'); は
指定テンプレートのvaluse変数に対して、文字列"Hello Xoops Module"を指定しています。
七行目の $root->mController->executeView(); は
Xoosp Cubeのテーマの読み込みと描画処理を行っています。
いったんファイルの中身を全て削除して以下のように編集して下さい。
<div>HTMLを記述します</div>
<div><{$value}></div>
二行目の <{$value}> の記載の仕方は
通常のHTMLの記載方法とは異なり、Smartyを使用した形にします。
この <{$value}> にindex.phpの $render->setAttribute('value', 'Hello Xoops Module'); で設定した
Hello Xoops Moduleが割り当てられて表示されます。
Xamppの「control panel」から「Apache」と「MySQL」を起動させて下さい。
ブラウザに「http://localhost/(Xoops Cubeフォルダ名)」を入力してXoops Cubeのトップ画面を開いて下さい。
上記画面が表示されたら、画面右にある「管理者メニュー」をクリックして下さい。
上記画面のようにXoops Cubeのトップ画面へ戻るとメインメニューに新しいリンクが作成されていて
インストールしたサンプルモジュールが追加されている。
「サンプルモジュール」をクリックして下さい。
以上でXoops Cubeのサンプルモジュール作成を終了します。お疲れ様でした。