新しいエクステンションのドキュメントを編集するときいつも以前に書いたものをコピーして作成していたりするのですが、これが結構不便なもので以前のドキュメントを見るためにブラウザで該当ページを開くか、同じ管理画面からそのドキュメントを開くか、分割して開いたりしています。でもそうすると同じ画面か、新規ウィンドウを開くことになり応答を待たなければいけません。(せっかちなもので・・・)
かといってDreamweaverや、Aptanaなど起動に時間がかかるものを使うくらいならという感じでたまにテキストエディタを使いながらもやり過ごしてきました。
今日、Seamonkeyの記事をみてSeamonkeyに簡易エディタがついていると書いてあるじゃないですか。で、早速Seamonkeyをインストールしてその簡易エディタ(composer)を起動してみるとすぐに起動するし編集も無理なくできそうです。
ですが、わざわざcomposerのためにSeamonkeyを起動するのもどうか(きっと使わなくなる)と思ったのでスタンドアローンで起動しないものかといろいろ調べていたら、なんだ!KompoZerのコンポーネントを使っているみたいなことが書いてあるサイトを発見。早速、KompoZerをインストール。・・・・・さあ、どうでしょう。
たとえば、エクステンションのxmlファイルやランゲージファイルに書く説明などにも使えそうです。
また少しDreamweaverを起動する機会が減りそうな気がします。
Joomla!のエクステンションで一番簡単に作成できるのがモジュールだと思います。もちろん、複雑な処理をするものも作成できるのですが簡単なものならすぐにできます。簡単なモジュールを作ってみましょう。
用意するもの
<h1>Joomla! Module</h1>と出力するだけのmod_example.phpを作成します。
(右ができあがりイメージ)
1.テキストエディタで新規作成し、適当な場所にmod_example.phpと名前をつけて(UTF-8のBOMなし)で保存してください。
2.1.と同様mod_example.xmlを作成してください。
3.現在あるモジュールを開いてみる。たとえば、mod_latestnews.phpを開く。
目につくのは、
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );
これは、直接このファイルにアクセス(http://yoursite.com/modules/mod_latestnews.php)してもこのファイルを見ることができないようにします。これは必要です。
作成したmod_example.phpに
<?php
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );?>
と書きます。コピーペーストでOK。
4.?>の後で改行して
<h1>Joomla! Module</h1>
と書きます。
5.mod_examlple.xmlにmod_latestnews.xmlの内容をすべてコピーします。
(コピーが一番簡単に作成できる方法です。)
変更必須のところ
ここだけです。他は、名前が重複したりしても構わないならそのままでOK。
<filename module="mod_example">mod_example.php</filename>
モジュール名を考えるとき(プラグインもコンポーネントも同じ)大文字を使わないでください。大文字を使っても呼び出されるのは、小文字の名前で呼び出されます。
6.完成しました。え!
mod_example.php
<?php
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );?>
<h1>Joomla! Module</h1>
mod_example.xmlは、mod_latestnews.xmlの内容を一行変更しただけ。
<filename module="mod_example">mod_example.php</filename>
7.作成したmod_example.phpとmod_example.xmlをそのままzip圧縮します。
(二つのファイルを選択して圧縮)
8.インストールして公開。
xmlファイルのname部分を変えていないのでlatest newsという名前のモジュールが二つあるはずです。公開されていない方が今回作成したmod_exampleなので注意してください。
今回はmod_latestnewsをそのまま流用しましたが、パラメータの受け渡しを説明したかったからです。
インストールしたmod_example.phpの<?php ~ ?>の間に下記の行を加えてください。
var_dump($params);
ページを開くとどのようにパラーメータが保持されているかわかります。
パラメータ(設定値)を呼ぶ。
$params->get( 'パラメータ名', デフォルト値 );
または、
$params->get( 'パラメータ名' );
など。
パラメータの指定方法は、xmlファイルをみればわかるでしょう。
今回は、ただ出力するだけのものを作成してみました。 う~んこれなら1分て書いても良かったかな。
みなさん、Javascriptのエディタは何をお使いでしょうか?
一般的なテキストエディタでしょうか。DreamweaverなどHTML編集とともにできるアプリケーションをお使いの方も多いことと思いますが、"aptanna"はいかがでしょうか。
XML エディターについて
Joomla!のエクステンション制作に必ず必要な物がxmlファイルの作成です。普段は普通のテキストエディタを使っているのですが、時々エクステンションインストール時にエラーを吐いたり、インストールできなかったりします。それは大抵、そのXMLファイルのエラーが多いです。今回ご紹介するのはMicrosoftが無料で提供しているXML Notepad 2007です。下記のリンクからダウンロードできます。
このエディタの特徴はツリー表示であることですが、作成したXMLファイルが正しくないとちゃんとエラー表示してくれます。それだけでずいぶん助かります。Joomla!のインストーラーはXMLファイルのエラーまで表示してくれませんからずいぶんそれで時間を費やすことになります。ですからXMLファイルはこれで作成するかアーカイブする前にこれで一度読み込んで正しいXML構文であるかチェックしてからアーカイブすることにしています。
ただ・・・難点はUTF-8はどうもBOM付になるようです。Joomla!のインストーラーはBOM付だとエラーが出たりするようですので、保存後は別のエディタでBOM無しに変更しています。それとこれは英語版しかありません。