ファイルのアップロードを少し便利に
このエントリで書かれている内容は、今となっては時代遅れで陳腐な廃れた内容です。真に受けず、十分にご注意ください。
Movable Type の「ファイルのアップロード」を使ったアップロード作業を少し便利にする。
まず、自動的に日付のディレクトリを作成してファイルをアップロードする方法。その概要は Gina Trapani 氏による "Set MovableType upload directory" にまとめられている通り。どこ経由でこの情報を得たのかは失念してしまった。前提条件として Firefox を利用することと、Greasemonkey という Firefox の拡張をインストールする必要がある。Greasemonkey でインストールする User Script は自分好みにカスタマイズした†1。また Greasemonkey にデフォルトでプリインストールされている 2 つのデモンストレーションのような User Script は削除した(方が良いと思う)。ちなみに Greasemonkey に User Script をインストールする際は、一度スクリプトをローカルに保存してからインストールした方が良さそうである。
// ==UserScript==
// @name Set MT Upload Dir
// @namespace http://blog.drry.jp/2005/02/21
// @description Set directory of file upload for Movable Type
// ==/UserScript==
(function() {
var today = new Date();
var d = today.getDate();
if(d < 10) d = '0' + d;
var m = today.getMonth() + 1;
if(m < 10) m = '0' + m;
var y = today.getYear() + 1900;
var pathArchive = 'images/' + y + m + d + '/';
var pathSite = y + '/' + m + '/' + d + '/';
document.forms[0].extra_path_archive.value = pathArchive;
document.forms[0].extra_path_site.value = pathSite;
})();
これまでは以下のように (~MTDir)tmpl/cms/upload.tmpl で value 属性を追記してアップロード先の path を指定する方法を利用していたが、今回の方法は JavaScript によって日付を 動的に指定できるのでより優れている。
<input name="extra_path_archive" value="images/" /><br />
このような処理には Greasemonkey よりも代替アプリケーションテンプレートをカスタマイズする方法がより適当でした。
次に、アップロードの際に自動生成してくれる HTML を自分好みに修正する。(~MTDir)lib/MT/App/CMS.pm の sub _process_post_upload 内、1950 行目付近を次のようにする。
} elsif ($q->param('include')) {
(my $fname = $url) =~ s!^.*/!!;
$url =~ s|^http://blog\.drry\.jp(.*)|$1|; # ファイルの path を処理(好みの問題)
if ($thumb) {
$thumb =~ s|^http://blog\.drry\.jp(.*)|$1|; # サムネイルの path を処理(好みの問題)
# アンカー要素に type 属性など好みの属性を追加
return <<HTML;
<a href="$url" title="サイズの大きな画像" type="image/jpeg"><img alt="" src="$thumb" width="$thumb_width" height="$thumb_height" /></a>
HTML
} else {
return <<HTML;
<img alt="" src="$url" width="$width" height="$height" />
HTML
}
} elsif ($q->param('link')) {
return <<HTML;
<a href="$url" type="/">Download file</a>
HTML
}
title 属性に「サイズの大きな画像」などとマルチバイトを直接記述してしまったので、UTF-8 で保存するようにする。そうでないと、MT が CMS.pm でエラーとなる。
このエントリで書かれている内容は、今となっては時代遅れで陳腐な廃れた内容です。真に受けず、十分にご注意ください。
- †1
- set-mt-upload-dir.user.js
- タグ
- extensions
- Firefox
- Movable Type
- obsolete
- 公開日時
- 2005-02-21T22:51:29+09:00 @619
- 更新日時
- 2005-06-11T07:12:41+09:00 @967
- Permalink URI & TrackBack URL
- http://blog.drry.jp/2005/02/21/2251
TrackBack ( 1 )
- Movable Type 3.17-ja and custmized interface with application templates from drry+@->Weblog
- 2005-06-11T06:42:35+09:00 @619
- Movable Type 3.17-ja がリリースされました。ついでにテンプレートをカスタマイズしてみました。
コメント