在 header 中插入代码 - 但仅限于 CMS 页面 (Magento + Fancybox)

Insert code in header - but only on CMS page (Magento + Fancybox)

我需要在一个 CMS 页面的 header 中插入此代码:

<!-- FancyBox Script -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<link rel="stylesheet" href="/fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>

首先,我在 header 中插入了代码(所以它在网站的所有页面上都有),但随后添加到购物车功能不起作用。所以我需要代码只出现在我需要 Fancybox 的特定 CMS 页面上。我该怎么做?

您需要在代码中执行此操作吗?我建议通过 ADMIN 系统执行此操作。只需切换到代码视图并将其粘贴即可。

或者,使用此内容创建模块和 .phtml 模板文件,然后使用布局 XML 更新将其添加到 ADMIN 中的页面。

如果您编辑要在其中包含 Fancybox 的 CMS 页面,请单击 design 选项卡,然后在 Layout XML Update 部分中包含以下内容:

<reference name="head">
    <block type="core/text" name="fancyboxcode">
        <action method="setText">
            <text>
                <![CDATA[
                <link rel="stylesheet" href="/fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
                <script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
                ]]>
            </text>
        </action>
    </block>
</reference>

在 head.phtml 文件中,在此条件下包含您的脚本

<?php
if(Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms')
{ ?>


 // only if it is a CMS page

// Include your script here 

<?php } ?>

希望能解决您的问题

在 cms.xml => 主题布局文件夹中添加以下代码。

<block type="page/html_head" name="head" as="head">
    <action method="addItem"><type>skin_css</type><name>css/caa-file-name.css</name><params/><if><![CDATA[<!--[if (gte IE 9) | (IEMobile)]><!-->]]></if></action>
</block>

假设您只想将此 header 用于主页,那么您可以使用 local.xml 中的主页处理程序,例如

<cms_index_index>
    <reference name="head">
         <block type="core/text" name="cdn.jquery">
            <action method="setText">
                <text>
                    <![CDATA[
                    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                    <script type="text/javascript">jQuery.noConflict();</script>
                    ]]>
                </text>
            </action>
        </block>
    </reference>
</cms_index_index>

现在只在首页加载