ExpressionEngine テンプレートのフッター ファイルに分析コードを挿入しようとしていますが、{} が関数呼び出しか何かとして扱われます。中括弧の中にあるものを EE が実行してはならないことを理解する方法はありますか?
バックスラッシュを挿入しようとしましたが、うまくいかないようです。
どんな助けでも大歓迎です。
ExpressionEngine テンプレートのフッター ファイルに分析コードを挿入しようとしていますが、{} が関数呼び出しか何かとして扱われます。中括弧の中にあるものを EE が実行してはならないことを理解する方法はありますか?
バックスラッシュを挿入しようとしましたが、うまくいかないようです。
どんな助けでも大歓迎です。
EE でのデバッグの優先順位は何ですか? 「1」に設定する必要があります (推奨)。現在「0」になっている場合は、設定値を「1」に変更してみてください。場合によっては、デバッグが「0」に設定されているときに非 EE {} 文字を使用すると、問題が発生する可能性があります。
CP => Admin => System Administration => Output and Debugging => Debug Preference からデバッグ設定を変更できます。
{} 中かっこを別の行に配置することもできますが、そのデバッグ設定 (「1」) を強くお勧めします。おそらく、この「バグ」が修正されていない理由でもあります。
ExpressionEngine のTemplate Classは、中括弧{}
をテンプレート変数として解析します。
多くのプログラミング言語は中かっこを使用するため、ExpressionEngine が JavaScript の中かっこをテンプレート変数として置き換えることによって問題が発生する可能性があります。
たとえば、次の JavaScript では中括弧がすべて 1 行に表示されています。
<script>var addthis_config = { 'ui_click': true };</script>
ExpressionEngine によってテンプレート変数として解析され、次のようにレンダリングされます。
<script>var addthis_config = ;</script>
開始中括弧から{
終了}
中括弧までのすべてが解析され、置き換えられることに気付くでしょう。回避策として、中かっこを別の行に配置して、この問題を回避できます。
<script>
var addthis_config = {
'ui_click': true,
'data_track_clickback': true
};
</script>
ExpressionEngine からの値を期待する JavaScript 関数を作成した場合は、中かっこを別の行に配置するだけです。これは適切なコーディング規則であり、読みやすさに最適です。
分析コードを別のテンプレートに分割します。
これはおそらく、別のEEループ内に分析コードがあり、それをテンプレート変数として解析しようとしているためです。
したがって、ループ内で必要な場合はコードを分離し、含める埋め込みテンプレートを作成します。
したがって、.analyticsというインクルードを作成します。
.analyticsテンプレートで、次の手順を実行します(例としてGoogle Analyticsを使用しています)。
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxx-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<script type="text/javascript">
注:この方法を使用する場合は、テンプレートを通常のテンプレートのままにしてください。テンプレート内でタグを使用しているため、JavaScriptテンプレートに変更しないでください。
次に、メインテンプレートで、次の簡単な操作を行います。
{embed="template_group/.analytics"}
そして、あなたは行ってもいいでしょう。
非表示の構成変数保護 JavaScriptを使用する必要があります。
$config['protect_javascript'] = 'y';
EE テンプレートのコメント タグを使用して、Analytics コードのブロック全体をコメントアウトしようとしましたか? すなわち
{!--
Your comments will go in here.
You can even span it across multiple lines.
--}
ここからhttp://expressionengine.com/user_guide/templates/commenting.html
生の JS を HTML テンプレートに挿入する (または挿入しようとする) ことは避けることをお勧めします。JavaScript
の代わりにtype を使用して別のテンプレートを作成し、タグをHTML
使用して に追加するか、head
script
{embed="js/piece-of-raw-javascript"}