Movable Type 5.1RC4でsort_methodモディファイアが使えない

先日もお伝えしたように、カテゴリとフォルダの並べ替えプラグイン(SortCatFld)を、Movable Type 5.1の標準機能に移行するプラグインを提供する予定です。
プラグインは出来上がりましたが、そのテストをしていた時に、Movable Type 5.1RC4で「sort_methodモディファイアが使えない」という不具合を見つけました。

この不具合への対応が確定したら、SortCatFld移行プラグインを公開したいと思います。
SortCatFldプラグインをご利用の方は、Movable Type 5.1へアップグレードする前に、この記事をお読みくださいますようお願いします。

1.Movable Type 5.1RC4の不具合

MTTopLevelCategoriesなどのカテゴリ/フォルダ一覧を出力するテンプレートタグでは、「sort_method」というモディファイアを指定することで、並び順を入れ替えるプログラムを起動することができます。
ところが、Movable Type 5.1RC4でsort_methodモディファイアを使うと、sort_byモディファイアを指定していないにも関わらず、再構築の際に以下のようなエラーが発生します(「○○○」にはテンプレート名が入り、「□□□」には「TopLevelCategories」などが入ります)。

テンプレート「○○○」の再構築中にエラーが発生しました: <mt□□□>タグでエラーがありました: sort_byとsort_methodは同時に利用できません。

なお、昨日(5月23日)に、この不具合をFogBugzで報告しました。

2.不具合による影響

SortCatFldプラグインでは、カテゴリ/フォルダの並べ替えを行うために、以下のどちらかの方法で、テンプレートを書き換えていただくようにしています。

  • MTTopLevelCategories等のテンプレートタグに「sort_method="SortCatFld::Sort"」というモディファイアを付加する
  • MTTopLevelCategories等のテンプレートタグを、MTSortedTopLevelCategories等に書き換える(Movable Type 5.0x用のSortCatFldプラグインのバージョン1.10以降)

SortCatFld移行用プラグインでは、SortCatFldプラグイン用に書き換えたテンプレートのままで、Movable Type 5.1の標準機能によるカテゴリ/フォルダの並べ替えを行えるようにしたいと考えています。
ただ、1.で挙げたように、sort_methodモディファイアを使っていると、再構築の際にエラーが発生します。
そのため、sort_methodモディファイアを使っている場合は、現状のままだとテンプレートの書き換えが必要になります。

3.アップグレード時の注意点

Movable Type 5.1のwikiページによると、Movable Type 5.1正式版は、明日(5月25日)にリリースされる予定です。
時間がないため、今回見つかった不具合は、制限事項として次のマイナーバージョンアップまで持越しになりそうですが、まだはっきりとはしていません。

不具合が修正されるかどうかで、Movable Type 5.1にアップグレードする際の手順に、以下のように差が出ます。

3-1.不具合が修正されない場合

不具合が修正されないままでMovable Type 5.1がリリースされた場合は、2.で挙げたように、再構築の際にsort_methodモディファイアがエラーになります。
したがって、sort_methodモディファイアで並べ替えを行っている場合には、テンプレートの書き換えが必要になります。
Movable Type 5.1にアップグレードする際の大まかな手順は、以下のようになります。

  • Movable Typeを5.1にアップグレード
  • SortCatFldプラグインを削除
  • SortCatFld移行用プラグインをインストール
  • カテゴリ/フォルダの並び順のデータを変換
  • テンプレート内の「sort_method="SortCatFld:Sort"」のモディファイアを削除

なお、sort_methodモディファイアを使わずに、MTSortedXXXタグに書き換えてカテゴリ/フォルダの一覧を出力するようにしていただいている場合は、テンプレートの書き換えは不要です。
SortCatFld移行用プラグインを使うことで、従来のテンプレートのままで、Movable Type 5.1の並べ替え機能で指定した通りにカテゴリ/フォルダの一覧を出力することができます。
この場合の大まかなアップグレード手順は、以下のようになります。

  • Movable Typeを5.1にアップグレード
  • SortCatFldプラグインを削除
  • SortCatFld移行用プラグインをインストール
  • カテゴリ/フォルダの並び順のデータを変換

3-2.不具合が修正された場合

不具合が修正されてからMovable Type 5.1がリリースされた場合は、sort_methodモディファイア/MTSortedXXXタグのどちらの方法でも、テンプレートを書き換えることなく、アップグレードを行うことができます。
この場合の大まかなアップグレード手順は、以下のようになります。

  • Movable Typeを5.1にアップグレード
  • SortCatFldプラグインを削除
  • SortCatFld移行用プラグインをインストール
  • カテゴリ/フォルダの並び順のデータを変換