XoopsCube2.2 + CakePHP2.0
投稿者: wf9a5m75 | 投稿日時: 2011/4/28 3:33 | 閲覧: 6814回
3年前に「xoopsCube + CakePHP」(http://xoopscube.jp/forum/5884)というやり方を投稿したのですが、
時代が進んで「XoopsCube2.2 + CakePHP2.0」になったので、そのやり方です。
(自分用の備忘録を含めて投稿します)
基本的にはそんなに変わらなかったでした。
===================================
app/config/core.php
//一番最初に追加
if(!defined('XOOPS_URL')) {
require_once (dirname(__FILE__) . '/../../../../mainfile.php');
}
----
//管理画面のコメントアウトを外す
//Configure::write('Routing.prefixes', array('admin'));
↓
Configure::write('Routing.prefixes', array('admin'));
----
Configure::write('Security.salt', XOOPS_SALT);
----
//キャッシュ設定を変更 (この辺は好みで)
//Cache::config('default', array('engine' => 'File'));
↓
Cache::config('default',array(
'engine' => 'File',
'path' => XOOPS_TRUST_PATH . '/cache',
'prefix' => dirname(dirname(dirname(__FILE__))).'_'
));
===================================
app/config/database.php
//データベースの設定はmainfile.phpを利用するようにする
define("CAKE_XOOPS_DB_PREFIX", XOOPS_DB_PREFIX."_");
class DATABASE_CONFIG {
public $default = array(
'driver' => XOOPS_DB_TYPE,
'persistent' => false,
'host' => 'localhost',
'login' => XOOPS_DB_USER,
'password' => XOOPS_DB_PASS,
'database' => XOOPS_DB_NAME,
'prefix' => CAKE_XOOPS_DB_PREFIX,
'encoding' => 'utf8',
);
}
===================================
app/config/bootstrap.php
//デバッガの追加
App::import("Core", "Debugger");
===================================
app/controllers/admin_controller.php
(管理画面用のコントローラの作成)
<?php
class AdminController extends AppController {
var $name = "Admin";
function index(){
$this->set("message", "This page is administrator panel.");
}
}
?>
===================================
app/views/admin/index.ctp
(管理画面用のビュー作成)
<?php
echo $message;
?>
===================================
app/views/layouts/default.ctp
(レイアウト作成)
<?php
global $xoopsTpl;
$xoopsTpl->assign('xoops_module_header', $this->Html->css('cake.generic') . $scripts_for_layout);
echo $content_for_layout;
echo $this->element('sql_dump');
?>
===================================
app/webroot/index.php
(xoopsのテーマが適用されるようにする)
//最初の方に定義 (ヘッダー)
$cp_footer=false;
if(!defined('XOOPS_URL')) {
require_once (dirname(__FILE__) . '/../../../../mainfile.php');
}
ini_set("default_charset", "utf-8");
ini_set("mbstring.http_output", "utf-8");
ini_set("mbstring.internal_encoding", "utf-8");
ini_set("mbstring.detect_order", "utf-8");
ini_set("mbstring.substitute_character", "long");
if(strpos($_SERVER['REQUEST_URI'],"admin")){
$cp_footer=true;
include_once XOOPS_ROOT_PATH.'/include/cp_header.php';
include_once XOOPS_ROOT_PATH.'/class/template.php' ;
xoops_cp_header();
}else{
require_once( XOOPS_ROOT_PATH.'/mainfile.php' );
include XOOPS_ROOT_PATH."/header.php";
}
-----
//最後に追加
if($cp_footer){
xoops_cp_footer();
}else{
require XOOPS_ROOT_PATH."/footer.php";
}
===================================
これだけでした。
(といいつつ、cakePHPの開発からは随分と離れていたので、ちょっと手間取りましたけど。)
参考にしてください。