Joomla!の管理画面から記事を編集するとき、記事管理の画面を開くとログインしてから最初は、セクション名、カテゴリ名、カテゴリ順といった優先順位で記事が一覧になります。これがデフォルト。
ですが、記事を新規作成してもこの並び順です。
大抵、記事一覧を見るときは、古い記事ではなく最近書いた記事が多いと思うのですが、それは私だけでしょうか?
久しぶりにHackしてみます。
以下は、mod_jcontentplusでの縦表示時の説明です。
モジュールのJContentPlusでセクションや、カテゴリーのメニュー(リンク)を表示することができますが、(例えば、ここのExtensionsやDownload, Blogなど)カテゴリーの階層化(子カテゴリー、親カテゴリー)表示のとき、当初indentという変数にその階層の深さを反映していたつもりが、していなくて(過去にはしていたのかもしれませんが)Noticeエラーが出ていました。(通常Noticeエラー表示している方は、少ないと思うので気づかなかった方も多いと思う。)
今回、それを修正しましたが、以前と異なる表現方法にしましたので、その変更点をご説明します。簡単に、スタイルで階層化を表現できます。
ページのソースを表示してdescription部分を見るとそのページで開いている最後(一番下)の記事のdescriptionが、最初に表示される。これは、Joomla!のヘッドタグに追加するメソッドが後からの分を登録済みのものの前に追加するように書かれているからです。
そこで変更してみました。
Root/includes/joomla.php
$this->_head['meta'][$i][1] = $content . ', ' . $this->_head['meta'][$i][1];
を
$this->_head['meta'][$i][1] = $this->_head['meta'][$i][1]. ', '. $content;
として後から追加されるものは登録済みのものの後に追加するようにしてみました。これで最新のものが先に来るはずです。というより並び順の最初のものと言った方が良いのかな。
と、Joomla!1.5はどうかと気になったので確認してみましたが、記事単体を表示した状態でないとdescriptionに反映されない? ブログレイアウトのように複数の記事の場合は、サイトのdescriptionのみが表示されるようですね。
Joomla!1.5では、管理画面から記事の一覧を表示するとそれぞれの項目でソートが可能ですが、Joomla!1.0.xではそれができない。投稿した記事を確認したいときなど最新の記事順に並んでくれていればと思う方もいると思います。
そこで以下を変更してみた。
ROOT/administrator/components/com_content/admin.content.php
$order = "\n ORDER BY s.title, c.catid, cc.ordering, cc.title, c.ordering";
を
$order = "\n ORDER BY s.title, cc.ordering, cc.title, c.created DESC";
に変更。さらに同じファイルの
$order = "\n ORDER BY cc.ordering, cc.title, c.ordering";
を
$order = "\n ORDER BY cc.ordering, cc.title, c.created DESC";
に変更しました。
この変更を行うことにより常にカテゴリ毎に最新記事順にならぶことになります。ブログ的に使う方ならこれって必要なことですよね。 Wordpressのようにシンプルで良いような気もしますし。この辺りはそれぞれ使い方によって利便性が異なるのでご自身で一番適当な並び順になるように書き換えたら良いと思います。ちなみに私の場合カテゴリ毎にならんでもらう必要などないので以下のようにしました。
$order = "\n ORDER BY c.created DESC";
$order = "\n ORDER BY c.created DESC";
のように変更するとタイトルや、カテゴリを無視して常に最新記事順に並びます。ただし、表示順のところはバラバラになりますけど表示順に従って管理していないので私にとっては好都合となります。
お好みにあわせて変更されてはいかがでしょうか。