以前に5分で作るJoomla!モジュールとしてJoomla!1.0.x用の簡単なモジュール作成例を書いたが、今回はJoomla!1.5用です。しかも、LatestNewsモジュールとして使えるものを作成します。と書き始めたものの、長くなるかもしれないので2回くらいに分けるかもしれません。対象は、PHPとか知らなくてもコピーペーストができたらできるレベルです。

左が完成後の画像です。
(リストになっていますが、テンプレートの関係上リストのように見えていません。また、表示されているのはタイトルですが、いつもDummy Lipsumを使ってダミー記事を作成しているため、こうなっています。)
普通のJoomla!のLatestNews(最新ニュース)を表示するモジュールです。ですが、最終的には少し気になる点を改善していくことにします。また、少し機能を追加してみます。
完成後のファイルは、最後にダウンロードできます。
まずはじめに、全てのファイルをUTF-8(BOM無)で読み書きするため、それが可能なテキストエディタを用意してください。はじめから、EclipseなどのIDEを使う必要はありません。(便利ですが・・・)それと、これで5分以上かかったと言わないでください。
それでは、作業用のフォルダを一つ作成ます。今回は、Example_Moduleとでもしておきましょう。それから、Joomla!1.5ルートのmodulesフォルダ内のmod_latestnewsをフォルダごと、作業用フォルダ(Example_Module)にコピーします。そして、その作業用フォルダにコピーしたmod_latestnews以下のフォルダ名とファイル名を以下のように変更します。

mod_latestnewsとなっているファイル・フォルダが、mod_exampleになっただけです。
Joomla!1.0の時と異なり、ファイルとフォルダが多いです。それぞれに役割があります。
-
xmlファイル
これは、モジュールに限らず、プラグイン・コンポーネントにもあります。そのエクステンションのタイプや、インストールするファイル、設定値、説明などが定義されているファイルです。これが無いとインストールできません。 -
モジュール名.php
モジュールが、表示されるとき最初に読み込まれるファイルです。これも必須です。 -
helper.php
Joomla!1.5から追加された、名前の通りモジュールの仕事を分担されているファイルです。これは、分担させなければ無くても良い物です。 -
tmplフォルダ
Joomla!1.5からテンプレートのオーバーライド機能が追加されていますが、そのためのテンプレートフォルダです。オーバライド機能が必要無いなら、これも必須ではありません。ですが、Nativeエクステンションとするなら表示用HTMLをこのフォルダに置いた方が良いでしょうね。 -
tmpl/default.php
表示用のHTMLが書いてあるPHPファイルです。 -
index.html
Joomla!には一様にフォルダ毎にこのindex.htmlが置かれています。サーバーの設定でindex.htmlが無いとファイルが一覧されてしまうとかっていうことの対策です。必須。
では、コピーができましたので変更しなきゃならない部分だけ書き換えます。
mod_example.xmlを開きます。UTF-8です。
上は、書き換える前のものです。これを下の画像のように書き換えます。
サイト名などは、適宜自分に合うように変えてください。
* Tips : method=”upgrade”とinstallノードに追記しています。これを追記することで、アンインストールする事無く、上書きアップデートを可能にするために追記しています。インストール済みでも上書きインストールが可能になります。
mod_example.phpをUTF-8(BOM無し)で編集できるエディタで開きます。

上は、書き換える前。下が書き換えた後です。
LatestNewsをExampleに、latestnewsをexampleに変更しただけです。
helper.phpをUTF-8(BOM無し)で編集できるエディタで開きます。
上は、書き換える前。下が書き換えた後です。
はい、完成しました。
それでは、作業用フォルダのmod_exampleを開き、その中身すべてをZipファイルに圧縮してください。名前は何でも良いです。そしてできあがったZipファイルをJoomlaの管理画面からインストールして試してみてください。また、このモジュールは、何度でもアンインストールすることなく、上書きインストール可能です。
明日は、このmod_exampleモジュールを少し改良してみます。インストールして気づかれた方もいると思いますが、このままでは、言語ファイルがありません。言語ファイルを追加したり、日時表示や改善した方が良い部分を変更してみます。










した。 伊丹さんと話していて、頭の中では理解していながら、コードの簡略化という名目でJboardに実装していたコメント機能をJContentPlusに実装することにした。確かに当初、JCont...