システムが出力する(例えば記事保存時など)メッセージをオーバーライドできるプラグインです。
インストール方法
使い方
簡単なプラグインですが、Joomla!1.5を操作していて一様に同じメッセージ表示なので変更できないかと思い作成しました。
通常のサイトなら必要ないでしょうが、一定規模のサイトなら今までコアを編集したりしていたのでは無いでしょうか。
Joomla!1.5.8からでしょうか、1.5.7か1.5.6と比較するとそうでなさそうなのでたぶんそうでしょう。フロントエンドからの新規投稿時に公開終了日時が現在時刻で初期化された値がすでに表示されてしまっていて気づかずにそのまま保存すると、公開と同時に終了となってしまいます。
Joomla.orgのフォーラムでもあがっていました。Joomla!1.5.9で修正されると思います。
こういう仕様だと言われればそうなのかもしれないが、使い勝手が悪い。
なので少し変更してみました。
Root/components/com_content/views/article/tmpl/form.php
$config =& JFactory::getConfig();
$publish_up =& JFactory::getDate($this->article->publish_up);
//$publish_down =& JFactory::getDate($this->article->publish_down);
$publish_up->setOffset($config->getValue('config.offset'));
//$publish_down->setOffset($config->getValue('config.offset'));
$publish_up = $publish_up->toFormat();
//$publish_down = $publish_down->toFormat();
$publish_down = '';上記のようにすることで解決します。
本体をさわりたくなければ、テンプレート側でオーバーライドしてやれば良いですね。
言われてみればその通り、関連記事モジュールには表示件数の制限が無いためたくさんヒットしたらそのまま表示されてしまいます。考えてみればこのサイトではそれだと見た目も悪くなるし、少し内容も表示したかったのでオリジナルの関連記事モジュールを作成したことを忘れていました。
とりあえず、表示件数の制限をつけることくらいは簡単なので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する方法だとアップデート時に、忘れていたりしてかなり面倒になってきたりしますので、それを考慮にいれるとテンプレート側で対応する方法を行った方が良いかもしれません。