2011-10-18 11 views
5

Una domanda davvero semplice con (scommetto) una risposta molto semplice ... Voglio rimuovere una delle schede delle informazioni sul prodotto dalla mia pagina di visualizzazione del prodotto. Voglio rimuovere la scheda che mostra gli attributi, ma piuttosto che commentarla in catalog.xml Voglio rimuoverla correttamente tramite local.xml.Magento - Rimuovi la scheda dalla vista prodotto utilizzando local.xml

<action method="addTab" translate="title" module="catalog"> 
<alias>additional</alias><title>Additional Information</title> 
<block>catalog/product_view_attributes</block> 
<template>catalog/product/view/attributes.phtml</template> 
</action> 

ho pensato che ci potrebbe essere un metodo removeTab, ma che non ha funzionato. C'è anche method = "unsetChild", ma non riesco a vedere come sceglierei quell'elemento specifico in quanto non c'è un nome definito nell'XML.

Qualsiasi idea sarebbe molto apprezzata.

+0

Non puoi farlo in 'local.xml'. L'xml locale non appartiene ai file di aggiornamento del layout. – Zyava

+0

Mi riferisco al file local.xml creato per temi personalizzati, che viene utilizzato per gli aggiornamenti del layout. –

+0

Siamo spiacenti, non sapeva che i temi personalizzati hanno anche il file local.xml. – Zyava

risposta

10

In base alla mia lettura di Mage_Catalog_Block_Product_View_Tabs::addTabs(), si dovrebbe essere in grado di rimuovere il blocco di essere reso con una delle seguenti:

<!-- language: xml --> 
<catalog_product_view> 
    <reference name="product.info.tabs"> 
     <action method="unsetChild"> 
      <child>additional</child> 
     </action> 
    </reference> 
</catalog_product_view> 

Oppure:

<catalog_product_view> 
    <remove name="additional" /> 
</catalog_product_view> 

La ragione per cui io credo questi funzionerà è che addTab() prende semplicemente gli argomenti e li usa per creare un'istanza di blocco come figlio del blocco padre della scheda.

Il commento di Zyava non è corretto, come presumo tu sappia. C'è una differenza tra app/etc/local.xml (un file di configurazione) e il local.xml esplicitamente caricato dell'ultimo dalle impostazioni di progettazione.

+0

Grazie Ben, funziona perfettamente. –

2

Sto usando il mio modulo layout adminhtml XML per aggiungere o rimuovere le schede (si potrebbe usare local.xml del vostro tema, sulla base di questi passaggi con un po 'di tweakking.)

In primo luogo è necessario dichiarare la vostra aggiornamenti di layout (in modulo config.xml) come la seguente:

<adminhtml> 
    <layout> 
     <updates> 
      <mymodule> 
       <file>mymodule.xml</file> 
      </mymodule> 
     </updates> 
    </layout> 
</adminhtml> 

Poi, nel mymodule.xml, aggiungere il seguente (qui, sto usando la maniglia di amministrazione pagina di visualizzazione ordine)

<adminhtml_sales_order_view> 
    <reference name="sales_order_tabs"> 
     <action method="removeTab"> 
      <name>order_shipments</name> 
     </action> 
     <action method="addTabAfter"> 
      <name>order_shipments_mymodule</name> 
      <block>mymodule/adminhtml_order_shipments</block> 
      <after>order_creditmemos</after> 
     </action> 
     <action method="addTab"> 
      <name>order_receipts</name> 
      <block>mymoduled/adminhtml_order_recp</block> 
     </action> 
    </reference> 
</adminhtml_sales_order_view> 

Spero che questo aiuti !! (Non dimenticare di revocare questa soluzione)

Problemi correlati