とりあえず、xajaxをCodeIgniterに組み込む。
目次
1.ダウンロード
xajaxのサイトからxajax 0.5 Finalをダウンロード。
「xajax 0.5 compiled」、「xajax 0.5 minimal」、「xajax 0.5 standard」と3種類のダウンロードが用意されているのでお好みのものをダウンロード。
解凍するとでてくるのはこんな感じ。
2.ファイルをコピー
解凍してでてきた、xajax_core/以下のファイルを全部CodeIgniterのところへ配置するんやけど・・・
解説されているのは、application/libraries配下におくもので独自ライブラリー化するものが多いかな。
ライブラリー化は、本家wikiにあります。ここ
んでも、ここは、pluginでいきます。
理由は、CodeIgniterのベースを作っておいて、他の開発に流用する為。
xajaxなんかは共通で使うと思うんで。(tcPDFも)
なので、xajax_core/以下のファイルを system/plugins/へコピーする。
もうひとつの xajax_js/以下のファイルは、ドキュメントルートへコピー。
3.プラグインファイルの作成
system/plugins/に「xajax_pi.php」を作成。
CodeIgniterのプラグインの定義は次のように書かれているので、ここで1つの関数を作成。
プラグインもヘルパと同様に動作します。違いは、ヘルパは通常関数のコレクションであるのに対し、プラグインは常にひとつだけの関数を提供するということです。ヘルパはまた、コアシステムの一部として考えられたものですが、プラグインは、コミュニティで作成され、共有されることを意図しています。
中身は↓
4..htaccessの修正
.htaccessの mod_rewriteを修正し、 xajax_js ディレクトリ以下はリライトから除外する。
RewriteCond $1 !^(index\.php|images|js|xajax_js|user_guide_ja|robots\.txt|css)
サンプルコード
これで準備は整ったので、あとはコントローラーとビューを用意するだけ。
サンプルは、wikiのまんまで、pluginでロードしているだけ
PHP5なんで__constructとしたりするだけかな
Controller
load->plugin('xajax'); $this->xajax = xajax(); $this->xajax->registerFunction(array('test_function',&$this,'test_function')); $this->xajax->processRequest(); } private function test_function($number) { $objResponse = new xajaxResponse(); $objResponse->Assign("SomeElementId","innerHTML", "Xajax is working. Lets add: ".($number+3)); return $objResponse; } public function index() { $template['xajax_js'] = $this->xajax->getJavascript(base_url()); $template['content'] = ''; $this->load->view('template/index', $template); } } ?>
VIEW
Xajax 0.5 test