UploadDirプラグイン

はじめに

UploadDirプラグインはMovable Typeでファイルのアップロード時に、ファイルの拡張子によってアップロード先のディレクトリを自動的に切り替えるプラグインです。
Movable Type 3.x以上で動作します。

インストール

本パッケージに含まれる「plugins」ディレクトリ内のディレクトリ「UploadDir」を、Movable Typeインストールディレクトリの「plugins」ディレクトリの下にコピーしてください。
作業後、Movable Typeのシステム・メニューのプラグイン管理画面を表示し、プラグインの一覧に「UploadDir」が表示されていることを確認してください。これで設置完了です。

使い方

テンプレートの修正を行う必要はありません。
インストール後、「アイテムのアップロード」を実行すると、ファイルを指定したときに、アップロード先のディレクトリがファイルの拡張子に応じて自動的に切り替わります。
Movable Type 6.2以降のマルチアップロードでは、「拡張子に応じて決定」をチェックしてからファイルを指定することで、ファイルの拡張子に応じたディレクトリへのアップロードが開始されます。

標準では、次のように設定されています。

拡張子 ディレクトリ
mp3、wma、m4a、midi、wav、aiff audio
mp4、m4v、mpeg、avi、mov、wmv videos
bmp、jpg、jpeg、gif、tif、tiff、png images
txt text
pdf、doc、xls、ppt docs
pl、c、cc、pas、rb src
bz2、cab、gz、jar、lzh、rar、tar、taz、zip archive

出力先のディレクトリの変更、拡張子の追加を行いたい場合は、各ブログの「設定」→「プラグイン」タブ内のUploadDirプラグインの設定画面で設定を編集します。
標準設定は、次のようになっています。

audio:mp3,wma,m4a,midi,wav,aiff
videos:mp4,m4v,mpeg,avi,mov,wmv
images:bmp,jpg,jpeg,gif,tif,tiff,png
text:txt
docs:pdf,doc,xls,ppt
src:pl,c,cc,pas,rb
archive:bz2,cab,gz,jar,lzh,rar,tar,taz,zip

1行につきひとつのディレクトリ設定となっています。行ごとの書式は次のようになっています。

[出力ディレクトリ]:[拡張子],[拡張子],[拡張子],[拡張子],[拡張子],[拡張子]

この時拡張子には「.(ピリオド)」を含まないようにしてください。
この設定は、複数行えます。新たなディレクトリを追加する場合は、行を追加してください。

テンプレートタグの使用

UploadDirプラグインの設定にはテンプレートタグを使用することができます。テンプレートタグを使用した設定は、ビルドした結果が設定の書式になっている必要があります。
例えば次のような記述が可能です。

<$mt:Date format="%Y"$>/images:bmp,jpg,jpeg,gif,tif,tiff,png
<$mt:AuthorBasename$>/docs:pdf,doc,xls,ppt

ビルドに失敗した場合、アップロード画面の表示自体に影響を与えますので、テンプレートタグを用いる場合には、慎重に動作確認を行うことをおすすめします。

MT7.0以降で使用できるテーマ「Jungfrau」を例にすると、次のような設定の記述が可能です(v0.76リリース時点)

<mt:If tag="ContentTypeName" eq="イベント・セミナー">
  <mt:If name="content_field_name" eq="本文">
    event/text/docs:pdf,doc,xls,ppt
    event/text/images:jpeg,jpg,png,gif
  <mt:ElseIf eq="参加費">
    event/entry/docs:pdf,doc,xls,ppt
    event/entry/images:jpeg,jpg,png,gif
  <mt:ElseIf eq="プログラム">
    event/program/docs:pdf,doc,xls,ppt
    event/program/images:jpeg,jpg,png,gif
  <mt:ElseIf eq="og:image">
    event/ogp/images:jpeg,jpg,png,gif
  <mt:ElseIf eq="メイン画像">
    event/main/images:jpeg,jpg,png,gif
  <mt:Else>
    event/docs:pdf,doc,xls,ppt
    event/images:jpeg,jpg,png,gif
  </mt:If>
<mt:ElseIf eq="ニュース">
  news/docs:pdf,doc,xls,ppt
  news/images:jpeg,jpg,png,gif
<mt:ElseIf eq="プレスリリース">
  press/docs:pdf,doc,xls,ppt
  press/images:jpeg,jpg,png,gif
<mt:ElseIf eq="講師">
  teacher/docs:pdf,doc,xls,ppt
  teacher/images:jpeg,jpg,png,gif
<mt:ElseIf name="customfield_basename">
  <mt:CustomFieldBasename />/docs:pdf,doc,xls,ppt
  <mt:CustomFieldBasename />/images:jpeg,jpg,png,gif
<mt:Else>
  docs:pdf,doc,xls,ppt
  images:jpeg,jpg,png,gif
</mt:If>

テンプレート変数「content_field_name」にコンテンツフィールド名が格納されている場合はコンテンツフィールドでのアップロード、テンプレート変数「customfield_basename」にカスタムフィールドのベースネームが格納されている場合はカスタムフィールドでのアップロードとして処理分けが可能です。
これはv0.76時点での Movable Type 管理画面の動作による処理分け方法となります。今後 Movable Type のアップデートに伴い変更される可能性がありますので、アップデートの際はお気をつけください。

更新履歴

このプラグインの使用、及び著作権や保証について

Movable Type のユーザーは目的を問わず、お使いのMovable Typeに本プラグインを無償でインストールし使用することができます。
このプラグインの著作権はM-Logic, Inc.が所有しています。著作権者の許可なく本プラグインを改変、再配布することはできません。
またM-Logic, Inc.は本プラグインの使用に関する一切の保証とサポートを行いません。

連絡先

作者:M-Logic, Inc.