タグ付けされた質問 「overrides」

コア機能のオーバーライドに関する質問(クラスの書き換え、ローカルコードプール、テーマのオーバーライド)。URLの書き換えには、代わりに「url-rewrite」タグを使用します。

1
Magento 2のデフォルトのヘッダーテンプレートの上書き
テーマを拡張して独自のテーマを作成しましたMagento/Blank。 今、デフォルトのヘッダーテンプレートファイル上書きしたいlink.phtml、topmenu.phtml、header.phtmlに位置していますvendor/module-theme/view/frontend/templates私のテーマに。 私のテーマは app/design/frontend/MyModule/MyTheme オーバーライド方法とその構造を教えてください。

3
Magento 2で仮想タイプクラスをオーバーライドする方法
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で仮想タイプクラスをオーバーライドする適切な方法は何ですか?

7
Magento 2.1.0で「カートに追加」ボタンのテキストを変更する(jsファイルをオーバーライドする)
「カートに追加」のテキストを「」に変更して「これが欲しい」に変更しましたvendor\magento\module-catalog\view\frontend\templates\product\list.phtml。 しかし、「これが欲しい」(つまり「カートに追加」)ボタンをクリックすると、製品がカートに追加され、再び「カートに追加」というテキストがボタンに表示されます。 製品はajax呼び出しを介して追加されると思います。そのため、ajax呼び出しの後に新しく追加されたテキストが表示されず、「カートに追加」テキストが表示されます。 私はこれを試しました: カスタム拡張Ved_Mymoduleを作成しました。 拡張機能がアクティブであることを確認しました。 その後、次の手順を実行しました。 app / code / Ved / Mymodule / view / frontend / requirejs-config.js: var config = { map: { '*': { catalogAddToCart:'Ved_Mymodule/js/customCatalogAddToCart' } } }; app / code / Ved / Mymodule / view / frontend / web / js / customCatalogAddToCart.js: define([ …

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 /ajaxaddresssは応答せず、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
コントローラーの書き換え
Controllerから_initActionというアクションを上書きする必要があります。 /app/code/core/Mage/Adminhtml/controllers/Catalog/Product/AttributeController.php 自分のモジュールとコントローラーに: /app/code/local/Qbikz/ToolTip/controllers/Adminhtml/Catalog/Product/AttributeController.php 私はすでにそれを解決するさまざまな方法を試みた:第一の方法<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> 2番目の方法(ルールを無視して表示するページ): <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を1つの変更を加えてコピーしました。追加した public function generateXml() { Mage::log('test'); ... } 他の場所でこれを行うtestとvar/log/system.log、期待どおりに印刷されますが、このファイルにのみ、メッセージは記録されません。 どんな助けも大歓迎です 編集 を使用して Mage::log('text', null, <file>, true); どちらも機能しません
11 overrides  log 

1
XML構成ノード/値を上書き/削除しますか?
コア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> しかし、それは安全ですか?すべてのバージョンで機能しますか?私はそれを野生で見たことがないので、私は尋ねています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.