Problemi con l'override del file di layout in Magento 2


9

Sto usando Magento 2.02 Ho creato il mio tema chiamato 'cff', basato su Luma.

Sto cercando di rimuovere il catalog.compare.linkbloccotop.links

Il layout per questo blocco sembra essere definito in

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

E se aggiungo

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

in quel file, quindi, come previsto, il testo "Confronta prodotti" scompare dal blocco top.links.

Tuttavia, so che non dovrei cambiare i file del fornitore. Quindi sto cercando la cartella corretta in cui creare il mio default.xmlfile per posizionare il codice di rimozione:

Ho cercato ovunque nella documentazione e online, ma non riesco a trovare queste informazioni. Ho provato diverse posizioni, nessuna delle quali funziona. Ho pensato che questo dovrebbe funzionare, ma neanche:

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

Per favore qualcuno può dirmi dove dovrebbe andare il layout di override?

Questo è il codice all'interno del mio layout principale 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>

Prima di tutto si prega di aggiornare all'ultima versione di Magento2 (2.1.5) e dovrebbe funzionare normalmente. anche se si è in ambiente di sviluppo NON utilizzare la distribuzione di contenuti statici, ovvero per la produzione, e per lo sviluppo è necessario utilizzare collegamenti simbolici. Inoltre, non dimenticare di rimuovere / aggiornare la cache "php bin / magento cache: flush" nella radice del tuo magento o dall'amministratore
Vlad Patru

Risposte:


1

Potresti provare a rimuovere il contenitore di riferimento di confronto: compare-link-wrapper

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

C'è una piccola documentazione sulla rimozione degli elementi tramite il layout xml ma puoi trovarla qui: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/xml-instructions.html

Per quanto riguarda la tua domanda su dove deve risiedere quel file: hai ragione nel ritenere che dobbiamo estendere default.xml estendendolo nel nostro tema Magento_Catalog/layout/default.xmloMagento_Theme/layout/default.xml

Ho appena provato a utilizzare esattamente lo stesso codice che hai fornito e non ho avuto problemi a rimuovere il blocco di confronto. Verificherei di aver cancellato la cache e di non dover pubblicare nulla nella directory del tuo pub.

AGGIORNAMENTO 4/7/16:

È possibile aggiornare la directory del pub eliminando manualmente la pub/staticdirectory e quindi eseguendo il comando:

setup:static-content:deploy

Ciao Tyler, non capisco la tua prima condanna. cos'è un "contenitore di riferimento di confronto"? il codice fornito non viene visualizzato in /vendor/magento/module-catalog/view/frontend/layout/default.xml. Ho provato il file in entrambe le posizioni che suggerisci ma non funziona. Per favore, puoi pensare a una ragione per cui potrebbe essere? E infine, cosa intendi per "pubblicare qualcosa nella tua directory pub? Magento non dovrebbe occuparsi di tutto in quella cartella? Mi dispiace essere debole, la curva di apprendimento è ripida e sanguinosa da queste parti ...
Jodaki,

Scusa, ho dimenticato di dire grazie per la tua risposta Tyler! Apprezzo molto il tuo aiuto ..
Jodaki,

@jo Ne ho aggiunti alcuni
Tyler Craft

0

Nella cartella del tema vai prima alla cartella Magento_Theme / layout .

quindi creare la cartella layout / override / base e aggiungere il file default.xml dal fornitore e aggiungere <referenceBlock name="catalog.compare.link" remove="true" />.


non è necessario eseguire l'override, basta aggiornare all'ultima versione di Magento utilizzare il metodo che ha già provato e forse semplicemente rimuovere la cache
Vlad Patru

0

Ho provato a rimuovere referenceContainer sidebar.additional dalla pagina di elenco dei prodotti. Ho fatto le seguenti procedure.

  1. Ho appena copiato <referenceContainer name="sidebar.additional">da \ vendor \ magento \ module-catalog \ view \ frontend \ layout \ default.xml
  2. E mettilo sotto <body>. Il codice dovrebbe essere visualizzato <referenceContainer name="sidebar.additional" remove="true"></referenceContainer>in app \ design \ frontend \ theme \ theme-name \ Magento_Theme \ layout \ default.xml.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.