CodeIgniterでXoopsモジュールを書く。
モジュール名sampleとして
modules/sample/index.php
<?php /* 普通のxoopsモジュールヘッダincludeまで */ require("../../mainfile.php"); require('header.php');//このモジュール共通 // ヘッダをインクルードする include(XOOPS_ROOT_PATH.'/header.php'); /* ここからCodeIgniterのインストールモジュールにあったindex.phpの内容 */ error_reporting(E_ALL); $system_folder = "system"; $application_folder = "application"; if (strpos($system_folder, '/') === FALSE) { if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE) { $system_folder = realpath(dirname(__FILE__)).'/'.$system_folder; } } else { // Swap directory separators to Unix style for consistency $system_folder = str_replace("\\", "/", $system_folder); } define('EXT', '.'.pathinfo(__FILE__, PATHINFO_EXTENSION)); define('FCPATH', __FILE__); define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); define('BASEPATH', $system_folder.'/'); if (is_dir($application_folder)) { define('APPPATH', $application_folder.'/'); } else { if ($application_folder == '') { $application_folder = 'application'; } define('APPPATH', BASEPATH.$application_folder.'/'); } require_once BASEPATH.'codeigniter/CodeIgniter'.EXT; // xoopsフッタをインクルードする include(XOOPS_ROOT_PATH.'/footer.php'); ?>
modules/sample/にCIのsystemディレクトリを丸ごとコピー。試してないけど$system_folder書き換えればどこでもおけるんじゃない?
.htaccessを置く。
RewriteEngine on RewriteBase /xoops/modules/sample/ RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ index.php/$1 [L]
この例はxoops本体を/xoopsとして設置した場合。"/"に置いたら
RewriteBase /modules/sample/
こうかな。
あとは$system_folder/application以下にcontroller置いてview置いてetc...当然だがテンプレートにはhtml...bodyは不要。
あとはdatetimeのvalidation。