MovableType のコメント欄で、読者からのコメントを受付ける際に、コメントと一緒に画像ファイルなどの添付ファイルを受付けるための改造を紹介しています。元ネタは mixi のMovableType コミュニティでのトピックでした。現時点では、アップロードされたファイルへの URL とファイルサイズを取得するプラグインが実装されています。
- MTCommentFileUpload
- アップロードされたファイルにアクセスする MTUpfile* タグを使うためのコンテナタグ。
- MTUpfileLink
- アップロードされたファイルの絶対 URL を返します。MTCommentFileUpload タグの内部で使えます。
- MTUpfileSize
- アップロードされたファイルのファイルサイズをバイト単位で返します。MTCommentFileUpload タグの内部で使えます。
導入方法
Step 1. プラグインのインストール
ダウンロードしたアーカイブに含まれる MTCommentFileUpload.pl を適当なエディタで開き、
以下の行をあなたの環境に合わせて修正します。
アップロードされたファイルはここで指定されたパスに保存されます。
最終的なパスはローカルサイトパス+szUpfilePath で指定されたパスとなります。
次に、MTCommentFileUpload.pl をMovableType のプラグインフォルダにコピーします。
MovableType のメインメニューに追加したプラグイン名が表示されていることを確認します。
Step 2. コメント投稿フォームの修正
コメント投稿フォームにアップロードファイル用フィールドを追加します。
Step 3. /MT/lib/MT/App/Comments.pm の修正
/MT/lib/MT/App/Comments.pm にアップロードされたファイルを保存する処理を追加します。
以下を参考にして Comments.pm で定義されている post 関数を修正します。
表示しているコードは MoavableType 3.151-ja のものです。
同時にアップファイルに関する制限を設定することができます。
- nMaxUploadSize
- アップファイルの上限サイズをバイト数単位で指定します。
ここで指定されたサイズを超えてアップロードを行おうとするとエラーとなります。
- arAllowFileExt
- アップファイルの拡張子を網羅します。
ここで指定された以外のファイルをアップロードしようとするとエラーとなります。
- szUploadFilePath
- アップファイルの保存先パスを指定します。
ファイルはローカルサイトパス+szUploadFilePath で指定されたパスに保存されます。
Step 4. 個別アーカイブテンプレートの修正
個別アーカイブの
テンプレートを修正し、
コメント欄に添付されたファイルを表示できるようタグを追加します。
楽屋裏
アイディアは以前からあったのですが、なかなか実装に着手できませんでした。
とりあえず、最低限の機能は実現できましたが、まだまだ改善の余地はありそうです。
画像ファイルがアップされた場合にのみ、画像の縦横サイズを取得できるタグや、
縮小画像(サムネール)を自動生成してくれる機能なんかあれば便利かもしれません。
寄せられたコメント (全 13 件中、最新 5 件まで表示しています)
ぴろりさん、はじめまして!
以前からあこがれていたMTでブログを楽しもうと現在準備中です。
友人と楽しく意見交換などできたらと思い、何か良いプラグインはないものかと
いろいろ探していましたら、こちらのプラグインを発見!
さっそく使わせていただこうと思ったのですが、私も
if (MT->run_callbacks('CommentFilter', $app, $comment))以下の
挿入がわからず…(TT▽TT)ダァー(3.35を使用)
バージョンアップ楽しみにしています!
PS こちらのプラグインを使用されているサイトさんを見てみたいのですが、
よろしかったら教えていただけないでしょうか?
初めまして。
MT3.34で導入させて頂きました。
ありがとうございます。
動作は問題ないのですが、コメント投稿画面で設定したパスを
プレビュー画面で表示できずに困っています。
申し訳ありませんが、値を取得する方法がありましたら教えて頂けますか?
いつも参考にさせてもらっています
私もMT3.3対応切望しております
対応版楽しみにまっています
お返事ありがとうございます。
バージョンアップしましたら、是非利用させてもらいます!
できましたら、そのときにでもご一報を!
よろしくお願いいたします。
こんにちは。
記事がアップデートされておらず申し訳ありません。
今ならMTシステムを直接書き換えるよりもプラグイン一本で導入できる方が確実便利ですね…
時間をみてバージョンアップしたいと思います。すみません。