EC-CUBEの商品登録では、商品説明やフリーエリアでHTMLタグが使えるようになっています。
ただ、HTML Purifierによってエスケープ処理が入るため、aタグにtarget属性を付けても保存時に除去されてしまいます。
aタグにtarget=”_blank”を指定したい時に、除去されないようにする方法をご紹介したいと思います。EC-CUBEのバージョンは4系(検証したのは4.2.3)です。
EC-CUBE4の商品説明やフリーエリアの中でtarget=”_blank”を利用できるようにする方法
exercise_html_purifier.yamlというファイル名で、下記内容を保存します。
exercise_html_purifier:
html_profiles:
default:
config:
Attr.AllowedFrameTargets: '_blank'
exercise_html_purifier.yamlを「/app/config/eccube/packages/」配下にアップします。
※すでにexercise_html_purifier.yamlが存在している場合は、既存ファイルを編集してください。デフォルトでは存在しません。
EC-CUBE管理画面の[コンテンツ管理] – [キャッシュ管理]でキャッシュをクリアします。
これでaタグにtarget=”_blank”を指定できるようになります。
target属性の値に_selfや_topも指定したい場合は、以下のように複数の値を許可してあげます。
exercise_html_purifier:
html_profiles:
default:
config:
Attr.AllowedFrameTargets: ['_self','_top','_blank']
あとがき
商品説明やフリーエリア内でaタグにtarget=”_blank”を指定すると、rel=”noreferrer noopener”が自動で付与されます。
target=”_blank”を指定したい時は、ぜひ参考にしていただければと思います。