Joomler!.net - Decided on Joomla!

Jboard is Multiple Board!

 

Archives

Blog

Demo

Home » Blog » モジュール
0 votes
Written by:Joomler! 11950 hits Sunday, 16 December 2007 17:29

エクステンションを作成していていつも思うのですが、モジュールやプラグイン(Mambot)では直接その作成したものにアクセスはできません。(できなくはないですが、Joomlaの構造上それは制限されるべきです。)コンポーネントですら直接アクセスするためには・・・。

 ちょっと違いますね。

どのエクステンションも通常のアクセスhttp:~/comonents/com_~/なんとか.phpなどどアクセスできません。唯一コンポーネントは、そのアクセス手段があります。

?option=コンポーネント名

をつけることによってその登録されたコンポーネントのファイル(コンポーネント名.php)にアクセスできます。ですから、面倒なんです。は?

ちょっとしたエクステンションを作成するがためにコンポーネントを作成しなければいけないことです。モジュールや、プラグインならファイル数が2個から作成できますが、コンポーネントはそういうわけにはいきません。管理するファイル数が増えることによって手間が増えますし、神経も使います(本当につかっているのか?)。

いや、なぜこんなことを書くのかって・・・一個の設定ファイル(動的に読み込む)を作成させたいがためにコンポーネントを作成しなきゃいけないのかと思うと面倒なので・・・ただ、それだけ。


新しいプロジェクトがはじまりました。
もちろんJoomla!関連なので反映できるものは極力反映していきたいと思います。

 
5 votes
Written by:Joomler! 36985 hits Monday, 10 December 2007 17:08

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分て書いても良かったかな。

 
0 votes
Written by:Joomler! 8551 hits Wednesday, 05 December 2007 21:50

テンプレート作成時や新たなモジュールを導入時など、このメニューの時はこれを出したい、あのメニューの時はこれを出したいなど、メニュー毎にモジュール側で設定が可能です。ですが、もっと細かく設定したい時はこれでは足りません。このサイトのテンプレートでは、さらに細かく分岐しています。(妙な表示の部分もありますけどね。)

 エクステンションによっては異なりますが、$option, $Itemid, $taskなどはJoomla!で普通に使われているグローバルな値です。例えば記事を表示しているときは $option に 'com_content' , $task に 'view' が入っています。$ItemidにはメニューIDなど。これらの値を取得しそれにより判断することによってさらに詳細に表示を変更できるわけです。

 Joomla!のモジュールはたくさんあるのでモジュールの各メニュー毎の割り当ては、かなり面倒です。また、メニューが増えたら同じ作業をそれぞれのモジュール毎にやらなければいけません。この作業が楽になるようなエクステンションが欲しいですね。

 
0 votes
Written by:Joomler! 14531 hits Tuesday, 20 November 2007 17:59

quicklink_preview.jpgJoomla!1.5では、管理画面上部にPreviewボタンがありますが、Joomla!1.0.xではありません。管理画面に絶えず表示されていて欲しい物のひとつですよね。Joomla! Franceで配布されている「QuickLink Preview」モジュールを使えばJoomla!1.0.xでもプレビューボタンが表示されます。

Joomla!fr のQuickLink Previewページ

インストールは、通常のモジュールのインストールと同じです。

インストールしたら、モジュール>管理用モジュール>Previewを開き、公開をクリックしポジションをheaderにすると管理画面上部のメニューが並んでいる位置に現れます。並び方がおかしいときは、モジュール一覧画面で順序を上げ下げすればOKです。クリックすると別ウィンドウでサイトを表示してくれます。Joomla!1.0.xでは、ログアウトしないとプレビューできないので簡単なモジュールではありますが、かなり便利です。お試しあれ。

 
0 votes
Written by:Joomler! 7349 hits Tuesday, 13 November 2007 21:41

google_developer_japan.jpgGoogle の日本語のデベロッパーホームが開設されたようです。

 とても第一線で活躍しているなんて言えないですが、今までは、英語のグループで検索したりでわからないところは、補っていたのですがにぎやかになると良いのですが・・・。ん? 最新情報のところに11月15日?11月16日?掲載しました? え、未来じゃん。もしかして去年?間違えてるのかな・・・・。どこ探しても「1日でわかる Google Maps API」なんてないし。・・・期待しています。

 先日からトップページ上部に表示している作りかけのモジュールのことですが、昨日はじめてとんでもないJavascriptのエラーを激しく吐きつづけていたことに気がついたのです。Firefoxの赤マークが激しく点滅しているではないですか、IE6で見ようものなら・・・。ご迷惑をおかけした方には申し訳ないです。仮修正してエラーは吐かなくなりました。Cycle Pluginのコールバックを使っていたのですが、どこが悪かったのやら・・・・・。修正というか自分で作るハメになりそうです。jQueryあまりわからんのに。

 わかりませんが、「jQueryは、すごい。」ということだけは認識しているつもりです。

 
8 / 11

JContentPlus for Joomla!1.5 powered by Joomler!.net

joomler.net is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla!(R) name is used under a limited license from Open Source Matters in the United States and other countries.
joomler.net is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.