NetCommonsモジュールを(無理矢理)作成
最近NetCommonsにちょっとずつ触れています。
使い方も内容もまだほとんど分かりませんが、手探りで非常に簡単なモジュールを作ってみようと思います。
無理矢理モジュールディレクトリを作成する
モジュールは html/webapp/modules/ ディレクトリの下に配置されています。 そこで、ここに無理矢理testというディレクトリを作成します。モジュールはtestです。
install.iniを作成する
次にbbsとかmenuとかのモジュールを見ると、トップディレクトリに「install.ini」が含まれていますのでそれを参考にします。 以下がinstall.iniの内容になります。2行です。
version = "1.0.0.0"
action_name = "test_view_main"
versionは適当で良いと思います。action_nameはおそらくtestモジュールのデフォルトのアクセス先になるんだと思います。
アクションクラスファイルを作成する
上の例だと最初のアクセス先は
html/webapp/modules/test/view/main/Main.class.php
となるようです。modules以降のディレクトリは上のaction_nameの中の’_'を’/'に置換したものとなっています。 Main.class.phpは最後の”test_view_main”のmainの最初を大文字にしたものですが、これで無いといけないのかどうか分かりません。 ただ他のモジュールは皆このルールに従っているようです。
アクションクラスを編集する
さて、Main.class.phpの中でaction用のクラスをこしらえます。クラスの名前はTest_View_Mainであり、Actionを継承しなければなりません。 また、executeメソッドは必須です。
<?php // html/webapp/modules/test/view/main/Main.class.php の内容
class Test_View_Main extends Action
{
function execute()
{
return 'success';
}
}
maple.iniを作成する
Mapleはmaple.iniという動作設定ファイルで様々な制御を行なっていきます。
html/webapp/modules/test/view/main/maple.ini
を作成して、内容を
[View]
success = "main.html"
とします。Test_View_Mainクラスにアクセスがあり、executeが’success’を返すとこのmaple.iniの内容に従ってテンプレート’main.html’が呼び出されます。
テンプレートを作成する
このテンプレートの場所はMaple標準だとwebapp/templatesになるらしいです。NetCommonsだと
html/webapp/modules/test/templates/default/main.html
となるようです。main.htmlの中は適当に、
<{strip}>
<{* 表示用テンプレート *}>
Hello,World
<{/strip}>
としておきます。<{strip}>〜<{/strip}>はsmartyの関数らしいです。 タグ間の改行などを取り除きを一行で出力するみたいです。いずれにしてもsmartyの勉強も必要ということです。
モジュール情報を作成する
最後にモジュールの情報を
html/webapp/modules/test/language/japanese/modinfo.ini
に書き込みます。
module_name = "Hello, World"
とモジュール名を設定します。
終了
…最も簡単なモジュールが完成しました。管理者としてログインしモジュール管理からインストールしてみます。インストールして分かるのは、
- 移動するコンテナにするにはまだ別の仕組みが必要らしい
ということです。
スタイルシートを作成する
main.htmlにスタイルシートを適用したい場合は、上のmaple.iniに
[HeaderInc]
test_css = "test:{$temp_name}/style.css"
を追加します。こうすることによって
html/webapp/modules/test/files/css/default/style.css
がスタイルシートとして読み込まれます。ただしstyle.cssへの直リンクではなく、システムが各モジュールのcssをかきあつめて表示しているみたいです。