【问题标题】:Insert code in header - but only on CMS page (Magento + Fancybox)在标题中插入代码 - 但仅限于 CMS 页面(Magento + Fancybox)
【发布时间】:2016-04-26 08:59:12
【问题描述】:

我需要将此代码插入到一个 CMS 页面的页眉中:

<!-- 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>

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

【问题讨论】:

    标签: php jquery magento header fancybox


    【解决方案1】:

    您需要在代码中执行此操作吗?我建议通过 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>
    

    【讨论】:

    • 我尝试在CMS页面->内容下添加代码。但它不能正常工作,这就是为什么我认为它需要在标题中,因为它可能首先加载?我不知道如何按照您的描述创建一个模块 - 您能详细解释一下我是如何做到的吗?
    • 你能解释一下如何做你所描述的吗?
    • 用代码更新了我的答案以添加到管理系统中。
    【解决方案2】:

    在 head.phtml 文件中包含符合此条件的脚本

    <?php
    if(Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms')
    { ?>
    
    
     // only if it is a CMS page
    
    // Include your script here 
    
    <?php } ?>
    

    希望它能解决你的问题

    【讨论】:

    • 谢谢,我刚试了下,页面加载不出来(空白页)。
    • 在 Magento 中硬编码东西从来都不是好事。有正确的方法可以做到这一点,而无需硬编码。
    • 检查php标签的匹配,你可能错过了关闭标签。
    • 我尝试在 header.phtml 中添加代码而不是在 head.phtml 中,它有效:)
    • 好的,一个小问题。由于主页被视为 cms 页面,因此我主页上的滑块停止工作。我可以让代码只在特定的 cms 页面上工作,而不是一般的 cms 页面吗?
    【解决方案3】:

    在 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>
    

    【讨论】:

      【解决方案4】:

      假设你只想要主页的这个标题,那么你可以在 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>
      

      现在这将仅在主页上加载

      【讨论】:

      • 我不希望它出现在主页上 - 我只希望它出现在特定的 cms 页面上 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      • 2013-11-17
      • 2011-04-07
      • 1970-01-01
      • 2011-03-31
      相关资源
      最近更新 更多