画像もMODxで管理


MODxではドキュメントと言う形でhtmlやcssを管理できるんだけど、ここで画像も一緒に管理してみようと言うテスト。
(もうどこかの誰かが実際にやってるとは思うんだけど…)

まずは管理画面の「ツール」→「MODxの設定」にてカスタムコンテントタイプを追加する。画像なので「image/png」や「image/jpeg」を適当に追加して保存。

画像はバイナリだとドキュメントとして保存できないので、BASE64エンコーディングしてテキスト化する。そのテキスト化したものをドキュメントとしてMODxに登録。
その際、テンプレートは「(blank)」を選び、コンテンツタイプは画像に合わせ「image/png」等を指定する。

で、このBASE64エンコーディングを行ったドキュメントをそのまま表示しても画像は表示されないので、どこかでデコードする必要がある。それをプラグインで実現。
適当な名前でプラグインを作成し、システムイベントでは「OnWebPagePrerender」をチェック。内容は以下を記述。

if(! (strpos($modx->contentTypes[$modx->documentIdentifier],'image') === false) ){ $modx->documentOutput=base64_decode($modx->documentOutput); }

これで表示するドキュメントのコンテンツタイプが画像だった場合に、デコードしてくれる。

というわけで実際にMODxにドキュメントとして保存されている画像がこれです。

MODxのロゴ

ちなみにドキュメントでは次のようにテキストとなって登録されています。

iVBORw0KGgoAAAANSUhEUgAAAHYAAABKC …略… H0RU5/HfkPyRdlHcHXYAAAAASUVORK5CYII=

利点と欠点かはこんな感じかな。
登録が面倒なのは画像を自動的にBASE64エンコーディングして登録してくれるモジュールとかが用意できればカバーできるかな(誰か作らないかな…)。
会員専用のページで画像も他の人に見せたくないってサイトを作る人にはお勧めかもしれない。
あと、画像のURLがhtmlになってしまうけど、いやならばapacheやlighttpdならばmod_rewriteでなんとかなるでしょう。


あ、それとMODx用のtrackbackセットを微妙に更新しました。主な変更として指定した日数を過ぎるとトラックバックを受け付けなくなる仕組みを実装。
うちのサイトではとりあえず公開して60日を過ぎた日記に関してはトラックバックを受け付けないように設定してみた。今のところ動いてるっぽいのかな。
作成日:2007/05/21 00:35:23
トラックバック  ※トラックバックは承認後に表示されます。
TrackbackURL:このページのトラックバックの受付は終了しています。

トラックバックはありません。
コメント
名前:

タイトル:

コメント: