画像のアップロード先のデフォルトを変更する(MT3.3)

  • 投稿日:
  • by

前回、画像のアップロード先のフォルダを月別にする、というカスタマイズを紹介しましたが、
MT3.3になってから、アップロード画面が大幅に変更になりました。


オプションを選択することにより、アップロード先を変更できるようになりました。

↓こんな感じ。
deforutohakonnnakannzi.gif

しかし、このオプションを選択し忘れると、
ブログのルートフォルダに大量に画像が溜まってしまいます

そこで、デフォルトを「日付で区切ったフォルダ」に変更しました。

また、オプション選択時も条件によって、アップロード先を変更できるようにしました。


以下のようにファイルを修正してください。

(MTPath)/tmpl/cms/upload.tmpl」を編集します。


ファイル先頭のJavascriptを編集します。

編集前

<TMPL_INCLUDE NAME="header-popup.tmpl">

<script type="text/javascript">
<!--
function setExtraPath(sel) {
var opt = sel.options[sel.selectedIndex];
var path = opt.getAttribute("middle_path");
if (!path) path = '';
var middle = sel.form['middle_path'];
if (middle) middle.value = path;
}
//-->
</script>

編集後

<TMPL_INCLUDE NAME="header-popup.tmpl">

<script type="text/javascript">
<!--
var today = new Date();
var num_year = today.getYear();
var str_year = String((num_year < 2000) ? num_year + 1900 : num_year);
var num_month = today.getMonth() + 1;
var str_month = (num_month < 10) ? "0" + num_month : String(num_month);

function setExtraPath(sel) {
var opt = sel.options[sel.selectedIndex];
var path = opt.getAttribute("middle_path");
if (!path) path = '';
var middle = sel.form['middle_path'];
if (middle) middle.value = path;

if (path) {
document.forms[0].extra_path.value = "images/";
} else {
document.forms[0].extra_path.value = "images/" + str_year + "/" + str_month;
}
}
//-->
</script>


そして、オプションでパスを入れる入力フィールドの部分の直後の部分も修正を加えます。

/ <input name="extra_path" id="extra_path" />

<script type="text/javascript">
<!--
document.forms[0].extra_path.value = "images/" + str_year + "/" + str_month;
//-->
</script>

これでオプションでアップロード先を選択し忘れても、
日付で分けられたフォルダが作成され、そこにアップロードされます。


ちなみに、オプションを開いたらどうなっているのかというと、
オプションを開いただけでは、通常、「サイトパス」が選択されていますが、
プルダウンの横の入力フィールドに
今月の日付フォルダが自動入力されているのがわかるかと思います。

1.gif


次に、オプションでMTの標準で日付指定されたものを選ぶと、
下記のように「images」フォルダだけを作成するようにしています。

2.gif