11月
13
2011
sixcore でCodeIgniterを使おうとしたら上手くURLを捌いてくれない。。。。。
どんなURLでのTOPページへ行ってしまう!!
phpのバージョンかと思い5.33にあげても駄目。。。
原因は$_SERVERの値だった!!
CodeIgniterは$_SERVER[PATH_INFO]の値を元に読み込むContollorを決めるようだ。
この値がないが原因!!
$_SERVER['ORIG_PATH_INFO']があるのでそれを代入してやることで対応
if ( !isset($_SERVER['PATH_INFO']) && isset($_SERVER['ORIG_PATH_INFO']) )
{
$_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];
}
これを
system/core/Router.php の120行目あたり
$path = (isset($_SERVER[$uri])) ? $_SERVER[$uri] : @getenv($uri);
の上に記入
11月
01
2011
CodeIgniterでthird_partyディレクトリを使ってみる。
third_partyとは「アプリケーションパッケージ=配布を容易にするために それ自身の単一ディレクトリ内にライブラリ、モデル、ヘルパー、コンフィグ、そして言語ファイルをすべて備えたリソースの集合の配置を推奨」
仕組みがわかれば意外と簡単で便利かも
ユーザーガイドの構成通りthird_partyにfoo_barディレクトリを配置する
サブディレクトリは使うものだけで良いようだ。
/application/third_party/foo_bar
└config/
└helpers/
└language/
└libraries/
└models/
└views/
このthird_partyを使うには
//まずadd_package_pathでthird_party/foo_bar/へパスを通す
$this->load->add_package_path(APPPATH.'third_party/foo_bar/');
//次にライブリのロード
//このfoo_barは”third_party/foo_bar/libraries/foo_bar.php”
$this->load->library('foo_bar');
続いてthird_party/foo_bar/libraries/foo_bar.php側
このfoo_bar.phpがコントローラーってイメージですね。
class Foo_bar{
function __construct
{
// インスタンスを生成
$CI =& get_instance();
// 以降class Foo_barでの$CI->loadは
// third_party/foo_bar/libraries/foo_bar以下の
// model・ libraryなどを読み込む
}
}
//終わったらremoveでパスを解除
$this->load->remove_package_path(APPPATH.’third_party/foo_bar/’);
model・ library以外help viewも同じ用に使えるのようなので便利だと思う。
11月
01
2011
CodeIgniter 2.0.3へXajax 0.6 beta1を導入する
まずダウンロードhttp://www.xajax-project.org/en/download/
解凍すると [test] [xajax_core] [xjax_js] [xajax_plugins] copyright.inc.phpがあるので
[xajax_core]を[xajax]に変更してapplication/libraries/へ配置
[xajax_js]を配置index.phpと同じ場所でOK
xajax/xajax.inc.phpをxajax/xajax.phpへ変更
xajax_jsを他へ配置した場合は735行目あたりの
$sJsFile = ‘xajax_js/xajax_core.js’;を環境に合わせて変更
その時はxajax/plugin_layer/xajaxDefaultIncludePlugin.inc.phpの280行目あたりに
array($this->_getScriptFilename(‘xajax_js/xajax_core.js’), ‘xajax’);
という部分が4つほどあるのでこのパスも変更
class Test extends My_Controller {
function __construct() {
//ライブラリを読み込む
$this->load->library('xajax');
//ここにxajaxで実行したいfunctionを登録('test_function')
$this->xajax->register(XAJAX_FUNCTION, array(&$this, 'test_function'));
$this->xajax->processRequest();
}
function index(){
//登録functionの呼び出しはxajax_をつける
echo '$this->xajax->getJavascript(base_url().'assets/');
echo '
';
}
// xajaxで呼び出されて
//id="test_area"へ'xajaxで表示'を表示
function test_function(){
$res = new xajaxResponse();
$res->assign('test_area', 'innerHTML', 'xajaxで表示');
}
≪参考サイト≫
CodeIgniterでxajaxを利用する方法
CodeIgniter 1.6.3 と xajax 0.5 rc2 を組み合わせてみた
10月
24
2011
altsysをイントール
ダウンロード
詳しい解説
まずはファイルをダウンロードして解凍。
htmlとxoops_trust_pathの2フォルダがあるのでそれぞれをコピー。
次にmainfile.phpを編集。
include XOOPS_ROOT_PATH.’/include/common.php’;に追記。
if (!defined('_LEGACY_PREVENT_LOAD_CORE_') && XOOPS_ROOT_PATH != '') {
include_once XOOPS_ROOT_PATH.'/include/cubecore_init.php';
if (!isset($xoopsOption['nocommon']) && !defined('_LEGACY_PREVENT_EXEC_COMMON_')) {
include XOOPS_ROOT_PATH.'/include/common.php';
// ここからテーマ内テンプレート自動更新機能
include XOOPS_TRUST_PATH."/libs/altsys/include/autoupdate_from_theme.inc.php" ;
// ここから モジュール内テンプレート自動更新機能
$tplsadmin_autoupdate_mydirnames = array( 'pico' , 'd3forum' ) ;
include XOOPS_TRUST_PATH."/libs/altsys/include/autoupdate_from_d3module.inc.php" ;
// ここまで
}
}
互換モジュールのモジュールインストールからインストール。
これはMySQLのバージョンによってはインストールでエラーがでるその場合は
/xoops_trust_path/libs/altsys/sql/mysql.sql
にあるsql のTYPE=MyISAMを「ENGINE=MyISAM」へ変更する。
インストールが終わったらhtml/preload/SetupAltsysLangMgr.class.phpを削除する
10月
24
2011
Protectorをインストール
ダウンロード
詳しい解説
これを書いた時点でのバージョンは3.41。
まずはファイルをダウンロードして解凍。
htmlとxoops_trust_pathの2フォルダがあるのでそれぞれをコピー。
互換モジュールのモジュールインストールからインストール。
コンフィグ global_disabled を追加しました
コンフィグ default_lang を追加しました
コンフィグ log_level を追加しました
コンフィグ banip_time0 を追加しました
コンフィグ reliable_ips を追加しました
コンフィグ session_fixed_topbit を追加しました
コンフィグ groups_denyipmove を追加しました
コンフィグ san_nullbyte を追加しました
コンフィグ die_badext を追加しました
コンフィグ contami_action を追加しました
コンフィグ isocom_action を追加しました
コンフィグ union_action を追加しました
コンフィグ id_forceintval を追加しました
コンフィグ file_dotdot を追加しました
コンフィグ bf_count を追加しました
コンフィグ bwlimit_count を追加しました
コンフィグ dos_skipmodules を追加しました
コンフィグ dos_expire を追加しました
コンフィグ dos_f5count を追加しました
コンフィグ dos_f5action を追加しました
コンフィグ dos_crcount を追加しました
コンフィグ dos_craction を追加しました
コンフィグ dos_crsafe を追加しました
コンフィグ bip_except を追加しました
コンフィグ disable_features を追加しました
コンフィグ enable_dblayertrap を追加しました
コンフィグ dblayertrap_wo_server を追加しました
コンフィグ enable_bigumbrella を追加しました
コンフィグ spamcount_uri4user を追加しました
コンフィグ spamcount_uri4guest を追加しました
コールバック 'xoops_module_install_protector' を実行することができませんでした
Protector モジュールのインストールに失敗しました
Force Uninstallation is started.
‘xops_module_install_protector’ を実行することができませんでした。。。
エラーが出た。
これはMySQLのCREATE で TYPE=MyISAMとなってるから!
/xoops_trust_path/modules/protector/sql/mysql.sql
にあるsql 「CREATE TABLE log」 「CREATE TABLE access」のTYPE=MyISAMを「ENGINE=MyISAM」へ変更する。
これでインストールできました。
次にmainfile.phpを編集。下の方に2箇所追記します。
if (!defined('_LEGACY_PREVENT_LOAD_CORE_') && XOOPS_ROOT_PATH != '') {
include_once XOOPS_ROOT_PATH.'/include/cubecore_init.php';
// protector ここから追記
include XOOPS_TRUST_PATH.'/modules/protector/include/precheck.inc.php';
// ここまで
if (!isset($xoopsOption['nocommon']) && !defined('_LEGACY_PREVENT_EXEC_COMMON_')) {
include XOOPS_ROOT_PATH.'/include/common.php';
}
// protector ここから追記
include XOOPS_TRUST_PATH.'/modules/protector/include/postcheck.inc.php';
//ここまで
}