バージョンがアレだってことはこの際無視する。
環境
ECCUBE3.0.18
PHP7.3
問題点①
プラグイン側でタグを生成して受注登録画面に表示させる、タグ自体は特殊文字に変換されるのでそのままじゃ使えない、だから合わせてjsを記述して、特殊文字を特殊文字じゃないものに置換するっていうのがあった。
で、php7.3環境において、editなら読めるけど商品追加後とかのedit?になると再度整形が行われて、全角は「数値文字」とかいうのに変換されたし、jsに書いたタグは特殊文字を取っ払われた状態になった(置換元も置換先も同じ状態になった)。で、商品追加後に生成されるギミックについては後者のみの影響を受けてるので特殊文字のまま。置換ができないのでタグが文字として表示される。
特殊文字状態を指定したいのに特殊文字じゃなくなっちゃう。
対策方法と考え方
大元を潰せないかと調べたけどそういうことをしてる人はいなかった。
仕方ないから個別に潰すことになる。
jsはプラグイン上で記述→editに表示→edit?で整形なので、とりあえずこの流れを簡略化する。
edit.twigに記載してedit→edit?で済ませる。
ついでに、jsの中身はベタ打ちだったのでtwigのやつで書く。
.replaceAll(\'<br>\', '<br>'));
これを
.replaceAll('{{ '<br>'|e }}', '<br>'));
こうする。
当然editでは特殊文字のままソースに残ってたし、edit?も同様。
おかげでちゃんと動いた。
{{ ‘<br>’|e }}でもいいかと後で思った。
コメント