Movable Typeのコメント投稿時のエラー表示不具合を修正

2020-09-09 | コメント(0)

先日、当サイトのMovable TypeをMT6(6.2.6)から、MT7(r.4608)へアップデートしたのですが、色々と触っているうちにコメント投稿時の入力エラー表示がおかしいようです。

コメントを許可にした記事やウェブページで、コメント内容が未入力等で投稿するとエラー表示として正しくない画面になります。具体的には次のような画面になります。

Movable Type コメント投稿エラー表示不正

コメントプレビュー画面は問題なく、入力エラーが無ければ登録できて完了画面も正しく表示されますが、入力不備でエラー表示される場合にデザインされたHTMLでは無く、ただの文字列が返ってくるので、画面左上に一行の文字列が表示されるだけです。

当然ながら画面にはボタンやメニューも無いため、元に戻るにはブラウザバックになります。

いつ頃からこの正しくない画面が表示されるようになったのか判りませんが、手元に2016年にダウンロードした MT-6.2.6、MT-6.2.7、MT-6.3 のZipファイルを持っていましたので、MT-6.3を試したところ、正しく表示できてこの不具合は発生しませんでした。

他のバージョンを確認したいため、ローカルでテストするためにシックス・アパートへ無料トライアルの申し込みと同時に、開発者ライセンスで取得出来る過去のものを確認してみたところ、
NG: MT-6.3.12
NG: MT-6.5.3
NG: MT-6.6.2
でした。
2020/08/19に公開された最新でも、
NG: MT-6.7.0
NG: MT7-R4609
という状況でした。

このため MT-6.3.* のどこかのバージョンでおかしくなったと推測しますが、正しく表示出来るMTはダウンロード出来るものでは存在しないことになります。

クラウド版等は契約して無いので判りません。

この時のエラー表示パターンは、具体的に以下の3パターンがあります。

コメント未入力の時。
「An error occurred: コメントを入力していません。」
An error occurred: コメントを入力していません。

名前、メールアドレスが未入力(または不正)の時。
「An error occurred: 名前とメールアドレスは必須です。」
An error occurred: 名前とメールアドレスは必須です。

Captchaの入力値が違う時。
「An error occurred: 入力された文字列が正しくありません。」
An error occurred: 入力された文字列が正しくありません。

さて、シックス・アパートへ無料トライアルを申し込んだ時に、ご親切に担当者からメールを頂いたので、そのメール返信でMT7のコメント投稿時のエラー表示がおかしい事を伝えたところ、返信メールがあり、公開されているMT6(6.6.2)でも同様の事象が確認されたとの連絡がありました。その回答メールから数日後に、修正されたComments.pmを送ってくださいました。

無料ユーザーにここまでしてくれるとは正直驚きました。ありがとうございます!

頂いたComments.pmはMT-7用の様なメール内容で、私はMT-6を使いたいと思っていましたが、コードの差分は1行だけだったので試してみました。

このコード修正は、シックス・アパートの方から上記の通りの経緯から頂いた内容となります。コメント投稿時の正しくないエラー表示は直りますが、ダウンロード可能なMTのzipファイルにはこの修正は入っていません。このため、自己責任でお願いします。

以下、MT7-R4608の時に頂いたものなので、MT7-R4608の Comments.pm とのコード差分です。

左: オリジナル
右: 修正として頂いたもの
コメント投稿エラー修正DIFF

../[ MT7-R4608 ]/plugins/Comments/lib/MT/App/Comments.pm 1890 行目

                unless $app->is_valid_redirect_target($return_url);

を、以下に変更

                if $return_url && !$app->is_valid_redirect_target($return_url);

修正結果として、MT7-R4608でコメント投稿時のエラー表示が直りました。

MT-6.7.0 でも同様な対象箇所を探して見つけました。以下 Comments.pm のパスが少し変わります。

../[ MT-6.7.0 ]/lib/MT/App/Comments.pm 1897 行目

sudo nano /var/www/html/mtsite/mt/lib/MT/App/Comments.pm

MT-6.7.0のコメント投稿エラー修正箇所

この箇所を同じように変更したところ、MT-6.7.0でもコメント投稿時のエラー表示が直りました。

この確認が出来たので、当サイトをMT-6.7.0へアップデートして落ち着きました。

コメント投稿時のエラー表示が正しい画像

実に MT-6.2.6 → MT7-R4608 → MT-6.3 → MT-6.7.0 とフルタイムでは無いにしても2か月近く費やしました。この期間、MTのインストールと破棄を何回行ったことか・・・。
Hyper-Vのスナップショットはとても便利でした。Docker EEのUbuntuも軽量で検証も楽でした。WSLはスナップショットが取れない事や、アプリ検証前のUbuntuスタート後のapt upgradeで時間が掛かるので何度も繰り返す気にはなれませんでした。

MT7 は画面が新しくなって今風なので良いのですが、初期テンプレート選択のカラム変更がGUIで出来なくなっていることもあり、まだ私にはMTのテンプレートの勉強も兼ねてMT6のほうが参考になるので、MT7はまだ使わないことにしました。

カテゴリ:

コメントする

※HTMLタグは使えません

Author

あきちゃん

主に、.NETでWebシステムの設計と開発をしています。
(茨城県在住, 都内勤務)
プロフィール