Movable Type用ファイルマネージャーの設計と実装(1)。

| コメント(0) | トラックバック(1)

CMSと静的ファイル管理に関する考察の(更に)続き。」のさらに続き。

具体的なファイルマネージャーの実装を考えてみる。前回のMT::Contentを少し修正。ファイルの属するディレクトリやファイルに対応するオブジェクトのIDを保存出来るようにした。

その上で、まずは簡単なファイルブラウザをつくってみた。

ファイルブラウザのサンプル

MT::Content(MT::Objectのサブクラス)


package MT::Content;
use strict;

use MT::Object;
@MT::Content::ISA = qw( MT::Object );
__PACKAGE__->install_properties({
columns => [
		'id', 'file', 'directory', 'content',
		'archive_type', 'object_id',
		'modified', 'size', 'blog_id',
		'digest', 'status',
		],
	indexes => {
		id => 1,
		file => 1,
		directory => 1,
		archive_type => 1,
		object_id => 1,
		modified => 1,
		blog_id => 1,
		status => 1,
	},
	datasource => 'content',
});
フィールド名タイプ説明
idinteger
(primary key,auto_incriment)
一意なID
filetextファイルのパス
directorytextファイルの置かれているディレクトリ
contenttext書き出される(べき)HTML
archive_typetextアーカイブの種類
object_idintegerアーカイブの種類がIndividualの場合entry_id, Categoryの場合category_id
modifiedinteger書き出し時刻(Unixtime)
sizeintegerファイルサイズ
blog_idintegerブログのID
digesttexttextの要約(digest)
statusintegerステータス

アップロードしたファイルの管理

MTから出力されるファイルはこれで管理できるようになる。 続いてはアップロードファイルの管理を考えてみよう。

基本はMT::Contentと同じだが、ファイルのメタ情報(画像の場合はalt、その他のキーワード)を一緒に保存して、キーワードで検索できたりページに貼付ける時にaltが自動で入ったりできるようにしたり、あるいはよく使う画像にフラグを付けて呼び出しやすくしたりすることを想定しておく。

データベースへの登録のタイミングはCMSUploadFile, あるいはCMSUploadImageコールバックが呼び出された時。altやkeywoedsはアップロード系の管理画面をカスタマイズして登録できるようにする。

アップローダー

管理用テーブルはMT::Contentとは若干構成が違うので別のものを作ることにする。

MT::UploadItem(MT::Objectのサブクラス)


package MT::UploadItem;
use strict;

use MT::Object;
@MT::UploadItem::ISA = qw( MT::Object );
__PACKAGE__->install_properties({
			columns => [
			'id', 'file', 'directory', 'alt',
			'html', 'keywords', 'type', 'image_type',
			'modified', 'size', 'blog_id',
			'width', 'height', 'bookmark',
			],
	indexes => {
		id => 1,
		file => 1,
		directory => 1,
		type => 1,
		modified => 1,
		size => 1,
		blog_id => 1,
		bookmark => 1,
	},
	datasource => 'uploaditem',
});
フィールド名タイプ説明
idinteger
(primary key,auto_incriment)
一意なID
filetextファイルのパス
directorytextファイルの置かれているディレクトリ
alttext画像の場合はalt属性, その他のファイルの場合はリンクテキストにあたる文字列
keywordstext検索, 分類用のキーワード
typetextimage, file またはthumbnailのいずれか
imagetextGIF, JPG またはPNGのいずれか
sizeintegerファイルサイズ
blog_idintegerブログのID
widthinteger(画像の場合)幅(pixel)
heightinteger(画像の場合)高さ(pixel)
bookmarkinteger(何らかの)フラグ, 例えばよく使う画像等を識別するのに使う

続いてCMSUploadFile, あるいはCMSUploadImageコールバックに対応するコードを書く...のは次回以降に。

トラックバック(1)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/363

結局のところ、MovableTypeのCMSは現状「コンテンツマネジメントシス... 続きを読む

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2007年5月 4日 04:06に書いたブログ記事です。

ひとつ前のブログ記事は「503を返すとか返さないとか言う前に。」です。

次のブログ記事は「LaunchBackgroundTasks(Movable Type)の挙動。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6