Home arrow とりあえず何でもメモ arrow Joomla! arrow カテゴリリストでの表示順序の追加
   
ブックマークに登録
 

メインメニュー
Home
お知らせ
とりあえず何でもメモ
FAQs
日々是Blog
ショップ
ヘッドライン
検索
リンク
Contact
サイトマップ
R34GTR.NETとは?
Joomla!ライセンス
引き続きコンテンツ
設定・インストールメモ
何故かPHP
CAR
最新ニュース
人気記事
統計
OS: Linux n
PHP: 5.1.6
MySQL: 5.0.77
時間: 06:41
Caching: Disabled
GZIP: Disabled
メンバー: 2
ニュース: 173
ウェブリンク: 41
訪問者: 1014591
カテゴリリストでの表示順序の追加 プリント メール
作者 Web Master   
2005/11/16 水曜日 12:52:34 JST

Joomla!でコンテンツを公開するとき、指定のカテゴリーをメニューに追加できます。

表示の仕方は、Blogパターンとテーブルパターンが選べますが、テーブルパターンの時は表示順序を変える機能があります。

表示順序は、デフォルトで’日付’、’タイトル’、’観覧数’、’作者’で並び替えができるようになっています、そこで、

この順序選択に、標準でコンテンツテーブルにあるフィールドで、並び替えができるように変更してみようと思います。

お断り:
当変更は、Joomla!の標準機能を変更しますので、バージョンアップやパッチ適用には
対応しておりません。
また、動作についても無保証ですので、全て自己責任でお願いします。
 

修正内容としては、ドロップダウンリスト上にソート項目を追加することと、実際にその順番でデータを読み出すよう

にすることの2項目となります。

Joomla!インストールディレクトリ直下/components/com_contentにあるcontent.phpに手を加える。

content.phpの457行目ぐらいに
	if ( $params->get( 'author' ) ) {
$order[] = mosHTML::makeOption( 'author', _ORDER_DROPDOWN_AUA );
$order[] = mosHTML::makeOption( 'rauthor', _ORDER_DROPDOWN_AUD );
$check .= 1;
}
----- 以下略 -----

という箇所があるので、このすぐ後に
    (例として、セクションIDでソートできるようにした場合)
// add start
$order[] = mosHTML::makeOption( 'sectionid', _ORDER_DROPDOWN_SCA );
$order[] = mosHTML::makeOption( 'rsectionid', _ORDER_DROPDOWN_SCD );
// add end
追加します。置き換えではありませんので、気をつけてください。コメントはあってもなくても結構です。
これで、ドロップダウンリスト上にsectionidの昇順と降順を表示するようになります。
ただ、このままだと_ORDER_DROPDOWN_SCA、_ORDER_DROPDOWN_SCDと表示され
ちゃいますが、それについては、後で述べます。

さらに1689行目ぐらいの
		case 'front':
$orderby = 'f.ordering';
break;
default:
$orderby = 'a.ordering';
break;

         ----- 以下略 -----

を、以下のように変更します。

case 'front':
$orderby = 'f.ordering';
break;
// add start
case 'sectionid':
$orderby = 'a.sectionid';
break;

case 'rsectionid':
$orderby = 'a.sectionid DESC';
break;
// add end
default:
$orderby = 'a.ordering';
break;

この変更で、テーブルから読み込む際に、sectionid昇順と降順のそれぞれで読み込むようにできます。
ここまでで、表示順序を新たに加える変更は完了ですが、上で書いたように、ドロップダウンリスト上の表示が
_ORDER_DROPDOWN_SCAとかでは調子悪いので、これをちゃんとした表示にするには、
ランゲージファイルに手を加える必要があります。
ランゲージファイルは、Joomla!インストールディレクトリ直下/language/にあります。
その中から、現在使用中のランゲージファイルに対して修正を加えます。
Joomla!インストールディレクトリ直下/languageにあるjapanese.phpに手を加える。(日本語を使用している場合)
259行目辺りに以下のようなところがあります。

DEFINE('_ORDER_DROPDOWN_DA','日時 昇順');
DEFINE('_ORDER_DROPDOWN_DD','日時 降順');
DEFINE('_ORDER_DROPDOWN_TA','タイトル 昇順');
DEFINE('_ORDER_DROPDOWN_TD','タイトル 降順');
DEFINE('_ORDER_DROPDOWN_HA','観覧数 昇順');
DEFINE('_ORDER_DROPDOWN_HD','観覧数 降順');
DEFINE('_ORDER_DROPDOWN_AUA','作者 昇順');
DEFINE('_ORDER_DROPDOWN_AUD','作者 降順');
DEFINE('_ORDER_DROPDOWN_O','並び替え');
----- 以下略 -----
これに下のような追加を行います。

DEFINE('_ORDER_DROPDOWN_DA','日時 昇順');
DEFINE('_ORDER_DROPDOWN_DD','日時 降順');
DEFINE('_ORDER_DROPDOWN_TA','タイトル 昇順');
DEFINE('_ORDER_DROPDOWN_TD','タイトル 降順');
DEFINE('_ORDER_DROPDOWN_HA','観覧数 昇順');
DEFINE('_ORDER_DROPDOWN_HD','観覧数 降順');
DEFINE('_ORDER_DROPDOWN_AUA','作者 昇順');
DEFINE('_ORDER_DROPDOWN_AUD','作者 降順');
DEFINE('_ORDER_DROPDOWN_SCA','セクションID 昇順');
DEFINE('_ORDER_DROPDOWN_SCD','セクションID 降順');
DEFINE('_ORDER_DROPDOWN_O','並び替え');
----- 以下略 -----
これで、ドロップダウンリストの表示も変わるはずです。
これで、新たに表示順序を追加することはできましたが、その項目は表示されていません。
表示順序に追加したものも、アイテムリストに追加する変更については、また別途。
最終更新日 ( 2005/11/16 水曜日 17:19:53 JST )
 
次へ >
2012/02/06 月曜日 06:41:12 JST
 
 
© 2012 R34GTR.NET
Joomla! is Free Software released under the GNU/GPL License.