标签: magento-layout-xml

如何在Magento中以编程方式添加JS?

我需要在块文件中有条件地以编程方式添加JS文件.我试过这些代码:

if (Mage::getStoreConfig('mymodule/settings/enable')) {
$this->getLayout()->getBlock('head')->addJs('path-to-file/file1.js');
} else {
$this->getLayout()->getBlock('head')->addJs('path-to-file/file2.js');
}
Run Code Online (Sandbox Code Playgroud)

但是,无论设置是什么,都不会加载此文件.我甚至试图消除这种情况并仅显式加载一个文件,但它仍然无效.我在这做错了什么?

magento magento-layout-xml

6
推荐指数
2
解决办法
9198
查看次数

通过布局XML文件将助手类传递给参数

我有一个工作链接添加到top.links块像这样:

<block type="page/template_links" name="top.links" as="topLinks">
    <action method="addLink">
        <label>About Us</label>
        <url helper="mymodule/getAboutUsUrl"/>
        <title>About Us</title>
        <prepare/>
        <urlParams/>
        <position>20</position>
    </action>
</block>
Run Code Online (Sandbox Code Playgroud)

最终我想让getAboutUsUrl变成getExternalSiteUrl.我想要一个函数来获取参数.例如,getExternalSiteUrl('about-us')然后返回//url/about-us之类的东西.但是,我似乎找不到在Layout XML文件中发送辅助类参数的方法.我已经搜索了其他模块,并且在我搜索的Customer模块中找不到.

有人可以帮忙吗?

magento magento-1.7 magento-layout-xml

6
推荐指数
1
解决办法
2709
查看次数

如何将脚本和CSS挂钩到<head>?

我正在制作模块的东西是它生成一个javascript片段,所以我不能使用一个动作只是将它挂钩到HTML的部分,因为动作需要我有一个JS文件(如果我是正确的我错误).我有什么方法可以将JavaScript代码段放入代码中?我正在考虑使用一个块,但我不确定该块后面应该添加什么,我必须考虑这将适用于所有主题.

magento magento-layout-xml

5
推荐指数
1
解决办法
4861
查看次数

Magento模块布局xml加载顺序

我有一个自定义扩展,包括jQuery到布局XML,如下所示:

<reference name="head">
    <action method="addJs"><script>jquery/jquery-1.8.1.min.js</script></action>
</reference>
Run Code Online (Sandbox Code Playgroud)

使用jQuery的其他扩展需要在我的模块之后加载,以便jQuery保持在最顶层.

默认情况下,Magento按字母顺序加载所有内容.有没有办法为扩展指定排序顺序?

一种方法是page.xml在我的主题中覆盖并手动将jQuery包含在头部中,或者我可以将每个自定义模块设置为依赖于我想要的模块,例如:

<depends>
    <Package_JQueryLib />
</depends>
Run Code Online (Sandbox Code Playgroud)

还有其他建议吗?

编辑

我在想我也可以覆盖Mage_Page_Block_Html_Head和修改addItem()方法,以包括排序或预先添加文件到头部.

xml layout module magento magento-layout-xml

5
推荐指数
1
解决办法
1万
查看次数

CSS文件的顺序.在主题CSS之前加载模块的CSS

如何在主题 CSS 之前更改CSS文件的顺序以加载模块的CSS?以下是一些代码示例:

主题的local.xml中添加的主题CSS文件(加载在所有页面上):

<default>
    <reference name="head">
        <action method="addItem">
            <type>skin_css</type>
            <name>css/theme.css</name>
        </action>
    </reference>
</default>
Run Code Online (Sandbox Code Playgroud)

扩展的CSS文件(仅在类别页面上加载)添加在模块的XML布局文件中:

<catalog_category_layered>
    <reference name="head">
        <action method="addItem">
            <type>skin_css</type>
            <name>css/extension.css</name>
        </action>
    </reference>
</catalog_category_layered>
Run Code Online (Sandbox Code Playgroud)

这是我在类别页面上加载的CSS文件的顺序,扩展的CSS在主题的CSS之后加载:

  • /default/mytheme/css/styles.css
  • /default/mytheme/css/theme.css
  • / default/mytheme/css/extension.css

我想要实现的目标:扩展的CSS在主题CSS之前加载.
如何强制这个CSS文件的顺序:

  • /default/mytheme/css/styles.css
  • / default/mytheme/css/extension.css
  • /default/mytheme/css/theme.css

我注意到如果我安装了很多扩展,一些扩展的CSS在主题的CSS之前加载,其他一些扩展的CSS在主题的CSS之后加载.我假设它与Magento中的模块顺序有关,但我不明白如何影响前端的CSS(或JavaScript)文件的顺序.

layout magento magento-layout-xml

5
推荐指数
1
解决办法
4811
查看次数

Magento通过本地xml向产品附属品添加一个部分无法正常工作

我已按照本文将产品评论添加到产品页面的附属部分:http: //www.crearegroup-ecommerce.co.uk/blog/magento-tutorials/product-reviews-on-product-view-page .PHP

我已将以下代码添加到我的local.xml:

<catalog_product_view translate="label">
    <reference name="content">
       <block type="review/product_view_list" name="product.info.product_additional_data" as="product_review" template="review/product/view/list.phtml">
          <block type="review/form" name="product.review.form" as="review_form"/>
       </block>
    </reference>
Run Code Online (Sandbox Code Playgroud)

以及view.phtml中的以下代码:

<?php echo $this->getChildHtml('product_review') ?>
Run Code Online (Sandbox Code Playgroud)

以上是在getChildHtml的其他一些调用之间添加的(在附属部分)

问题:评论和表单是否已添加到页面末尾而非附加部分?

任何帮助表示赞赏.谢谢.

magento magento-layout-xml

2
推荐指数
1
解决办法
2164
查看次数

如何将Magento的分层导航块从左列移动到右列?

我知道这个问题已被提出,但我一直无法找到对我有用的答案.我有一个我自己构建的自定义模块,它在搜索结果时也会搜索CMS静态页面.在这个模块中,我有一个更新布局xml的文件.我确信我的xml正在加载.出于某种原因,我尝试删除或取消设置分层导航并将其移动到右列没有结果.下面是我的代码,我希望有人能指出我的错误.谢谢!

<layout version = "0.1.0">

<catalog_category_default>
    <reference name="left">
        <action method="unsetChild"><name>catalog.leftnav</name></action>
    </reference>
    <reference name="right">
        <action method="insert"><child>catalog.leftnav</child></action>
    </reference>
</catalog_category_default>

<catalogsearch_result_index>
    <reference name="content">
        <block type="cmssearch/results" name="cms-search-results-view" after="search.result" template="cmssearch/cmssearchview.phtml">
        </block>
    </reference>
    <reference name="left">
        <!-- <remove name = "catalogsearch.leftnav" /> -->
        <action method="unsetChild"><name>catalogsearch.leftnav</name></action>
    </reference>
    <reference name="right">
        <!--  <block type="catalogsearch/layer" name="catalogsearch.leftnav" before="+" template="catalog/layer/view.phtml"/> -->
        <action method="insert"><child>catalogsearch.leftnav</child></action>
    </reference>
</catalogsearch_result_index>

<catalog_category_layered>
    <reference name="left">
        <action method="unsetChild"><name>catalog.leftnav</name></action>
    </reference>
    <reference name="right">
        <action method="insert"><child>catalog.leftnav</child></action>
    </reference>
</catalog_category_layered>
Run Code Online (Sandbox Code Playgroud)

magento magento-layout-xml

2
推荐指数
2
解决办法
2万
查看次数

如何仅通过xml为少数类别设置默认产品排序方向(asc/desc)

在 Magento 2 中,我如何通过“管理类别”->“特定类别”->“设计”部分的布局更新 xml 设置特定类别的默认产品排序方向(升序/降序)。就像我在屏幕截图中所做的那样...但它不起作用:(在此输入图像描述

php xml magento magento-layout-xml magento2

2
推荐指数
1
解决办法
3969
查看次数

Magento模块布局xml命令

我在Magento安装中使用自定义模块,它使用布局XML文件将一些Javascript文件添加到每个页面的head部分.

这工作正常,但是这些javascript文件需要在我已经在page.xml中声明的那些之后添加,但是看起来XML文件按字母顺序处理而不是分层次!

我查看了页面/ html_head块,似乎没有本地方式来设置/更改包含项目的顺序.如果不从我的模块的XML文件中删除javascript文件并将它们放在page.xml中,有没有人知道如何确保首先添加page.xml javascript?

xml layout module magento magento-layout-xml

1
推荐指数
1
解决办法
1651
查看次数

标签 统计

magento ×9

magento-layout-xml ×9

layout ×3

xml ×3

module ×2

magento-1.7 ×1

magento2 ×1

php ×1