如何将 javascript 跟踪代码添加到所有 magento 页面?
How do I add javascript tracking code to all magento pages?
我需要在结束 "body" 标记之前将 java 脚本跟踪代码添加到我的 magento 商店的所有页面。有谁知道我需要把它放在什么文件中?我是否必须为 Magento 修改 JavaScript 或只是将其粘贴进去?
回答您的问题:如何将 javascript 添加到每个页面
在模板中,通常您会在每个页面上加载页脚块,因此请在此处找到 phtml 文件;
app/design/frontend/XXX/YYY/template/page/html/footer.phtml
其中 xxx/yyy 是您的主题目录。在此处添加跟踪代码,它将加载到每个页面上。
关于它是否需要修改 - 这实际上取决于您希望做什么。如果您需要插入篮子值、客户编号(如果存在)等变量,那么是的,您将需要向其中添加那些 php 变量,这就是您可能 运行 遇到麻烦的地方。如果您正在使用缓存,那么页脚可能不是最佳位置,因为您最终可能会在代码段中使用缓存的变量值。如果它动态地为诸如页面 url 之类的东西提取值,那么你会没事的。
另一个问题是这会加载到您的结帐页面 - 因此如果它从 http:// 位置调用 js 文件,您的页面将无法通过 SSL 验证。
您可以通过将 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 让我知道。
最简单的方法 - 通过后端,有一个专门针对此需求的配置部分。
System -> Configuration -> General -> Design Section -> Footer Tab -> Miscellaneous HTML
它依赖于您的主题在结束 body 标记之前调用主模板文件中的 getAbsoluteFooter()
方法,请注意这一点。
<?php echo $this->getAbsoluteFooter() ?>
</body>
我需要在结束 "body" 标记之前将 java 脚本跟踪代码添加到我的 magento 商店的所有页面。有谁知道我需要把它放在什么文件中?我是否必须为 Magento 修改 JavaScript 或只是将其粘贴进去?
回答您的问题:如何将 javascript 添加到每个页面
在模板中,通常您会在每个页面上加载页脚块,因此请在此处找到 phtml 文件;
app/design/frontend/XXX/YYY/template/page/html/footer.phtml
其中 xxx/yyy 是您的主题目录。在此处添加跟踪代码,它将加载到每个页面上。
关于它是否需要修改 - 这实际上取决于您希望做什么。如果您需要插入篮子值、客户编号(如果存在)等变量,那么是的,您将需要向其中添加那些 php 变量,这就是您可能 运行 遇到麻烦的地方。如果您正在使用缓存,那么页脚可能不是最佳位置,因为您最终可能会在代码段中使用缓存的变量值。如果它动态地为诸如页面 url 之类的东西提取值,那么你会没事的。
另一个问题是这会加载到您的结帐页面 - 因此如果它从 http:// 位置调用 js 文件,您的页面将无法通过 SSL 验证。
您可以通过将 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 让我知道。
最简单的方法 - 通过后端,有一个专门针对此需求的配置部分。
System -> Configuration -> General -> Design Section -> Footer Tab -> Miscellaneous HTML
它依赖于您的主题在结束 body 标记之前调用主模板文件中的 getAbsoluteFooter()
方法,请注意这一点。
<?php echo $this->getAbsoluteFooter() ?>
</body>