回答:
代わりにコマンドラインオプションを使用します。
php bin/magento module:disable --clear-static-content Magento_Review
キャッシュをフラッシュする場合:
php bin/magento cache:flush
(Magento 2 dirのルートから実行します)
コマンドラインでモジュールを無効にすると、さまざまな場所でエラーが解決します。より良いアイデアは、XMLで非表示にすることです。次のように子テーマを作成します(まだ持っていない場合)。
そして、あなたの子テーマの中に作成します:
app / design / frontend / company_name / theme_name / Magento_Theme / layout / default.xml
これを追加します:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="reviews.tab" remove="true" />
<referenceBlock name="product.review.form" remove="true" />
<referenceBlock name="product.info.review" remove="true" />
</body>
</page>
Magento 2.0.2では、@ MagePsychoが提案したことを試みるとエラーが発生します。Magento 2の詳細設定でステータスを変更することで、モジュール出力を無効にすることができます。
「ショップ」>「構成」>「詳細」>「詳細」を選択して、「レビュー」を検索します。
後でキャッシュをフラッシュしたい場合があります。
Magento 2.1では、@ Maxが示唆したように出力を無効にすると、製品ビューの編集で厄介なポピンが発生します。
あまりクールではありません。503で終了するAjaxリクエストが原因です。また、「製品レビュー」タブがまだあることがわかります。2.0でも機能しました。これは、管理者がブロックを介してまだレンダリングされていたためです。これで、UiComponentで完了しました。
「製品のレビュー]タブは、」トラフ追加されるadminhtml/di.xml
のMagento_Review
<virtualType name="Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Pool">
<arguments>
<argument name="modifiers" xsi:type="array">
<item name="review" xsi:type="array">
<item name="class" xsi:type="string">Magento\Review\Ui\DataProvider\Product\Form\Modifier\Review</item>
<item name="sortOrder" xsi:type="number">20</item>
</item>
</argument>
</arguments>
</virtualType>
引数を削除する方法はありません-または少なくとも方法が見つかりませんでした。ですから、何らかの形で書き直さなければなりません。
最初に、プラグインを実行することを考えましたMagento\Review\Ui\DataProvider\Product\Form\Modifier\Review
。しかし、コアコードを掘り下げると、Dummy.php
クラスが見つかります。そのため、カスタムモジュールで、adminhtml/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<virtualType name="Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Pool">
<arguments>
<argument name="modifiers" xsi:type="array">
<item name="review" xsi:type="array">
<item name="class" xsi:type="string">Magento\Ui\DataProvider\Modifier\Dummy</item>
</item>
</argument>
</arguments>
</virtualType>
</config>
そして<sequence><Magento_Review/>
、あなたのを追加することを忘れないでくださいmodule.xml
。XMLは正確な順序でマージされるためです。Magento_Reviewの後でなければなりません
また、このスレッドのタイトルが言及しているように、Ouputを無効にしてもモジュールは無効になりません。それを隠すだけです:
コントローラーは引き続きアクティブです。適切なアクションで投稿を行うと、コントローラーは引き続き機能し、フロントエンドで「成功」メッセージが表示されます。
メニューの[レポート]には引き続き管理者が表示されます
すべてのモデルロジック、インジェクション、オブザーバーが引き続き適用されます。
とにかく、私の観点から、それはまだ最善の解決策です。モジュールの無効化を強制するのはmodule:disable -f
少し厳しいようです...
作成:
app / design / frontend / company_name / theme_name / Magento_Theme / layout / default.xml
これを追加します:
<?xml version="1.0"?>
<page layout="3columns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
...
...
<referenceBlock name="reviews.tab" remove="true" />
<referenceBlock name="customer-account-navigation-product-reviews-link" remove="true" />
<referenceBlock name="customer_account_dashboard_info1" remove="true" />
<referenceBlock name="review_customer_list" remove="true" />
<referenceBlock name="customers_review" remove="true" />
<referenceBlock name="product.review.form" remove="true" />
<referenceBlock name="review_view" remove="true" />
<referenceBlock name="product.info.product_additional_data" remove="true" />
...
...
</body>
</page>
.product-reviews-summary
が、おそらくdefault.xml
実際に削除するために追加できる別のルールがありますか?
php bin/magento module:disable -f Magento_Review
他のモジュールが依存しているモジュールを無効にします。機能の中断に気付くように、最初にテスト環境で実行する必要があります。