サイトを作成しているとよくあることですが、
などと。
Joomla!は、メニューにテンプレートを割り当てる事ができるのでメニュー毎にテンプレートを切り替える方法は、一般的な方法です。
もう一つ簡単な方法として考えられること。要はその表示・非表示の条件が、何で判断できるかを考えてみます。
例えば、
<?php if($this->countModules('作成したモジュールのモジュールポジション')) : ?>
<jdoc:include type="modules" name="ログイン後に表示したいモジュールポジション" style="rounded" />
<?php endif; ?>うちのサイトのJoomla!1.5サイトは(もしかしたらその時には1.6になっているかもしれないが)itami さんところのFDJ版Joomla!1.5を使う事に決めています。そのitamiさんとこからTinyMCE3.0搭載の最新版Joomla!1.5.8_FDJ版が公開されました。
http://itami.info/こちらのページ中程にFDJ版リンクがあります。
1.5.7は開発環境で使っていますが、まだ最新版は適用していません。今回以前に私の方からja-JPで作成してもらえないかとお願いしたのですが、後からタグだけ変えれば望む結果になることがわかり、言語コードはja-FJ、表示には(HTMLタグ内)ja-JPとなるようです。これで完全解決。
FDJ版の使い方の例
お、今度言語ファイルの編集って記事作ろう。Joomla!1.5の言語ファイルを編集するだけでかなりのことができますよ。
今後もFDJ版を応援します。
うちにも問い合わせが来たので・・・。
Joomla!1.5.8では、記事保存時にコンテンツコンポーネントの設定でなにも設定していなければ、初期設定で指定されている削除タグはすべて削除されてしまいます。おそらく、何も設定せずに使用されている方のためにデフォルトで危なそうなタグを削除するという設定に変更したのだと思います。
では、それを回避するにはどうすれば良いかというと、簡単です。バックエンドの記事管理一覧のプリファレンスから、フィルタオプション以下を設定すればOKです。
設定例(推奨設定です)
フィルタグループ
を選択します。フロントエンドから投稿するひとすべてですね。
フィルタタイプ
フィルタタグ
フィルタ属性
但し、この設定ではフロントエンドからの記事投稿者にはHTMLを一切許可しない設定です。許可したい場合は、フィルタタグや、属性の設定が必要です。
さて、本題ですがこの設定をすることにより、フィルタグループで指定されていないユーザーレベル(この場合ならmanager, administrator, super administrator)はフィルタを通過しないのでGoolgleMapのIFrameも登録可能になります。
いつもRSSリーダーで登録している記事を読んでいます。もちろんJoomla!関連のサイトはいくつか登録してあってその中にJoomla!1.6関連のものがありました。もちろん英語記事なので読んでも”さっぱり”なところもあり、その理解した内容があっているかはわかりませんが・・・。
Joomla!1.6では権限管理が加わっていそうです。どこまでできるようになるのかは、わかりませんが、機能によって権限の付与・剥奪ができるようになるのでしょうか。また、パフォーマンスも今より改善されるようです。
このサイトの1.5化では、mootools1.2を基本にして足りないものとやりたいことを実現しようと思っていますが、あーだこーだやってるうちにJoomla!1.6が出てきちゃったりしたらまた、延ばさないといけなくなっちゃいそうです。
1.6が出るとさらにエクステンション側の対応も必要になってくるでしょうから、今追いついておかないと取り残されそうです。(すでに、まだJoomla!1.0.xを使っている時点で取り残されている気はしますが・・ポツ~ン。他のサイトは、みんな1.5ですもんね。)
まあ、個人的には1.0.xと1.5は、機能にあまり差がないと思っているので、Joomla!2.0くらいを待ち望んでいます。
言われてみればその通り、関連記事モジュールには表示件数の制限が無いためたくさんヒットしたらそのまま表示されてしまいます。考えてみればこのサイトではそれだと見た目も悪くなるし、少し内容も表示したかったのでオリジナルの関連記事モジュールを作成したことを忘れていました。
とりあえず、表示件数の制限をつけることくらいは簡単なのでHackか、テンプレートでやっちゃえば簡単です。
まずは、Hackなら
$db->setQuery($query);
を
$db->setQuery($query, 0, 20);
のように、最初(0)から20個の記事というように20の部分に表示最大件数を入れます。自由に設定できるようにしたい場合は、
$db->setQuery($query, 0, intval($params->get('limit', 20)));
のようにし、xmlファイルのパラメータ部に
<param name="limit" type="text" size="3" label="最大件数" description="" />
などと追加すればバックエンドで最大件数が設定できるようになります。
ではテンプレート側でやるには
mod_related_items/tmpl/default.phpとindex.htmlを、使っているテンプレートフォルダ/html/mod_related_itemsにコピーします。そしてコピーしたdefault.phpを編集します。
<?php foreach ($list as $item) : ?>
を
<?php
$i = 0;
foreach ($list as $item) :
if($i > 20){
break;
}
$i++;
?>のようにすればOKです。
本体をHackする方法だとアップデート時に、忘れていたりしてかなり面倒になってきたりしますので、それを考慮にいれるとテンプレート側で対応する方法を行った方が良いかもしれません。