EC-CUBE3系のフォームを編集禁止したりプレースホルダを設定する。

ユーザーMYページで初期登録内容から変更してほしくない項目があったので、twigを触りました。

直接触りたくないので、EC-CUBE管理画面→コンテンツ管理→ページ管理から、対象となるページを選択してページを編集。
中はtwigのお作法でマークアップされています。

たとえばこれ

{{ form_widget(form.name.name01) }}

name01は名字ですが、特に意味はありません。

編集できないようにする

{{ form_widget(form.name.name01, { 'read_only':'readonly'}) }}

readonlyと似たものに、disabled(’disabled’:’disabled’)があるのですが、こちらは値がうまく保存できなくなります。
変更できません、みたいな注釈を入れるとわかりやすいと思います。

プレースホルダーをデフォルトから変える

{{ form_widget(form.name.name01, { attr : { placeholder : 'hoge'}}) }}

編集できないように、かつプレースホルダーをデフォルトから変えたい場合

{{ form_widget(form.name.name01, { 'read_only':'readonly', attr : { placeholder : 'hoge'}}) }}

カンマ区切りで入れましょう。

保存して終了です。(管理画面からの変更であればtwigのキャッシュ削除は必要ありません。)


あとがき。

編集できないのだからプレースホルダー意味なくね?となるのですが、まあ、なにかの拍子にちらっと見えたらいやじゃないですか、みたいな話です。

正直、EC-CUBEの仕様としてはreadonlyになっていたとしても、値に変更が加わればちゃんと保存されてしまう(devツールとかでinputのvalueを書き換える)ので、あくまでゆるいカスタマイズだと覚えておきましょう。

タグ
公開日