Version1.3βを仮公開します。
・MT4i Version1.3β(正式版を公開したのでリンクを外します)
「MySQL環境でも動くかもしれない」バージョンです。MySQL環境でMovableTypeを運用している方、是非ともテストをお願い致します。結果はこのエントリーにコメントとして投稿するか、管理人に直接メールくださっても結構です。例によって御礼は何もできませんが……。
設置方法
・一行目のPerlのパスを環境に合わせて変更
・「設定開始」から「設定終了」の間の「必須」項目を環境に合わせて変更。たったの二つ。
・サーバーの任意の場所にアップした後、パーミッションを「705」に変更。
以上です。なにとぞ、よろしくお願い致します。
Yossy
negitaku.orgのYossyです。
フォーラムで連絡頂きありがとうございました。
MySQLサーバー版を導入してみました。
結果としては以下のようになりました。
http://www.din.or.jp/~yhisa/negi/mt4i.jpg
タイトルは読み込まれていますが、記事が読み込まれませんでした。
あとは、読み込み数が違うかもしれません。
いまのエントリー数は973件でした。
以上報告です。
Yossy
negitaku@negitaku.org
http://www.negitaku.org/
Yossy
10件×98で980件なのであってますね。すいませんでした。
太鉄
テスト&ご報告ありがとうございます。
一番心配だったDBへの接続は、問題なく動作しているようですね。
良かった。
タイトルも表示しているし、件数表示(そうですね、一覧画面ではページ数の表示になります)もちゃんと動いていて、問題なのは肝心の一覧部分ですか。
ここだけPostgreSQLとMySQLで発行するSQL文を変更しているんですよね。
その辺が上手く動いてないのか・・・・・・。
申し訳ないですが、検索結果が0件の時にエラーとしてSQL文を表示するβ2を作りました。
http://www.hazama.nu/t2o2/archives/mt4i/mt4i13b2.lzh
申し訳ないですが、これを動かしてみて再度結果をご報告いただけませんでしょうか。
宜しくお願いいたします。
Yossy
コンバンワ。
新しくアップされていたのを試してみました。
http://www.din.or.jp/~yhisa/negi/mt4i-2.jpg
結果は検索結果が0件に…
太鉄
あ、もしかしたら"to_char"が使えないのかも・・・・・・(今頃気付くなよ)
太鉄
再度試していただき、ありがとうございました。
MySQLではどうやら"to_char"が使用できず、代わりに"date_format"というのを使うと良いようです。
というわけで、該当個所を修正したβ3です。
http://www.hazama.nu/t2o2/archives/mt4i/mt4i13b3.lzh
お手透きの時にお試し下さい。
31日は一日外出してますので、夜まで反応できないかもしれません。
ごめんなさい。
Yossy
おはようございます。完全動作しました!
http://www.din.or.jp/~yhisa/negi/mt4i-3.jpg
太鉄さんサイコウです。動作テストを友人にしてもらったのですが、すごく評判いいです。
この記事へのトラックバックをはじめて使ってみました。うまくいってるかな?
管理人
お返事遅れました。
テストへのご協力ありがとうございます。
無理やりご協力頂いたような形になって、申し訳ございませんでした。
本当に助かりました。
ちゃんと動いたみたいですね。
良かった。
では後ほど、これをver1.3、MySQL対応版として正式リリースしたいと思います。
sakai
こんにちわ。はじめまして。
すてきなスクリプトありがとうございます。
使用環境がmySQLだったのでデバッグに協力してみます。おおむね動作していますが、
1、たまに文字化けがおきています。(なんでだろ)
2、インクルード画像の処理のところで若干問題がありそうです。タグが変になっています。
デバッグに丁度いい規模のサイトだと思うので見てみてください。
http://www.mondenesia.net/cgi-bin/mt4i.cgi?id=2
使用環境はMT+MySQL+UTF8+mt4i13b3です。
こちら側だけの問題っぽかったら無視してください。
太鉄
デバッグへのご協力ありがとうございます。
文字化け及び画像タグの変換ミス確認しました。
こりゃ、ver1.3の公開は先延ばしですね。
画像タグの変換ミスは何とかなりそうな気がしますが、
文字化けはちょっと、原因が想像できないです。
修正には少し時間がかかりそうです。
管理人
画像タグ変換のバグを修正しました。
β4です。
http://www.hazama.nu/t2o2/archives/mt4i/mt4i13b4.lzh
変換時の正規表現を記述ミスしてました。
文字化けについてはこれから考えます。
sakai
おつかれさまです。
さっそくB4いれてみました。
画像のところ。完璧です。拍手です。
文字化けは素人ながら考えてみて、半角カナにまつわるトラブルっぽいと思って半角化しないオプションz2hをnoにしてみましたが、半角化されてしまいました。ここらへんに何かヒントがあったりしませんでしょうか?
管理人
ありがとうございます。
仰るとおり、おそらく半角カナにまつわるトラブルと思って間違いないと思いますが、z2hをnoにしても半角化されてしまうのは、まったくの僕のチョンボです。
具体的には、文字列の比較に"=="を使ってました。
アホです。
"eq"に直しました。
で、もしかしたら、と思うところを修正してみました。
β5です。
http://www.hazama.nu/t2o2/archives/mt4i/mt4i13b5.lzh
具体的には、mt.cfgのPublishCharsetの値を拾って変換元の文字コードを判定しているんですが、そこの判定にて大文字小文字を考慮してませんでした。
よって、if文を全てスルーして変換元をEUCとして全ての処理が走ってるんだと思います。
で、すべて小文字に変換したから比較するように修正しました。
これが原因だと良いんですけど。
いやたぶんきっとそうに違いない。
sakai
こんにちわ。
新しいバージョンにして、z2hをnoにしたら。。見事に全部化けました。ちなみにyesの場合は前回と全く同じでした。
ゴールはちかい!遠くなったっすか?
太鉄
sakaiさんとこ覗いて唖然としました。
悪化してる・・・・・・。
で、ソース見直して、またもやとんでもないミスを発見しました。
文字列比較の否定に"!="を使ってるし。
"ne"だってば。
これにより、UTF-8→EUC-JPの変換が"まったく"行われていませんでした。
以前まで変換できているように見えたのは、jcode.plの全角→半角変換関数z2h_eucを一応通過していたためと思われます。
というわけで、β6です。
http://www.hazama.nu/t2o2/archives/mt4i/mt4i13b6.lzh
今度こそ。
sakai
ごくろうさまです。なんか僕も意地になってきました(笑)。B6にしてみました。とりあえず全半変換NOでうまくいっていますよ。YESだと以前と同じ。うまくいっているかのようでたまに文字化けですね。このへんで公開してもいいんじゃないでしょうか。
太鉄
今調べてて気が付きました。
jcode.plはUnicode(UTF-8)に対応していません。
というわけで、UTF-8環境でMT4iを使用する場合、Jcode.pmが必須、ということになりそうです。
半角カナNOでうまく行ってるのは、「たまたま」だと思います。
せっかくご協力頂いたのに、こんな結末で申し訳ございません。
sakai
細かい対応ありがとうございました。うちのサーバーがjcode.pmありだったのでうまくいっていただけってことですね。(ですか?ですよね。)僕は全角仕様で問題ないのでしばらくこのまま活用させていただきます。また出番がありそうだったら手伝いますね。これからもがんばってください。
太鉄
あれ、いや、sakaiさんとこのサーバーはたぶんJcode.pmがインストールされてませんよね?
jcode.plで動かされてると思ってたんですが、違います?
Jcode.pmがインストールされているならば、半角カナONでも文字化けしないはずなんです(たぶん)。
半角カナOFFで文字化けしないのは、「たまたま」していないだけで、実はUTF-8のまま表示されていると推測されます。
自分の中の推測をすべて解説しようと思いましたが、長くなるので割愛します。
試しにこちらの、
http://rebecca.ac/milano/mt/readme/jcode.html
milanoさんがMT日本語化パッチの為に用意された手順で、Jcode.pmをインストールしてみて頂けませんか?
たぶんこの方法で、MT4iもJcode.pmを使用できるようになるはずです。
これで文字化けが解消されるんじゃないかと思います。
これもあくまで推測ですが。
お手透きの時にでも試していただけたらと思います。
決して公開を焦っていたりはしませんので、のんびりで構いません。
宜しくお願いいたします。
sakai
あ、うちのMTはmilanoさんの日本語パッチ使ってますよ。レンタルサーバーにもモジュールが入っているとアナウンスされていたのですが、どうも日本語化がうまくいかなかったので、まさにその手順でJcode.pmを放り込んだという記憶があります。なんだかややこしいことになってきましたね。ほとんどが文字化けしていなくてたまになる程度なので、なにか問題は僕の側にありそうなんですよね。僕以外の方にも試用してもらったほうがいいかもしれませんね。
管理人
う〜ん、なんだかややこしいことになってきました。
どなたか他に、UTF-8環境で試して頂ける方はいないかしら……。
管理人
よく考えたらJuNyaさんとこ
http://www.junktest.net/junya/
がUTF-8でした。
やはり文字化けを確認。
やはり「たまに」発生。
Kazuaki
いずれのサーバも Content-Type で文字セットを
送ってなかったりしませんか?
太鉄
ごめんなさい、不勉強なもので、言ってる意味が良く分かりませんでした。
Kazuaki
RFC2616 の 3.4.1 あたりを参照すればわかるかと思いますが、HTTP/1.1 では、サーバから送信されるコンテンツが使用している文字セットは、サーバ側が HTTP ヘッダで指定することになっています。
なので、HTTP/1.1 に準拠したサーバの場合、
> Content-Type: text/html
ではなく、
> Content-Type: text/html; charset=EUC-JP
という応答をするのが望ましいありかたなのです。
i-mode で Movable Type への読み書きがしたくて、いろいろと探し回っていたら、たまたま MT4i をみつけたのですが、過去のアーカイブを参照していると、やたらと文字化けするので HTTP ヘッダを見てみたら、charset の指定がされていないことに気づいたので、おせっかいかもしれないと思いつつ、ご指摘させていただきました。
なお、文字化けするのは本体の方で、MT4i の方は
> Content-Type: text/html; charset=Shift_JIS
が返ってきてるので、こちらの方は問題ないです。
もしかして誤解を与えてしまっていたら、すみませんです。。。
管理人
難しい話は良く分からないんですが、MT4iの話ではなくて、MT本体が稼動しているサーバーの問題ということですか。
そこには当サイトも含まれていますか?
ん〜、サーバーの問題となると、レンタルサーバーを借りているうちなんかの場合は、どうしようもないんですけどね。
それとも、HTMLの記述でなんとかなるもんなんでしょうか。
いちいち不勉強で申し訳ございません。