お知らせ
2008年3月28日
「これだけは知っておきたい Webアプリケーションの常識」が発売されました。
Webアプリケーションを作る上では、HTTPのプロトコルや、開発言語、データベースなど、さまざまな知識を組み合わせることが必要になります。
それらを全般的にまとめた一冊です。
Webアプリケーション開発にチャレンジしたい方や、実際に開発までしないまでも基礎知識として知っておきたい方にお勧めです。
他にも多数書籍を執筆しています。
こちらもぜひご覧ください。
カテゴリーとフォルダを並べ替えるプラグイン(MT4以降用)
当BlogではMovable Typeのプラグインを配布していますが、中でも「カテゴリーの並べ替え」は人気が非常に高いです。
先日のHack-a-thonでMT4用にこのプラグインを改良し、基本部分まで作り終えました。
そして、家に帰ってからユーザーインターフェースを改良して完成させました。
今回のプラグインでは、カテゴリーの並び順を画面上で設定できるようにするなど、使い勝手を大幅に改善しました。
また、Movable Type 4ではエントリーではないページを作ることができ、それらのページをフォルダに分けて管理することもできます。
このプラグインでは、フォルダの並べ替えにも対応しています。
1.ダウンロードとインストール
プラグインは以下からダウンロードすることができます。
- Movable Type 4~4.01a用
SortCatFld_1_01.zip - Movable Type 4.1/MTOS用
SortCatFld_1_02.zip
ダウンロードしたファイルを解凍すると、「plugins」と「mt-static」というフォルダができます。
通常は、これらのを、Movable Typeのインストール先ディレクトリにアップロードします。
また、Movable Type本体と「mt-static」ディレクトリとを別のディレクトリにしている場合は、解凍してできた「mt-static」ディレクトリの中身を、Movable Typeの「mt-static」ディレクトリの中にアップロードします。
アップロード後にMovable Typeにログインすると、Movable Typeのアップグレードを行うメッセージが表示されます。
画面の指示に従って操作します。
2.テンプレートの書き換え
インストールが終わったら、テンプレートを書き換えておきます。
テンプレートの中で、MTSubCategories/MTTopLevelCategories/MTSubFolders/MTTopLevelFoldersタグを使っている箇所を検索します。
そして、それらのタグに、「sort_method="SortCatFld::Sort"」のアトリビュートを追加し、テンプレートを保存します。
たとえば、MTTopLevelCategoriesタグを書き換える場合だと、以下のようにします。
<MTTopLevelCategories sort_method="SortCatFld::Sort">
ちなみに、Movable Type 4の標準テンプレートの場合だと、「サイドバー(2カラム)」などのテンプレートに、MTTopLevelCategoriesタグを使っている箇所があります。
また、Movable Type 4.1の標準テンプレートでは、「カテゴリアーカイブ」のウィジェットの中に、「mt:TopLevelCategories」のタグがありますので、そこを書き換えます。
3.カテゴリー/フォルダを並べ替える
このプラグインをインストールすると、カテゴリー/フォルダの一覧のページに、並べ替えへのリンクが追加されます。
↓並べ替えへのリンク

このリンクをクリックすると、カテゴリー/フォルダの並べ替えのページが表示されます。
各行にはカテゴリー/フォルダの名前と、並べ替えのボタンが表示されます。
以下のそれぞれのボタンをクリックすると、その行のカテゴリー/フォルダを以下のように並べ替えることができます。
なお、入れ替えや移動は、同じ親を持つカテゴリー/フォルダの間でのみ行われます。
また、子カテゴリーのあるカテゴリーを並べ替えると、子カテゴリーも含んだまま、並べ替えが行われます。
| ボタン | 動作 |
|---|---|
| 1つ上のカテゴリー/フォルダと入れ替えます。 | |
| 1つ下のカテゴリー/フォルダと入れ替えます。 | |
| 先頭に移動します。 | |
| 末尾に移動します。 |
以下の画面は、カテゴリーを並べ替えた例です。
並べ替えなければカテゴリー/フォルダは文字コード順に出力されますが、この画面では文字コード順にはなっていません。
たとえば、トップレベルのカテゴリーの「PC」と「FP」は、文字コード順なら「FP」が前ですが、この画面では「PC」が先になっています。
並べ替えが終わったら、「変更を保存」のボタンをクリックします。
そして、カテゴリーやフォルダの一覧が含まれるページ(メインページなど)のテンプレートを再構築します。
これで、並べ替えた通りの順番で、カテゴリー/フォルダの一覧が表示されます。
4.並べ替え結果の各箇所への反映
カテゴリー/フォルダの並べ替えを行うと、MTにログインした後の各ページで、以下の各箇所にも並べ替えが反映されます。
- 「カテゴリの一覧」のページ
- 「フォルダの一覧」のページ
- エントリー編集ページのカテゴリー選択欄
- ページ編集ページのフォルダ選択欄
↓エントリー編集ページのカテゴリー選択欄に並べ替えが反映される
![]()
5.ライセンス
このプラグインは、以下のようにデュアルライセンスでご提供します。
5-1.個人ライセンス/商用ライセンスと組み合わせる場合
- 改変・再配布は自由に行っていただいてかまいません。
ただし、改変して再配布する場合、原作者のクレジットは残しておいてください。 - 無料でご利用いただくことができます。
ただし、プラグインの開発やサポートのご支援のために、ドネーションをご検討いただければ幸いです。
5-2.MTOSと組み合わせる場合
- GPLv2に従います。
- 無料でご利用いただくことができます。
ただし、プラグインの開発やサポートのご支援のために、ドネーションをご検討いただければ幸いです。
前後の記事
トラックバック(13件)
このブログ記事を参照しているブログ一覧: カテゴリーとフォルダを並べ替えるプラグイン(MT4以降用)
このブログ記事に対するトラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/1021.
素晴らしいプラグインが公開されました。以前のバージョンでもいろいろと工夫されてい... 続きを読む
先日来のProNetミーティングや開発者向けカンファレンスで 上ノ郷谷さんがし... 続きを読む
プラグインの導入(1) に続いて、プラグインを導入してみた。今回導入したのは前回... 続きを読む
Movable Type4にアップデートしてみました。まだMovable Typ... 続きを読む
カテゴリーの並び方がずっと気になってました。 今回はその並び替えをしてみました。 続きを読む
こんばんわ、にしやんです( ´ ▽` )ノ 実は以前からちょっと気になっていた... 続きを読む
これまでMTでカテゴリーを自分の意図通りに並び替えるには、カテゴリーの前に何桁か... 続きを読む
仕事のこともあり、MTをじわじわじわじわと勉強しています。 blogもだけどCM... 続きを読む
カテゴリの並び替えについては、何もしない! ってのが僕のポリシーっていうか。 M... 続きを読む
本Blogでは今までカテゴリーをソートするのに MTCategoryNameで... 続きを読む
カテゴリーとフォルダを並べ替えるプラグイ... 続きを読む
Movable Typeシリーズおなじみの悩みとして「カテゴリー表示を任意の順番... 続きを読む


コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
プラグインについてご質問をされる方は、ご自分のBlogのURLを必ず入力してください。
また、プラグインの開発やサポートを継続的に行えるようにするために、ドネーション(寄付)をしていただけると幸いです。
金銭的寄付だけでなく、精神的寄付も歓迎します。
ドネーションのページはこちら
待ってましたのカテゴリ並べ替えプラグインですね。
「並べ替え結果の各箇所への反映」はとても素晴らしいです。
「テンプレートの書き換え」は「サイドバー(3カラム)」のテンプレート、MTTopLevelCategoriesタグを書き換えただけでしたが他にも書きかえる個所があるでしょうか。
以前のバージョンと違い、今回のMT4ではテンプレートがあちらこちらに存在しインクルードされているようで、なかなか慣れない私には探しきれませんでした。
お忙しいとは存じますが、ご指南いただければ幸いです。
>哲やんさん
こんにちは。プラグインご利用ありがとうございます。
ご質問の件ですが、テンプレート編集のページで、右上にある「検索 テンプレート」の欄に「MTTopLevelCategories」などのタグ名を入力して検索すると、そのタグを含むテンプレートが一覧表示されます。
後は、見つかった個々のテンプレートを編集する状態にして、タグを使っている箇所を検索していくとよいでしょう。
早々にご返信いただき誠にありがとうございました。
右上にある「検索 テンプレート」・・・こんな機能があったのですね。
見落としていました。
きっちり書き換えて運用したいと思います。
本当にありがとうございました。
こんにちは、最初は管理画面を並べ替えるだけかと思っていたら、それがソートメソッドに使えるんですね。
これこそ、カテゴリーソートの決定版だ。
テンプレートの説明の所、sort_method=="SortCatFld::Sort"とイコールが二つ重なってますが、これは一つで良いのではないでしょうか?環境依存?
>oscarさん
こんにちは。
エントリーの間違いをご指摘いただき、ありがとうございました。
早速修正しておきました。
プラグインお借りしました。どうもありがとうございます。
カテゴリの順番移動が簡単にできて大変喜んでいます。
また、よろしくお願い申し上げます。
>kankitiさん
こんにちは。
プラグインご利用ありがとうございました。
すみません、こちらのプラグインを使わせていただきたいのですが、どうもうまく動かないので教えて頂けないでしょうか?
プラグインをダウンロード・アップして、ログインするとアップグレード画面になり、再度ログインしてカテゴリを並べ替え、MTSubCategories/MTTopLevelCategories/MTSubFolders/MTTopLevelFoldersタグを使っている箇所を検索し、sort_method="SortCatFld::Sort"を追加して再構築しましたが、反映されません。
何が間違っているのでしょうか?
よろしくお願い致します。
>yu-kiさん
こんにちは。
手順は正しいので、何らかの理由で「sort_method="SortCatFld::Sort"」のアトリビュートが動作していないものと思われます。
ただ、申し訳ありませんが、現象からは原因は分かりません。
>yu-kiさん
こんにちは。
ふと気付きましたが、もしかすると、MT標準のダイナミックパブリッシングをお使いではないでしょうか。
申し訳ありませんが、このプラグインはMT標準のダイナミック・パブリッシングには対応していません。
ありがとうございました。
ダイナミック・パブリッシングは使用しておりません。
実はMT3だったとか?
こんにちは、SortCatFldを使わせていただいております。
当方MT4.01の環境なのですがMac/WinともにFirefox以外のブラウザでは正常に動かないのですが・・私だけでしょうか?
その症状とは↓
カテゴリー/フォルダの一覧のページには並べ替えへのリンクが表示され並べ替えも正常にでき、ブログページのカテゴリにもその順序は正しく反映されているのですが、そのカテゴリリストに投稿した記事がリンクされていないという症状です。
Firefoxでは正常なのでインストールやアトリビュートの追加設定等は間違ってはいないと思うのですが・・・。
できましたら検証をお願いいたします。
よろしくお願いいたします。
>kimuchiさん
こんにちは。
ページを拝見しましたが、カテゴリーリスト部分のliタグが以下のようになっていました。
<li class="widget-list-item";<a href="カテゴリーアーカイブのアドレス" title="カテゴリー名">カテゴリー名</a>
liタグの最後が、上記の赤字のように「;」なっているのが、問題の原因です。
こんなに早くご返事を頂けるとはm(__)m
ありがとうございました、お陰様で無事解決いたしました。
藤本様著作の書籍、これからも優先して購入させていただきたいと思います。
これには以前の書き出しディレクトリ名の抽出はできないでしょうか。
001|pc|パソコンの設定のものです。
書き出しディレクトリ名は管理画面から行えますがテンプレ内でディレクトリ名を吐き出させたい場合、これは有効でないですよね。
有効なのはあわせ技ですか。
そうなると以前の頭の部分「001|」は不要だけど置いておく幹事になりますでしょうか。
>WARAさん
こんにちは。
カテゴリーの設定のページで指定した出力ファイル名は、MT標準のMTCategoryBasenameタグで得ることができます。
また、サブカテゴリーがあって、カテゴリーの階層も得たい場合は、MTParentCategoriesタグと組み合わせます。
デフォルトタグで取得ができるんですね!
知らなかったです。。
わざわざご教授いただきありがとうございました。
早速ためしてみます。
こんにちは。先日からこちらのこちらのプラグインを使わせていただいています。
インストールまではスムーズに行われたのですが、実行段階に移るとエラーが出てしまい、先に進めなくなってしまいました。
まず、カテゴリ一覧からカテゴリの並べ替えをクリックすると、以下のようなエラーが出ます。
Cannot find column 'order_number' for class 'MT::Category' at /www/mt/plugins/SortCatFld/SortCatFld.pl line 303
さらに、sort_method="SortCatFld::Sort"を各指定カテゴリ系タグに付けて再構築すると、以下のようなエラーが出ます。
MTTopLevelCategoriesでエラーが発生しました: categoriesの並べ替えでエラーが発生しました: Cannot find column 'order_number' for class 'MT::Category' at /www/mt/plugins/SortCatFld/lib/SortCatFld.pm line 6
当方のMTのバージョンは4.01、サーバーはさくらで、パーミッションは755で使用しています。
お時間のあるときで結構ですので、もしよろしければ何かご教授お願い致します。
>litomaさん
こんにちは。
ご質問の件ですが、症状からすると、データベースのアップグレードに失敗しているようです。
phpMyAdmin等でデータベースにアクセスできるのであれば、以下の手順を試してみてください。
1.mt_configテーブルのレコードの一覧を表示します。
2.レコードが1つだけありますので、そのレコードの内容を編集する状態にします。
3.config_dataフィールドから、以下の部分を削除して、レコードを保存します。
PluginSchemaVersion SortCatFld/SortCatFld=1.01
4.MTにログインして、データベースのアップグレードの処理を行います。
なお、上記の手順でも解決できないようだと、サーバーにログインして動作を追ってみないと原因は分からなそうです。
fujimoto様
こちらのプラグインをMT4.01に導入したのですが、
2点質問させて下さい。
MTタグで、MTFlodersやMTCategoriesの時は、
「sort_method="SortCatFld::Sort"」のアトリビュートを
追加する必要が無いと思いますが、
上記のアトリビュートの挿入如何に関わらず
こちらのプラグインは動作しませんでした。
MTの操作画面では、たしかに順番は入れ替わっているので
インストール等が間違っているとは思わないのですが、
MTFlodersやMTCategoriesのMTタグでは、
動作しないものでしょうか?
上記の問題は、MTTopLevelFlodersやMTTopLevelCategoriesにすると
アトリビュートを追加することで問題なく動作します。
もうひとつの質問ですが、
フォルダやカテゴリーの順番は
MTFolderLabel remove_html="1"によって
<10>をフォルダ名の先頭に付けることで
一応問題なく順番の入れ替えが動作しますが、
この方法はやはり問題があるのでしょうか?
以前使っていた方法ですが、MT4にも適用してよいものか
ご意見をお聞かせください。
よくこちらのサイトを参考にさせて頂いています。
どうぞ、宜しくお願いいたします。
>satoさん
こんにちは。プラグインご利用ありがとうございます。
まず、前半のご質問ですが、MTCategories/MTFoldersタグには対応していません。
MT本体のこれらのタグの内部処理を見ると、名前順で並べ替えるように固定されていて、並べ替えの順序を変えることができません。
後半の質問ですが、やり方自体には問題はないと思います。
しいて言えば、「remove_html="1"」のアトリビュートを指定し忘れることがないように注意する必要がある、というぐらいです。
fujimoto 様
早速のご回答ありがとうございます。
MT本体の内部処理がどのようになっているかまだ分からなかったので、安心しました。
それともうひとつMTのウェブページの表示順番を変更するプラグインの開発はやはり難しいのでしょうか?
今後は、私もMTなどCMSツールをより理解する努力を続けて行きたいと思います。遅ればせながら、CMSツールの可能性は今後増え続けるのではないかと考えています。
ありがとうございました。
こんにちは。いつもこちらのサイトでMTの勉強をさせていただいております。
つい先日にMT4.1をインストールし、早速カテゴリー並び替えのプラグインを利用させて頂きました。
ですが、カテゴリーの並び替えへのリンクが表示され、カテゴリーを上や下に移動する事はできるのですが、いざ保存をしようと思っても「変更を保存」のボタンがないのです^^;
導入手順にミスはないとは思うのですが、何が原因と考えられるのでしょうか…
ちなみに、4.01の時にはこのプラグインは使用しておらず、4.01から4.1にバージョンアップしてからになります。
お忙しいかと思いますが宜しくお願い致します。
>Tomさん
こんにちは。プラグインご利用ありがとうございます。
ご質問の件ですが、こちらでも問題を確認しています。
その修正も含め、若干の修正を行って、MT4.1/MTOS用を明日公開する予定ですので、それまでお待ちください。
壱さん
早速のお返事ありがとうございます。Tomです。
とりあえず、自分の問題でのエラーではない事がわかりましたので安心しました。
また、修正版を公開して下さるとの事なので楽しみにしております。
お手数をおかけ致しました。
素晴らしいブラグインです。
それで、MT4.1になり、アップロード画面からアップロード先のフォルダを選択できるようになりましたが、そのフォルダの並びへもこのソートが反映できればさらに素晴らしいかと、コメントいたしました。
お忙しいとは思いますが、どうぞよろしくお願いします。
プラグインありがとうございます。
現在MT4.1を使っているのですが、プラグインをインストールして
ブログの一覧>カテゴリーへアクセスすると下記のエラーが出てしまいます:
エラーが発生しました。
Can't call method "parent" on an undefined value at lib/MT/Category.pm line 258.
他にもプラグインの設定>設定 でカテゴリ並べ替えをクリックすると以下のエラーが:
エラーが発生しました。
Can't call method "order_number" on an undefined value at /home/public_html/mt/plugins/SortCatFld/SortCatFld.pl line 302.
何かこちらの問題なのでしょうか。。。
>Akikoさん
こんにちは。
このプラグインは、MTのカテゴリーのテーブルに並べ替え用のフィールドを追加します、その処理に失敗したのではないかと思われます。
ただ、なぜ失敗したかは、申し訳ありませんが、いただいたエラーメッセージからは判断がつきません。
原因を調べるには、そちらのサーバーにログインしてみることが必要です。