Questions tagged «overrides»

有关覆盖核心功能(类重写,本地代码池,主题覆盖)的问题。对于URL重写,请改用“ url-rewrite”标签。

3
如何在Magento 2中覆盖Virtual Type类
如何在Magento 2中覆盖VirtualType块,我想用自己的块覆盖以下虚拟类型块, <virtualType name="Magento\CatalogSearch\Block\SearchResult\ListProduct" type="Magento\Catalog\Block\Product\ListProduct"> <arguments> <argument name="catalogLayer" xsi:type="object">Magento\Catalog\Model\Layer\Search</argument> </arguments> </virtualType> 所以我试图di.xml像这样从我的自定义模块中覆盖它, <preference for="Magento\Catalog\Block\Product\ListProduct" type="My\Vendor\Block\Product\ListProductSearch" /> 但这行不通。 那么,在Magento 2中重写虚拟类型类的正确方法是什么?

1
Magento 2 Override默认标题模板
我通过扩展Magento/Blank主题创建了自己的主题。 现在想的默认标题模板文件覆盖link.phtml,topmenu.phtml,header.phtml它位于vendor/module-theme/view/frontend/templates进我的主题。 我的主题位于 app/design/frontend/MyModule/MyTheme 因此,请让我知道如何覆盖以及它的结构。

7
更改Magento 2.1.0中的“添加到购物车”按钮文本(覆盖js文件)
我已通过覆盖“ vendor\magento\module-catalog\view\frontend\templates\product\list.phtml” 将“添加到购物车”文本更改为“我想要这个”。 但是,当我单击“我想要这个”(即“添加到购物车”)按钮时,该产品即被添加到购物车,然后按钮上再次出现“添加到购物车”文本。 我认为产品是通过ajax调用添加的,这就是为什么在ajax调用后未显示新添加的文本并且显示“添加到购物车”文本的原因。 我已经试过了 我创建了一个自定义扩展Ved_Mymodule。 我已检查该扩展程序是否处于活动状态。 之后,我按照以下步骤操作: 应用程序/代码/Ved/Mymodule/view/frontend/requirejs-config.js: var config = { map: { '*': { catalogAddToCart:'Ved_Mymodule/js/customCatalogAddToCart' } } }; 应用/代码/Ved/Mymodule/view/frontend/web/js/customCatalogAddToCart.js: define([ 'jquery', 'mage/translate', 'jquery/ui' ], function($, $t) { "use strict"; $.widget('Ved_Mymodule.customCatalogAddToCart',$.mage.catalogAddToCart, { //Override function disableAddToCartButton: function(form) { var addToCartButtonTextWhileAdding = this.options.addToCartButtonTextWhileAdding || $t('Adding...'); var addToCartButton = $(form).find(this.options.addToCartButtonSelector); …

4
覆盖Magento 2中的抽象类
在Magento 1中,我可以将抽象类复制到本地或社区目录中,当自动加载加载此类时,Magento会使用它。 有一些解决方案可以代替Magento加载我的课程 vendor/magento/framework/Model/AbstractModel.php吗? 中di.xml的抽象类首选项不起作用。仅插件?

1
如何重写控制器AccountController
我需要重写一个方法控制器 Core/Mage/Customer/controllers/AccountController.php 并添加新方法。由于此控制器的编辑是错误的-应该覆盖它。 根据项目要求,控制器必须位于 local/New/Mage/Customer/controllers/AccountController.php 要做到这一点,创建一个文件的配置,但地址customer/account/test,customer/account /ajax没有回应,而customer/account/login这是不覆盖。请协助执行。 app / app / etc / modules / New_Mage_Customer.xml <?xml version="1.0"?> <config> <modules> <New_Mage_Customer> <active>true</active> <codePool>local</codePool> </New_Mage_Customer> </modules> </config> app / code / local / New / Mage / Customer / etc / config.xml <?xml version="1.0"?> <config> <modules> <New_Mage_Customer> <version>0.0.1</version> </New_Mage_Customer> </modules> <frontend> …

3
重写控制器magento
我需要从Controller覆盖名为_initAction的操作: /app/code/core/Mage/Adminhtml/controllers/Catalog/Product/AttributeController.php 到我自己的模块和控制器中: /app/code/local/Qbikz/ToolTip/controllers/Adminhtml/Catalog/Product/AttributeController.php 我已经尝试了不同的方法来解决它:第一种方法where <from>和<to>我尝试了不同的组合(未显示404页): <rewrite> <qbikz_tooltip_adminhtml_catalog_product_attribute> <from><![CDATA[#^/adminpanel/catalog_product_attribute/edit/#]]></from> <to>/tooltip/adminhtml_catalog_product_attribute/init/</to> </qbikz_tooltip_adminhtml_catalog_product_attribute> </rewrite> + <frontend> <routers> <qbikz_tooltip> <use>admin</use> <args> <module>Qbikz_ToolTip</module> <frontName>catalog_product_attribute</frontName> </args> </qbikz_tooltip> </routers> </frontend> 第二种方法(页面显示忽略我的规则): <admin> <routers> <adminhtml> <args> <modules> <Qbikz before="Mage_Adminhtml_Catalog_Product">Qbikz_ToolTip_Adminhtml_Catalog_Product</Qbikz> </modules> </args> </adminhtml> </routers> </admin> 在我的控制器中,我放置了die(“ ok”); 但是它没有出现。也许有人可以帮忙?谢谢。

3
如何在Magento 1中覆盖/重写块类?
注意:这是一个规范问题,旨在全面说明块重写的工作方式,并且可以用作更具体的“如何覆盖块X”或“为什么我的重写不起作用”问题的重复目标。 另请参阅:寻找有关Magento 1替代的规范问题 假设我必须在自定义模块中更改核心块类(更改方法或添加方法)。我该如何逐步进行?


1
如何在Magento2中覆盖静态方法
插件拦截器和优先级覆盖不适用于静态方法。 需要重写Magento \ Catalog \ Model \ Product \ Visibility中的getOptionArray方法 以返回自定义可见性 /** * Retrieve option array * * @return array */ public static function getOptionArray() { return [ self::VISIBILITY_NOT_VISIBLE => __('Not Visible Individually'), self::VISIBILITY_IN_CATALOG => __('Catalog'), self::VISIBILITY_IN_SEARCH => __('Search'), self::VISIBILITY_BOTH => __('Catalog, Search') ]; } 还有其他方法可以实现吗?

5
Mage :: log()不会登录Magento使用的所有文件?
我已经覆盖Sitemap.php在app/code/local/Mage/Sitemap/Model/Sitemap.php。该文件似乎已被使用,如果我删除了所有内容,则出现预期的错误。 我复制了标准的完整内容,只做了Sitemap.php一次更改。我加了 public function generateXml() { Mage::log('test'); ... } 当我做这个别的地方,它打印test在var/log/system.log如预期,仅在这个文件中,它不记录消息。 任何帮助是极大的赞赏 编辑 使用 Mage::log('text', null, <file>, true); 也不起作用
11 overrides  log 

1
覆盖/删除XML Config节点/值?
我想删除一些XML值而不接触核心XML文件,这可能吗? 情况如下。 在中,/app/code/core/Mage/Tax/etc/config.xml我们为合计(<sales><quote><totals>)提供了一些配置值。我要注释掉tax一个,以便税项不显示在前端。 注释核心XML文件中的节点可以正常工作,但这不是最佳方法。 如果我将新的empy值放在单独的模块中,则会产生不同的效果(这与删除声明不同) 我特别想做这样的事情: <!--<renderer>tax/checkout_tax</renderer>-->

2
如何向Mage_Page模块添加页面布局?
我升级的Magento后发现,核心Mage_Page的config.xml已被手动编辑,现在我期待改变XML在不覆盖核心的一种方式。 这是核心XML的示例: <config> <modules> <Mage_Page> <version>1.6.0.0</version> </Mage_Page> </modules> <global> <models> <page> <class>Mage_Page_Model</class> </page> </models> <blocks> <page> <class>Mage_Page_Block</class> </page> </blocks> <page> <layouts> <empty module="page" translate="label"> <label>Empty</label> <template>page/empty.phtml</template> <layout_handle>page_empty</layout_handle> </empty> <one_column module="page" translate="label"> <label>1 column</label> <template>page/1column.phtml</template> <layout_handle>page_one_column</layout_handle> <is_default>1</is_default> 我正在寻找添加其他布局,例如one_column或empty。覆盖config.xml有app/code/local/Mage/Page/etc/config.xml似乎没有工作,我应该如何去这样做不接触核心是什么?


1
从第三方扩展中删除观察者
我已经在我的Magento 2平台上安装了一个博客模块。该博客模块具有一个观察者,该观察者自动将新菜单项添加到主导航中。我想停止这一点。 该events.xml文件如下所示: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> <event name="page_block_html_topmenu_gethtml_before"> <observer name="aw_blog_add_topmenu_items" instance="Aheadworks\Blog\Observer\AddBlogToTopmenuItemsObserver" /> </event> </config> 如您所见,它引用了将链接添加到主导航中的观察者。删除events.xml解决了我的问题,但是我正在寻找一种不涉及修改核心模块文件的方法。

2
如何正确禁用(模型)重写
有一个第三方扩展可以重写特定的Magento核心类。它是块,助手还是模型都没有关系,但在这种情况下,它是模型。现在我遇到这种重写是不好的,我想禁用它而不更改第三方扩展名。因此,我编写了一个依赖于第三方扩展的自定义扩展。禁用第三方重写的最佳方法是什么?我能想到的一个安全的方法是定义一个自定义重写,该自定义重写用于代替第三方重写: <global> <models> <custom_extension> <class>Custom_Extension_Model</class> </custom_extension> <mage_core> <rewrite> <sth>Custom_Extension_Model_Sth</sth> </rewrite> </mage_core> </models> </global> Sth.php,该类直接从Mage类扩展而来,因此禁用了第三方重写: class Custom_Extension_Model_Sth extends Mage_Core_Model_Sth { } 这可行,但感觉不太好。考虑到观察者,可以通过将它们设置为来仅通过config.xml禁用它们disabled。通过重写是否可能发生这种情况?我尝试使用以下内容,并且可以正常工作: <global> <models> <mage_core> <rewrite> <sth></sth> </rewrite> </mage_core> </models> </global> 但是这样做安全吗?它适用于所有版本吗?我从来没有在野外看到过,这就是为什么我要问。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.