« 「ブログ」はネット空間のリアル世界でもある。 | メイン | 「書」 »

Ramdom Entry Pickup

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


[PR] 「ほったらかしアフィリエイト実践会」わずか108円であなたに代わって優秀なライターが、毎日3本の最新アフィリエイト記事を書いてくれる!

Category : [ MovableType, 自宅サーバ ]
September 10, 2006 18:58
TAG : [Customize,Image,Javascript]





前回、画像のアップロード先のフォルダを月別にする、というカスタマイズを紹介しましたが、
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





ソーシャルブックマーク

「del.icio.us」にブックマーク|このエントリーの「del.icio.us」での登録状況|はてなブックマーク|はてなブックマーク|テクノラティ・リンク検索結果|Technorati|BlogPeople Instant Bookmark|BlogPeople Tags|ドリコムRSS|ニフティクリップ|livedoorクリップ|livedoorクリップ|ECナビに登録|add-fc2.gif|FC2ブックマークでの登録状況

このエントリーと関連性が高いと思われるエントリー


このエントリーに関連するかもしれない商品


おすすめ商品


Link Information

Link HTML:

トラックバックURL:

Trackbacks

» MT3.33へUpdate! from Hitorigoto?

先の記事にて「まだまだ3.17で・・・」とか言ってたんですが、舌の根も乾かぬうちにupdateしちゃいました。。(^^;... [Read More]

» 画像のアップロード先の指定 from 14000.Rev Limit

3.3になって前回のやり方ではダメだったので Project MultiBurs... [Read More]

コメント

これ、導入しようと思うのですが・・・ひとつ変更できないのかなと思って悩んでるんです。

この設定の場合、はじめ選択しないままの
状態だとアップロード・パスの設定 は

<サイトパス> images/2006/11

こんな風になるっていうことですよね。
だとすると、各月ごとにimageファイルが作られるということに・・・。
それでも良いのですが、たとえば

<サイトパス>  /images

サイトパスの部分を初めからimagesにするということはできませんかね?
できたら、良いなと思ってるんですが・・・。

>ゆう さん


それでしたら、

/ <input name="extra_path" id="extra_path" />
<script type="text/javascript">
<!--
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/";
//-->
</script>


に修正すればいいかと思います。

(たぶん(^^;))

おぉ〜!!
showBOOさん、ありがとうございます。
早速やってみようと思います。

また、できたら記事でもアップして報告しに来ますね。(^^)

>ゆうさん

この記事へのトラックバック記事
14000.Rev Limitさんのページでもっと有効なカスタマイズがありますので、そちらも参考にされてみてはいかがでしょうか?(^^;)

3.2版のときに3.3のこれが欲しいなと思ってコメントさせていただたものです。
ずいぶん時間が経ってしまいましたが、使わせていただこうかなと思います。
ありがとうございます。

このあたりってバーションアップするたびにもとのtmplが変更されてしまうことが多かったりで、バージョンアップのたびに気がかりですね。
デフォルトの設定がせめてルート直下でなければ、我慢できるんですけどね。。。

>スターさん

たしかに毎回変更するのは面倒ですよね~

これ、Six Apartに改善してもらいたいですね(^^;)

これをプラグインとして作成したいのですが、まだプラグインの作成スキルがないもので。。。

プラグインとして作成できた際にはまた公開させて頂きます。
気長にお待ちください(^^;)

コメントする