Nucleus必須のプラグインとも言うべきもので、以下より入手した。
・カレンダー:採用しているスキンvicunaサイトで紹介しているCitrocubeより
・マルチカテゴリ:Nucleus公式のNP_MultipleCategories
さて、カレンダーはさておき、マルチカテゴリにてメインカテゴリのソートができない(カテゴリ名でソートしている)ので少しカスタマイズした。
メインカテゴリのソートは別なプラグインを入れることで何とかなるようだが、ネット上を徘徊しているとNucleusのコアプログラムとプラグインプログラムにてカテゴリを抽出するSQLを修正することで対応できるとの情報があったので、今回はこれを行うことにした。(Nucleusのバージョンアップ時には気をつけねば)
これは、カテゴリの説明をソートするものということを加えておく。(たとえば説明に 01.あいう とか 09.かきく と書いておくと、それを昇順に並べ替える)
対象となるプログラムは、2本
1本目:nucleus/libs/BLOG.php
$query = 'SELECT catid, cdesc as catdesc, cname as catname FROM '.sql_table('category').' WHERE cblog=' . $this->getID() . ' ORDER BY cname ASC';
を
$query = 'SELECT catid, cdesc as catdesc, cname as catname FROM '.sql_table('category').' WHERE cblog=' . $this->getID() . ' ORDER BY cdesc ASC';
2本目:nucleus/plugins/NP_MultipleCategories.php
修正箇所①
function _getCategories($id){ を探して、その関数内のSQLにORDER BY句を追加する
$query = 'SELECT catid, cname as name, cdesc FROM '.sql_table('category').' WHERE cblog=' . intval($id);
↓
$query = 'SELECT catid, cname as name, cdesc FROM '.sql_table('category').' WHERE cblog=' . intval($id) . " order by cdesc ";
修正箇所②
function showCategoryList() { を探して、関数内のSQLのORDER BY区の項目を変更する
' as c WHERE c.cblog=' . intval($blogid) . ' GROUP BY c.cname ORDER BY c.cname ASC'; //<sato(na)0.5j />
↓
' as c WHERE c.cblog=' . intval($blogid) . ' GROUP BY c.cname ORDER BY c.cdesc ASC'; //<sato(na)0.5j />
これでどうにか、管理画面とコンテンツのメインカテゴリの並べ替えがでた。
※ここに書いたことはコアプログラム・プラグインプログラムを変更するので、失敗するとNucleusそのものが動くなるかも知れません、自己責任で行ってください
Trackback: 0
- TrackBack URL for this entry
- http://www.furuken.net/blog/action.php?action=plugin&name=TrackBack&tb_id=43
- Listed below are links to weblogs that reference
- Nucleusでサイト構築 04.カレンダーとマルチカテゴリ化 from ぼそぼそ









