20070208
MovableTypeでのMail::Form運用
現在 MovableType でサイトを構築している。しかし自分が使用しているサーバーには Jcode module がインストールされていない。さらにはPerlのバージョンが5,8,1未満なので、ラッパーとしても動作させられない!
だがしかし!それでも!俺はサイドバーにメールフォームを設置したいんJAAAAAAAAAAAAAAAAAAA!!!!
こんなメールを頂きました(いや、随分と脚色はしてあるけどさ。でも趣旨はこんな感じ) ぶっちゃけ「俺に言われてもなぁ…」って感じなんですが、折角なのでそんなユーザーさんの為に上記のような動作基準を満たしていない環境でも、比較的に楽にUnicode対応可能なスクリプトに改造する方法を紹介したいと思います。(ウチのMail::Formに限らず、あらゆるメール送信系のスクリプトで応用が利きます)
但しこれは『現在 MovableType を使用している環境』でのみ実行可能な裏技ですので(なぜならMTにバンドルされているモジュールを利用するんですよ)、其処のところだけはご了承ください。ついでに言えば、あくまでも『裏技』です。実施の際には全て自己責任でお願いいたします。
まずはスクリプト本体をエディターで開いてください。大概スクリプトの上の方に、"文字コードを変換する為の何か"を読み込んでいる個所があると思います。
■例1:Mail::Form v2,02j の場合
use Jcode;
■例2:大概のスクリプトなら
require './jcode.pl';
これらの行の先頭に"#"をつけましょう。。
■例1:Mail::Form v2,02j
#use Jcode;
■例2:大概のスクリプトなら
#require './jcode.pl';
こんな風に。
Perlでは#より右側はすべてコメントとして扱い、動作には全く影響を及ぼさなくなります。これをコメントアウトと言います。
こうして、まず既存の文字コード変換機能を無力化してやり、MTで使用している文字コード変換モジュールの機能を引っ張ってくる為の命令を、先ほどコメントアウトした個所の直下に追加してやります。
#use Jcode;
#MTがインストールされているディレクトリの指定
$mt_dir = '???';
push(@INC, "$mt_dir\/extlib/");
eval "use Jcode;";
青文字の個所が追加した部分です。
そして???という個所にMTがインストールされたディレクトリ(mt.cgiがあるディレクトリの事、デフォルトでは『mt』という名前)へのパスを記述します。これは相対パスでも絶対パスでも構いませんが、最後に"/"(スラッシュ)は付けないでください。
(例えばMTの "plugins" ディレクトリの中に新規にフォルダを作成し、そこに設置するならば、相対パスで "../../../mt" と記述します。)
これで一応作業は完了。ウチのMail::Form(v2以上)ならもうこれだけで動作いたします※。(この作業はmail.cgiとdecode.cgiの両方で行ってくださいね) 後は通常の設置手順にしたがってcgiを設置してください。
そしてテンプレートのお好きな個所に直接フォームを書きこめばミッションコンプリートですよ。
■フォーム記述例
<div id="mailform">
<h2>メールフォーム</h2>
<form method="post" action="decode.cgiへのパス">
<p>
お名前<br />
<input type="text" name="name" /><br />
メールアドレス<br />
<input type="text" name="from" /><br />
タイトル<br />
<input type="text" name="subject" /><br />
メッセージ<br />
<textarea name="comment" rows="4"></textarea><br />
<input type="submit" value="送る" />
</p>
</form>
</div>
<!--※注意!:decode.cgiへのパスは必ず絶対パス(もしくはURL)で記述して下さい。
相対パスでは不都合が起きます。-->
あとは自由にスタイルシートでデザインを指定してあげてくださいね。
※他のスクリプトの場合
ウチのスクリプトではない場合、もうちょっと手を入れてやらねば残念ながら動作いたしません。スクリプト全体を検索して "jcode::" もしくは "jcode'" となっている箇所を 全て"Jcode::"に置換してください。これで多分動くハズです。…多分。
トラックバック
このエントリーのトラックバックURL:
http://magokorokikaku.com/mt/mt-tb.cgi/45
» メール送信スクリプト変更 from いるすか
な~んも考えないでMovable Typeに切り替えたために,デフォルトの文字コ... [続きを読む]
トラックバック時刻: 2007年07月20日 10:58