Probleme beim Überschreiben der Layoutdatei in Magento 2

9

Ich verwende Magento 2.02. Ich habe mein eigenes Thema namens "cff" erstellt, das auf Luma basiert.

Ich versuche den catalog.compare.linkBlock zu entfernentop.links

Das Layout für diesen Block scheint in definiert zu sein

/vendor/magento/module-catalog/view/frontend/layout/default.xml

Und wenn ich hinzufüge

<referenceBlock name="catalog.compare.link" remove="true" />

In dieser Datei verschwindet dann erwartungsgemäß der Text "Produkte vergleichen" aus dem Block "top.links".

Ich weiß jedoch, dass ich Herstellerdateien nicht ändern soll. Also suche ich nach dem richtigen Ordner, in dem ich meine eigene default.xmlDatei erstellen kann, um den Entfernungscode zu platzieren:

Ich habe überall in der Dokumentation und online gesucht, kann diese Informationen jedoch nicht finden. Ich habe mehrere Standorte ausprobiert, von denen keiner funktioniert. Ich dachte, das sollte funktionieren, aber es funktioniert auch nicht:

/app/design/frontend/cff/cff/Magento_Catalog/layout/default.xml

Kann mir bitte jemand sagen, wohin das Override-Layout gehen soll?

Dies ist der Code in meinem übergeordneten Layout default.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="catalog.compare.link" remove="true" />
    </body>
</page>
Jodaki
quelle
Zunächst aktualisieren Sie bitte auf die neueste Version von Magento2 (2.1.5) und es sollte normal funktionieren. Auch wenn Sie sich in der Entwicklungsumgebung befinden, verwenden Sie KEINE Bereitstellung statischer Inhalte, dh für die Produktion. Bei der Entwicklung sollten Sie Symlinks verwenden. Vergessen Sie auch nicht, den Cache "PHP Bin / Magento Cache: Flush" im Stammverzeichnis Ihres Magento oder vom Administrator zu entfernen / zu aktualisieren
Vlad Patru

Antworten:

1

Sie können versuchen, einfach den Vergleichsreferenzcontainer zu entfernen: compare-link-wrapper

<referenceContainer name="compare-link-wrapper" remove="true" />

Es gibt eine kleine Dokumentation zum Entfernen von Elementen über Layout-XML, die Sie jedoch hier finden: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/xml-instructions.html

In Bezug auf Ihre Frage, wo diese Datei leben soll: Sie gehen zu Recht davon aus, dass wir die Datei default.xml erweitern müssen, indem wir sie in unserem Thema Magento_Catalog/layout/default.xmloder erweiternMagento_Theme/layout/default.xml

Ich habe gerade versucht, genau den Code zu verwenden, den Sie angegeben haben, und hatte keine Probleme, den Vergleichsblock zu entfernen. Ich würde überprüfen, ob Sie Ihre Caches geleert haben und nichts in Ihrem Pub-Verzeichnis veröffentlichen müssen.

UPDATE 07.04.16:

Sie können Ihr Pub-Verzeichnis aktualisieren, indem Sie das pub/staticVerzeichnis manuell löschen und dann den folgenden Befehl ausführen:

setup:static-content:deploy
Tyler Craft
quelle
Hallo Tyler, ich verstehe deine erste Einstellung nicht. Was ist ein "Vergleichsreferenzcontainer"? Der von Ihnen angegebene Code wird nicht in /vendor/magento/module-catalog/view/frontend/layout/default.xml angezeigt. Ich habe die Datei an beiden von Ihnen vorgeschlagenen Speicherorten ausprobiert, aber sie funktioniert nicht. Können Sie sich bitte einen Grund vorstellen, warum das so sein könnte? Und schließlich, was meinst du damit, etwas in deinem Pub-Verzeichnis zu veröffentlichen? Sollte sich Magento nicht um alles in diesem Ordner kümmern? Tut mir leid, dass ich schwach
bin
Entschuldigung, ich habe vergessen, mich für Ihre Antwort zu bedanken, Tyler! Ich schätze Ihre Hilfe sehr ..
Jodaki
@jo Ich habe einige hinzugefügt
Tyler Craft
0

Wechseln Sie in Ihrem Themenordner zuerst zum Ordner Magento_Theme / layout .

Erstellen Sie dann den Ordner layout / override / base, fügen Sie die Datei default.xml des Herstellers hinzu und fügen Sie sie hinzu <referenceBlock name="catalog.compare.link" remove="true" />.

Dhaval
quelle
Keine Notwendigkeit zum Überschreiben, aktualisieren Sie einfach auf die neueste Version von Magento, verwenden Sie die Methode, die er bereits ausprobiert hat, und entfernen Sie möglicherweise einfach den Cache
Vlad Patru
0

Ich habe versucht, referenceContainer sidebar.additional von der Produktlistenseite zu entfernen . Ich habe die folgenden Verfahren durchgeführt.

  1. Ich habe gerade <referenceContainer name="sidebar.additional">aus \ vendor \ magento \ module-catalog \ view \ frontend \ layout \ default.xml kopiert
  2. Und leg es unter <body>. Der Code sollte <referenceContainer name="sidebar.additional" remove="true"></referenceContainer>in app \ design \ frontend \ theme \ theme-name \ Magento_Theme \ layout \ default.xml angezeigt werden.
TS Guhan
quelle