改行の変更

さっきからこの記事書いてる時に、
タグ表示用のテキストエリアにどうしても<br />タグが表示されちゃうので、
どーしたもんかなーと。
あと、<blockquote>タグの時に改行がうまく行かないのもどうしたもんかなーと。
で、当然検索かけました。
今回のキーワードは
MovableType テキストエリア 改行
です。
ほいでもって出てきた中で今回参考にさせていただいたのがこの2箇所。
OreBlog: MTのテキストフォーマット(Convert Line Brakes)
無言さんのつぶやき:Blockquoteタグに改行を入れる方法
MTのソースファイルを改変するので、元ファイルの保存必須です。
ちなみに改変するのは2つ。


1個目:lib/MT/Util.pm
この中の260行目あたりに、sub html_text_transformていう箇所があるので、
そこの

if ($p !~ m@^(?:h1|h2|h3|h4|h5|h6|table|ol|dl|ul|menu|dir|p|pre|center|form|fieldset|select|blockquote|address|div|hr)@) {

上記太字の部分を以下の通り変更。

if ($p !~ m@^(?:textarea|h1|h2|h3|h4|h5|h6|table|ol|dl|ul|menu|dir|p|pre|center|form|fieldset|select|address|div|hr)@) {

2個目:php/lib/MTUtil.php
この中の510行目あたりにfunction html_text_transformっていう箇所があって、
これも1個目と同じように

if (!preg_match(‘/^<\/?(?:h1|h2|h3|h4|h5|h6|table|ol|ul|menu|dir|p|pre|center|form|select|fieldset|blockquote|address|div|hr)/’, $p)) {

上記太字の部分を以下の通り変更。

if (!preg_match(‘/^<\/?(?:textarea|h1|h2|h3|h4|h5|h6|table|ol|ul|menu|dir|p|pre|center|form|select|fieldset|address|div|hr)/’, $p)) {

<blockquote>の方は本当はちゃんと分岐を作ってあげないといけないらしいんだけど、
このソースの感じだと削るだけでもOKぽかったので、とりあえず削ってみました(^^;)
ま、今んとこ問題ないからセーフかな(^^;)