CodeIgniterにJobboardを組み込む5-ci-cmsのモジュール構造

こんにちは!
Jobboard案件が後ろに延びて(というか他の横入り案件を先にやらなくてはならなくて)、こっちの方はちんたら進めています。


今日はci-cmsのモジュール構造を簡単に書こうと思います。

コピペして後はサクサクモジュール作っていきまっしょい。


既に独自に構築してしまっている方には不要なエントリーです。
どっちかというとこれから手早く始めたい人向け。


モジュールのツリー構造

ここでは、モジュール名を mtest と仮定します。
基本のCodeIgniterとさして変わりません。


application/modules/以下のtree例
横に長いですが、スクロールして見てちょ

-- mtest … モジュール名
-- controllers
-- admin … 1)管理画面用サブディレクト
`-- admin.php2)管理画面用コントローラ
-- index.html … ダミーファイル
`-- mtest.php3)モジュール用コントローラ ttp://example.com/mtest/ (hoge.phpとかも可、この時は ttp://example.com/mtest/hoge
-- locale … 4)言語ファイル用ディレクトリ(ja.po,fr.poとか、Poeditで編集する)
-- ja.mo
`-- ja.po … 5)日本語用翻訳ファイル
-- models
-- index.html … ダミーファイル
`-- mtest_model.php … 6)モデル、ファイル名は何でも良いが
-- mtest_blocks.php7)別のモデルのView等で、$this->block->get('hogehoge', 引数))の様に使って、データまたは文字列(HTMLタグ) を動的に生成するときに使う
-- mtest_install.php8)モジュールインストール時の挙動をココに書く、mkdirで専用ディレクトリの作成とか、テーブルの作成とか、ci_settings テーブルにモジュール個別設定値保存用行を追加とか泥臭いことをベタベタと。
-- mtest_plugins.php9)モジュール間をまたがった追加の処理などを行うときに使う。元ソースを見るとWordPressのadd_filterを移植しているみたい。使い方も多分一緒。
-- mtest_routes.php10)モジュール内のルーティング設定はココに書く。
-- mtest_update.php11)モジュールのバージョンアップ時の処理用ファイル、アップデートスクリプトなどを書く。モジュールのバージョンを上げていくときの過去に作成したデータとのつじつま合わせをここでベタベタと。
-- setup.xml12)ci-cmsのモジュール管理(インストール)用定義ファイル
`-- views
-- admin … 13)管理画面用ビューのサブディレクト
-- admin.php14)管理画面用ビューファイル、サブディレクトリには入れてないみたい。入れても動くでしょ、多分
-- blocks … 15)ブロック画面用ビューファイル保存用ディレクトリ。7)の処理のビュー保存用(この例ではブロック無し)
-- index.html … ダミーファイル
`-- index.php … … 16) 3)のビューファイル、index.phpじゃなくて、mtest_view.phpとかで良いかと、むしろそっちの方がわかりやすい。

という感じ。


ファイル名の強制は、

  • 2)と3) … ただし例外もあり
  • 7)から11)

みたいです。


構造がわかれば後は、ある程度お膳立ての揃ったCodeIgniterの世界。


ゼロから作るのは大変なので一足飛びでさくさくいきましょー。
このエントリーはゆっくりなので、ダウンロードしてコード読んだ方が速いともいうw


不満な所は俺俺改造して俺色に染める感じで。

ちなみにコードを汚すのは嫌という強迫観念をお持ちの方は(俺もか)、
コードを汚すのではなく自分が鍛え上げているんだ!と言い換えてみませう。
Google様だってmysqlハックしてんじゃんとか言い聞かせながら。



おまけ

ci-cmsに過去ソースの適当なモジュールを移植して動かしてみた図。
まあすんなり移植できた。元々複雑には作らないからかもしれないが。


画面じゃわかんないってw





今日はここまで。

次回は上記の 1)〜16)の中身とポイントをかいつまんでいく予定だったりそうじゃなかったり、気まぐれです。


ではでは!