fuelphp cvタグ 先頭と末尾にダブルクォーテーションがついていて発火されない(自動エンコーディングされている)

cvタグがエンコードされている.

結論

viewに渡す際の第3引数をfalseにする→forge('ファイル名','データ',false)).

forge($file = null, $data = null, $filter = null)

対応の流れ↓

修正前

onmousedown=""javascript:ga('send','event',"~~");""

開発者モードでHTMLを見てみると上記のようなjavascriptの前と末尾が「""」で括られていた。
一般的にfuelのcontrollerからviewオブジェクトを作る際、forge(ファイル名,データ,true or false)で渡すと思うが、
この第3引数をtrueにするかfalseにするかで自動エンコードされるか決まるそう。
config/app/config.phpに書かれている内容がこの第3引数のデフォルト値になる。
多くはtrueがデフォルトだと思われる.


しかし、controllerからviewに渡す際の第3引数をfalseにしてしまうと、view全体の自動エンコーディングがfalseになってしまう。
自分の場合は、バナーを出す際のcvタグだったので、バナーを出す時に別のファイルを呼んでおりその部分でのみ第3引数をfalseにする。(controller=>view=>バナーのviewファイル). なので、controllerから全体のviewに渡す際はset_safeでビューに変数を割り当て、そこから該当のバナー画像が置いてあるファイルにのみ、第3引数でfalseにしたほうが良さそうと思った。

set_safe($key, $value = null). デフォルトで出力時に変数のエンコーディングを行わないこと以外は、set() と同じです。

参考:

View - クラス - FuelPHP ドキュメント