Movable Typeはバージョン6.2から、アイテム管理機能が強化されました。
画像のアップロードパスを指定できるだけでなく、アップロード時の都度変更の可否を選ぶこともできます。

しかし、バージョン6.2時点では、選択できるパスは「任意名」か「年月日」のどちらかとなっています。
任意名のみでは、ほぼ毎日更新するブログなどではフォルダ名内のアイテム数が多くなりすぎます。かといって年月日ではアーカイブファイルと混在してしまいます。

筆者は他のブログでも採用されている「upload/YYYY/mm/」形式が最も管理しやすいと考えています。この形式をMovable Typeでも実装する方法をご紹介します。

アップロードの設定をする



まず、ブログの「設定 > 全般」でアップロードパスを「ブログパス+upload/」に設定してください。

「アップロード時に変更を許可する」の設定は外す(禁止する)のが望ましいですが、任意で選択してください。

管理画面のテンプレートを複製する

FTPソフト等で以下のディレクトリへ移動してください。

Movable Typeをインストールしたディレクトリ/tmpl/cms/include

このディレクトリ内にある「async_asset_upload.tmpl」を複製し、以下のディレクトリに設置してください。
(移動ではなく、複製なので注意してください)

Movable Typeをインストールしたディレクトリ/alt-tmpl/cms/include

テンプレートのアップロードパスを編集する

複製した「async_asset_upload.tmpl」をテキストエディタ等で開き、118行目あたりにある、以下の記述を探してください。

      <mt:if name="destination_loop">
        <select name="destination" id="destination">
        <mt:loop name="destination_loop">
          <option value="<mt:var name="path" escape="html">"<mt:if name="selected"> selected="selected"</mtif>><mt:var name="label" escape="html"></option>
        </mt:loop>
        </select> / <input type="text" name="extra_path" id="extra_path" class="text path" value="<mt:var name="extra_path" escape="html">" />
      </mt:if>

この中の、以下のコードに

value="<mt:var name="extra_path" escape="html">"

以下の通りmt:Dateタグで「現在の年/現在の月/」を追加してください。

value="<mt:var name="extra_path" escape="html"><mt:Date language="en" format="%Y/%m/" />"

続いて、もう少し下にスクロールし、以下の記述を探してください。

    <div id="site_path-field" class="field field-top-label">
      <div class="field-content">
        <mt:var name="upload_destination_label">/<mt:var name="extra_path">
        <input type="hidden" id="destination" name="destination" value="<mt:var name="upload_destination_value" escape="html">" />
        <input type="hidden" id="extra_path" name="extra_path" value="<mt:var name="extra_path" escape="html">" />
      </div>
    </div>

この中の「value="<mt:var name="extra_path" escape="html">"」も、同じように年月が入るように修正し、上書き保存してください。

変更後、アップロード画面へ移動すると、アップロードパスに「upload/YYYY/mm/」が指定されるようになります。
変更を許可している場合はフォームの入力内容となっているので、書き換えることも可能です。

解説

Movable Typeの管理画面用テンプレートは「tmpl」以下に格納されていますが、「alt-tmpl」以下の同じパスにファイルがある場合は、そちらを参照するようになります(WordPressの子テーマと同じ考え方です)。
この機能を利用すると、元のテンプレートに影響を与えずに管理画面をカスタマイズすることが可能です。

なお、jQueryの知識がある場合は、MTAppjQueryでも同様のカスタマイズを行うことが可能です。この場合、テンプレート書き換えの方が早いですが、数ヶ月後、数年後のアップグレード時に代替テンプレートを移動するのを忘れて元に戻ってしまう事故が起きやすいです。それが心配な場合は、MTAppjQueryでも良いでしょう。

http://bit-part.net/products/mtappjquery/