ネットワーク上にHello Worldモジュールを作成する多くの例がありますが、これは多くの場合、初めて自分のモジュールを作成したい人の主な目標ではありません。 通常、そのタスクは、通常の標準Joomlaモジュールでは提供されなかったデータをデータベースから出力することです。
これを行うには、ディレクトリを作成し、そこにindex.htmlファイル(Joomlaモジュールの任意のフォルダにある)を配置して、ディレクトリへの直接アクセスを回避します。 インストールを気にしたくないが、localhostにJoomlaがある場合は、モジュールのフォルダーにすぐにモジュールのフォルダーを作成できます。すべてのファイルを作成したら、すぐに管理パネルのコントロールパネルに移動し、「作成」をクリックします。リストに表示され、含める準備ができます...
たとえば、モジュールは
mod_myと呼ばれ
ます 。 彼の仕事は、データベースからユーザーのリストを表示し、このパネルを管理パネルから自分が指定した数に制限することです。
モジュールの完全な動作のためのファイルの最小セット:
/modules/mod_my/index.html
/modules/mod_my/mod_my.php
/modules/mod_my/mod_my.xml
/modules/mod_my/helper.php
/modules/mod_my/tmpl/index.html
/modules/mod_my/tmpl/default.phpこのモジュールは、MVCアーキテクチャ(モデル、ビュー、コントローラー-モデル、ビュー、コントローラー)を使用します。
最初に、モジュール(コントローラー)のロジックをhelper.phpファイルに分離し、データのすべての作業がそこでのみ行われるようにします。 プレゼンテーション(表示)/テンプレート、(X)HTMLをtmpl / default.phpに配置します。 ロジックをプレゼンテーションから分離するのは良いプログラミングスタイルです。
それでは、ファイルの作成を始めましょう。
mod_my.phpファイルから始めましょう
<?php
//直接アクセスなし
定義済み(「_ JEXEC」)またはダイ(「この場所への直接アクセスは許可されていません。」);
//ヘルパーファイルを含めます
require_once(dirname(__ FILE __)。DS.'helper.php ');
//モジュールの構成からパラメーターを取得します
$ userCount = $ params-> get( 'usercount');
//ヘルパーから表示するアイテムを取得します
$ items = ModMyHelper :: getItems($ userCount);
//表示用のテンプレートを含める
require(JModuleHelper :: getLayoutPath( 'mod_my'));
?>
このファイルの主な段階:
- helper.phpファイルを含めます。これは、モジュールのロジックとデータを扱う際の主力製品です。
- データを受け取った後、データを使用して表示するテンプレートをロードするだけです。
次のファイル
mod_my.xmlには、モジュールの説明とその設定の一部が含まれます。
<?xml version = "1.0" encoding = "utf-8"?>
<インストールタイプ= "モジュール"バージョン= "1.5.0">
<!-モジュールの名前->
<name>マイモジュール</ name>
<!-著者の名前->
<author>ニック</ author>
<!-モジュールのバージョン日付->
<creationDate> 2009-03-30 </ creationDate>
<!-著作権情報->
<copyright>著作権</ copyright>
<!-ライセンス情報->
<ライセンス> GPL 2.0 </ライセンス>
<!-著者のメールアドレス->
<authorEmail> info@info.com </ authorEmail>
<!-著者のウェブサイト->
<authorUrl> www..com </ authorUrl>
<!-モジュールのバージョン番号->
<バージョン> 1.0.0 </バージョン>
<!-モジュールの機能の説明->
<description>任意</ description>
<!-モジュールが機能するためにインストールする必要があるすべてのファイルのリスト->
<ファイル>
<!-「モジュール」属性は、これがメインコントローラーファイルであることを示します->
<filename module = "mod_my"> mod_my.php </ filename>
<filename> index.html </ filename>
<filename> helper.php </ filename>
<filename> tmpl / default.php </ filename>
<filename> tmpl / index.html </ filename>
</ files>
<!-オプションのパラメーター->
<params>
<!-モジュールテーブルのモジュールクラスサフィックスの配置を許可するパラメーター/ xhtml表示->
<param name = "moduleclass_sfx" type = "text" default = "" label = "Module Class Suffix" description = "PARAMMODULECLASSSUFFIX" />
<!-前のパラメーターと次のパラメーターの間のスペースを少し確保します->
<param name = "@ spacer" type = "spacer" default = "" label = "" description = "" />
<!-管理者がこのモジュールが表示するユーザー数を変更できるようにするパラメーター->
<param name = "usercount" type = "text" default = "5" label = "Number of users" description = "Specify the number of users" />
</ params>
</ install>
Helper.php自体には、リクエストコードが直接含まれます。
<?php
定義済み(「_ JEXEC」)またはダイ(「この場所への直接アクセスは許可されていません。」);
クラスModMyHelper
{
/ **
*投稿アイテムのリストを返します
* /
パブリック関数getItems($ userCount)
{
//データベースへの参照を取得します
$ db =&JFactory :: getDBO();
//ランダムに並べられた$ userCountのリストを取得します
$ query = 'SELECT a.name FROM `#__ users` AS a LIMIT'。 $ userCount。 '';
$ db-> setQuery($ query);
$ items =($ items = $ db-> loadObjectList())?$ items:array();
$アイテムを返します。
} // getItemsを終了
} // SimplestForumLatestPostsHelperを終了する
?>
データベースからユーザーのリストを受け取り、配列をユーザーのサブセットでランダムに埋めます。そのディメンションは、moduleパラメーターで指定され、$ userCountパラメーターを介してgetItemsメソッドに渡されます。
そして最後に、これらすべてが最も単純なリストに表示されるように、
tmpl / default.phpファイルを作成し
ます
<?php defined( '_ JEXEC')or die( 'Restricted access'); //直接アクセスしませんか?>
<ul>
<?php foreach($アイテムを$アイテムとして){?>
<li>
<?php echo $ item-> name; ?>
</ li>
<?php}?>
</ ul>
その結果、完全に機能するモジュール、最も単純なコンテンツが得られますが、データベースへの接続とその実装例があります! その後、ZIPでアーカイブすることができ、すべてのjoomla 1.5にインストールする準備ができます