我試圖插入一些分析代碼到我ExpressionEngine模板的頁腳文件,但它對待{}的一個函數調用或東西。有什麼辦法可以讓它理解EE不應該執行大括號內的內容?插入{在ExpressionEngine模板文件
我已經嘗試插入反斜槓,它似乎並沒有工作。
任何幫助將不勝感激。
我試圖插入一些分析代碼到我ExpressionEngine模板的頁腳文件,但它對待{}的一個函數調用或東西。有什麼辦法可以讓它理解EE不應該執行大括號內的內容?插入{在ExpressionEngine模板文件
我已經嘗試插入反斜槓,它似乎並沒有工作。
任何幫助將不勝感激。
您是否試過使用EE模板評論標籤評論整個Analia代碼塊?即
{!--
Your comments will go in here.
You can even span it across multiple lines.
--}
從這裏http://expressionengine.com/user_guide/templates/commenting.html
你在說什麼?他的JavaScript代碼被視爲表達式引擎代碼,我面臨同樣的問題。 – Musa 2010-12-28 17:08:42
當您使用EE的評論標籤評論代碼時,該模塊內部沒有任何內容會顯示在模板中,所以這絕對不是一種好的方法。 – 2011-10-08 19:27:14
我建議你避免插入(或試圖插入)生JS成HTML模板。您可以創建不同的模板,用JavaScript
類型,而不是HTML
,那麼你可以用script
標籤在head
添加它,或{embed="js/piece-of-raw-javascript"}
獨立的分析代碼放到一個單獨的模板。
這可能是因爲你有分析代碼內的另一個EE循環,所以它試圖解析它作爲一個模板變量。
所以,如果你需要它在循環中,並創建一個嵌入式的模板,包括隔離的代碼。
因此,創建一個名爲.analytics的include。
在.analytics模板,請執行下列操作(我使用谷歌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>
注意:使用此方法,保持模板作爲一個正常的模板,不改變它到JavaScript模板,因爲您正在模板中使用<script type="text/javascript">
標籤。
然後,在你的主模板,做一個簡單:
{embed="template_group/.analytics"}
你會好到哪裏去。
ExpressionEngine的模板類解析花括號{}
爲template variables。
因爲很多編程語言使用大括號,這可以通過ExpressionEngine replacing JavaScript curly braces as Template Variables導致問題。
例如,花括號所有下面的JavaScript在一行:
<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>
如果你已經寫了一個JavaScript函數,從ExpressionEngine預期值,只需將您的括號放在單獨的行—這是一個good coding convention,並且是optimal for readability。
你應該全光照g hidden config varable protect javascript
$config['protect_javascript'] = 'y';
什麼是您在EE中的調試偏好?它應該設置爲「1」(推薦)。如果當前處於「0」,則嘗試將設置值更改爲「1」。在某些情況下,調試設置爲「0」時可能會使用非EE字符。
您可以將調試偏好設置從 CP => Admin => System Administration => Output and Debugging => Debug Preference。
把{}括號放在單獨的行也將工作,但調試設置(「1」)強烈建議,甚至可能爲什麼這個「錯誤」是不固定的。
能否請您發佈您的代碼頁腳文件? – 2011-10-07 12:34:48
請接受某人的回答。他們花時間給你提出建議。 – 2011-10-25 13:44:05
我可以誠實地說,在我建立的所有EE網站中,我從未遇到過這個問題!我通常會將GA代碼作爲一個單獨的HTML模板加入,並將其嵌入到其他模板中 - 也許這是要走的路? – foamcow 2012-10-25 08:52:25