Home arrow Link arrow Modules

5分でつくるJoomla! モジュール

diggに追加!

Joomla!のエクステンションで一番簡単に作成できるのがモジュールだと思います。もちろん、複雑な処理をするものも作成できるのですが簡単なものならすぐにできます。簡単なモジュールを作ってみましょう。

用意するもの

  • テキストエディタ
    PHPコードとXMLをUTF-8(BOMなし)で書けるものなら何でも良い。

mod_example.jpg<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の内容をすべてコピーします。
(コピーが一番簡単に作成できる方法です。)

変更必須のところ

  • <filename module="mod_xxxxxxxx">mod_xxxxxxxx.php</filename>

ここだけです。他は、名前が重複したりしても構わないならそのままで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分て書いても良かったかな。

 

Related Articles

Joomla!1.5日本語SEF : Hack
Joomla!1.5では、英語タイトルなら自動でタイトルを付加したSEF-URLにしてくれるのですが、日本語だと番号だけになってしまいます。真偽は定かではありませんが、日本語でもURLエンコードされ...
JBackup について : Joomla!1.5
少し前からJBackupでメモリーが足りないというメッセージで停止してしまうと問い合わせをいただいていました。当初からデータ量によってはあり得ると考えていましたが、おそらくそれが原因ではないかと思って...
htaccessを作成するオンラインツール
便利そうな.htaccessを作成するツールがありました。htaccessファイルって何度も作成するものでもないので大抵一度作成したら放置していることが多いと思いますが、あらためて作成しよう...
Google VideoBar Module 1.0.0
Google VideoBar モジュールです。 右の画像の用にビデオバーを表示します。ビデオプレイヤーはこのバーの上か下または、タグを書き入れることによる任意の場所に出力可能です。 ...
ユーザプロフィール : Fireboard Hack?
Fireboardで先日プロフィール欄のユーザが登録されたURLをクリックしたらhttp://がダブっていてちゃんと表示されませんでした。これは、プロフィール登録時にhttp://とともにURLを登...
Meta Tag Generatorを消す : Joomla! 1.5
<meta name="generator" content="Joomla! 1.5 - Open Source Content Management" /> Joomla!1.5...
Update GreyBox Show プラグイン
GreyBox Showプラグインをアップデートしました。  このアップデートは、Joomla!1.5用のものだけです。   変更点 ...
国旗を間違っていました : JGTDoc Google Translation Doc
ごめん。国旗を間違えていました。 決してFamFamFamでの国旗名称に責任転嫁するつもりはないですが、そのまま使っていたので・・そのままでした。 昨日メールでお知らせいただいてから確認してはじめ...
久しぶりにGoogle Video Barの問い合わせがあったので : Joomla!
フォーラムでGoogle Video Barの問い合わせがあったのでYouTube TV Demoの設定を画像にしてフォーラムに上げました。Google Video Barの設定画像 Joomla!...
エクステンションのパラメータでサポートされているタイプ : Joomla!1.5
Joomla!でエクステンションを作成するとき、必ず必要なのが、エクステンション名.xmlです。 この中でエクステンションの設定値などをタイプやデフォルト値で指定する「params」というものがあ...
DS-SyndicateコンポーネントにSQLインジェクションの脆弱性
そういえば作ると言って作っていないものがたくさん : Joomla!1.5
はじめてJoomla!1.5のFCKエディタとJCEエディタを使ってみた : Joomla!1.5
オンラインで3Dのパッケージイメージを作る
descriptionをブログ記事の表示順に変更してみた : Joomla!1.0.x
ログアウトしたらログイン画面にもどる : Joomla!1.0.x Hack
extensions.joomla.orgがアップデートされていますよ
Frontpage Auto Update Plugin : アップデートしました Update!!
Frontpage Auto Updateプラグインをアップデートしました : Joomla!1.5
あ~またアップデートというかバグつくるなよ

C_square_trans.png Components
Joomla! Extensions
M_square_trans.png Modules
Joomla! Extensions
P_square_trans.png Plugins
Joomla! Extensions
Templates
Joomla! Extensions
a_delphi.gif Delphi for PHP
Delphi for PHP related