2015-02-05 132 views
2

我需要在關閉「body」標籤之前將我的magento商店的所有頁面添加java腳本跟蹤代碼。有誰知道我需要把它放在什麼文件中?我是否必須修改JavaScript的所有Magento或只是粘貼它?如何將javascript跟蹤代碼添加到所有magento頁面?

+0

如果你的問題已經解決,你應該接受你認爲是最好的答案。 – 2015-02-06 09:09:23

回答

2

要回答你的問題:我如何添加JavaScript來的每一頁

在模板中,通常加載每個頁面上的頁腳塊,所以要在這裏找到PHTML文件;

app/design/frontend/XXX/YYY/template/page/html/footer.phtml 

xxx/yyy是你的主題目錄。在這裏添加跟蹤代碼,它會加載到每個頁面上。

關於是否需要修改 - 這實際上取決於您期望的操作。如果你需要插入變量,比如購物籃值,客戶編號(如果存在)等等,那麼你需要添加這些php變量,這裏就是你可能遇到的麻煩。如果您使用緩存,那麼頁腳可能不是最好的地方,因爲您可能會在代碼片段中使用緩存的變量值。如果它動態地拉動它的值,例如頁面url,那麼你會沒事的。

另一個問題是,這將加載到您的結帳頁面 - 所以如果它從http://位置調用js文件,您的頁面將無法通過SSL驗證。

2

您可以通過添加一個layout文件到您的模塊配置做到這一點:

<config> 
    ... 
    <frontend> 
     <layout> 
      <updates> 
       <mymodule> 
        <file>mymodule.xml</file> 
       </mymodule> 
      </updates> 
     </layout> 
    </frontend> 
    ... 
</config> 

添加mymodule.xml文件到app/design/frontend/base/default/layout/文件夾,並擺在那裏以下內容:

<layout version="1.0.0"> 
    <default> 
     <reference name="before_body_end"> 
      <block type="core/template" name="mytracking.block" after="-" template="mynamespace/mymodule/tracking.phtml"> 
       <action method="setCacheLifetime"><s>0</s></action> 
      </block> 
     </reference> 
    </default> 
</layout> 

現在你可以在此模板文件app/design/frontend/base/default/template/mynamespace/mymodule/tracking.phtml中添加您的跟蹤JavaScript代碼。它將打印在所有Magento頁面中。

編輯

我已經添加了一段代碼,禁用緩存爲您追蹤塊,這要歸功於@PixieMedia讓我知道。

+0

這是非常整潔的,但考慮到OP的問題,它可能超出了他們的技能。另外,如何使它不被緩存?或者,他可以創建一個默認情況下不繼承緩存的人造sidecart塊。 – PixieMedia 2015-02-05 17:11:46

+0

我最初做了什麼Pixie媒體建議,我看了Java腳本代碼,並且唯一參考http是... – Lima 2015-02-05 18:12:22

+0

pa.src =('https:'== document.location.protocol?'https:': 'http:')+「// – Lima 2015-02-05 18:15:23

0

最簡單的方法 - 通過後端,有一個專門爲此需要的配置部分。

System -> Configuration -> General -> Design Section -> Footer Tab -> Miscellaneous HTML

它依賴於你的主題調用你的主模板文件的getAbsoluteFooter()方法的結束標記前右,只是意識到這一點。

<?php echo $this->getAbsoluteFooter() ?> 
</body> 
相關問題