EC-CUBEで「URLを正しく入力してください」という警告と原因。

EC-CUBEで、オリジナルで作成していたページの修正を管理画面で行い、保存しようとすると、
※ URLを正しく入力してください。
という警告が出るようになりました。

しかも、突然。
なにもしていないにの。

EC-CUBEバージョンは古く、2.12.0。

管理画面の、デザイン管理>PC>ページ詳細設定と進んで
とあるページの詳細の編集をクリックした画面です。
URLの欄で
http://example.jp/user_data/[  ].php(上限50文字)
というところの下に赤く出る警告です。
phpのファイル名は変更していませんが、そもそもテキストBOXの中にあるPHP名のテキストがDisabledになっていて変更ができない状態でした。

ページのソースを見ると
<input type=”text” name=”filename” value=”fax_order” maxlength=”50″ style=”” ime-mode: disabled;” size=”40″ class=”box40″>.php

上記のソースでは、styleが””となって(”が2つなので)閉じられていて、本来style内で「;」で繋ぐべきime-mode:が外に出てしまっていました。
これが原因だろうということでmain_edit.tplを修正することに。
(まあ、発見して修正してくれたのは私の師匠でもあるプログラマさんですがww)

この編集画面はmain_edit.phpなので、そのテンプレートであるmain_edit.tplは、
data/Smarty/templates/admin/design/main_edit.tpl
にあり、その70行目あたりにある記述を見てみました。

(修正前)
<input type=”text” name=”<!–{$key}–>” value=”<!–{$arrForm[$key].value|h}–>” maxlength=”<!–{$arrForm[$key].length|h}–>” style=”<!–{$arrErr[$key]|sfGetErrorColor}–>” ime-mode: disabled;” size=”40″ class=”box40″ />.php

(修正後)
<input type=”text” name=”<!–{$key}–>” value=”<!–{$arrForm[$key].value|h}–>” maxlength=”<!–{$arrForm[$key].length|h}–>” style=”<!–{$arrErr[$key]|sfGetErrorColor}–>; ime-mode: disabled;” size=”40″ class=”box40″ />.php

ime-modeの手前にある閉じの「”」を「;」に変えただけですが、これでうまくいきました。

しかし、main_edit.tplのタイムスタンプは4年前なので、なぜいままでこの壊れたマークアップで動いていたのか不思議です。

さすがEC-CUBE品質。
オープンソースなので文句は言えないところです。


コメントを残す

メールアドレスが公開されることはありません。