2011-10-14 11 views
10

Qualcuno sa come posso rimuovere i collegamenti dal menu principale utilizzando local.xml.Rimozione dei collegamenti dal menu principale utilizzando local.xml

Nel checkout.xml di default si trova:

<reference name="top.links"> 
    <block type="checkout/links" name="checkout_cart_link"> 
     <action method="addCartLink"></action> 
     <action method="addCheckoutLink"></action> 
    </block> 
</reference> 

e vorrei rimuovere l'addCartLink dal menu in alto. Un modo sarebbe semplicemente modificare il file checkout.xml, ma penso che sarebbe una soluzione molto migliore solo per aggiungere la rimozione al mio file local.xml, ma non riesco a trovare il nome giusto da rimuovere. Se faccio un

<layout> 
    <default> 
     <remove name="top.links" /> 
    </default> 
</layout> 

che fa rimuovere l'intero menu, ma come faccio a rimuovere solo una singola voce dal menu utilizzando locale.xml?

Sto usando Magento 1.6

+2

L'estensione gratuita '[Frontend Links Manager] (http://www.magentocommerce.com/magento-connect/MagePsycho/extension/7905/frontend_links_manager)' consente di eseguire questa operazione dal pannello di controllo. – ehartwell

risposta

15

È possibile farlo in local.xml:

<default> 
    <reference name="top.links"> 
    <action method="removeLinkByUrl"> 
     <url helper="checkout/url/getCartUrl" /> 
    </action> 
    </reference> 
</default> 

E 'stato anche la mia domanda How can i get the full path in local.xml file

+0

L'estensione gratuita '[Frontend Links Manager] (http://www.magentocommerce.com/magento-connect/MagePsycho/extension/7905/frontend_links_manager)' consente di eseguire questa operazione dal pannello di controllo. – ehartwell

+0

FYI per chi come me ha trovato questo 2 anni dopo: questo codice è per 1.3.x e sembra causare un errore nella 1.8 La risposta di Nikhil_K_R ha funzionato per me http://stackoverflow.com/a/12817619/1344515 – Yumecosmos

4

Dovrebbe essere:

<layout> 
    <default> 
     <reference name="top.links"> 
      <reference name="checkout_cart_link"> 
       <remove name="top-link-cart" /> 
      </reference> 
     </reference> 
    </default> 
</layout> 

ma si può sempre copiare il checkout.xml nel vostro tema locale e modificarlo.

+0

Che non ha funzionato - (So che posso copiare e modificare il checkout.xml ma sto cercando di evitare tutto ciò che copia + modifica di file diversi solo per controllare i menu.) Ma forse dovrò farlo invece. – MTilsted

+2

Questo codice segnerà il blocco con il nome "top-link-cart" con l'attributo remove = "1", il che significa che non verrà reso. –

+0

Sì, ma non voglio rimuovere un blocco. collegamento all'interno del blocco – MTilsted

9
<default> 
<reference name="top.links"> 
    <block type="wishlist/links" name="wishlist_link"/> 
    <action method="removeLinkBlock"><blockName>wishlist_link</blockName></action> 
</reference> 
</default> 

Aggiungi questa parte per il vostro local.xml. Scrivendo questo sotto il valore predefinito lo rimuoverà da ogni pagina. Quindi regolalo di conseguenza. Spero che questo ti possa aiutare.

+0

quali forti modifiche hanno fornisci (solo da piccolo a maiuscolo) –

3
<default> 
<reference name="top.links"> 
    <remove name="wishlist_link"/> 
</reference> 
</default> 

Aggiungi questa parte per il vostro local.xml. Per me va bene. Basta usare "Rimuovi". Questo è tutto.

+0

Grazie. Può anche essere utile per rimuovere gli elementi relativi al carrello. – Zsolti

0

Hi Questo evita la carrello e nella verifica collegamenti da top.links a 1.9.3

<reference name="top.links"> 
    <action method="removeLinkByUrl"> 
    <url helper="checkout/url/getCartUrl" /> 
    </action> 
    <action method="removeLinkByUrl"> 
    <url helper="checkout/url/getCheckoutUrl" /> 
    </action> 
</reference> 

basate sulla migliore risposta accettata sopra, ma solo nel caso in cui qualcuno vuole rimuovere sia

1

È può rimuovere un collegamento via l'aggiornamento di layout sia

  1. con il suo nome | chiamando removeLinkBlock ($ blockName)
  2. dal suo url | chiamando removeLinkByUrl ($ url)
  3. sovrascrivere il file erano è stato aggiunto

Le funzioni vivono in Mage_Page_Block_Template_Links

Opzione 1

La funzione removeLinkByUrl() ha bisogno di un URL, parametro che sarà solitamente fornito da una funzione di supporto nella rispettiva estensione.Basta prendere lì e si può usare qualcosa come

<reference name="top.links"> 
     <action method="removeLinkByUrl"><url helper="customer/getRegisterUrl"/></action> 
    </reference> 

Nel caso di cui sopra customer è il nome di estensioni, mentre getRegisterUrl è la funzione della classe di supporto.

Se l'interno ma non esegue alcuna funzione che restituisce un link potete provare a seguire

<reference name="top.links"> 
    <action method="removeLinkByUrl"><url>ADD_THE_DYNAMIC_LINK_HERE</url></action> 
</reference> 

Opzione 2

Se il collegamento è stato aggiunto con un nome, come

<reference name="top.links"> 
    <block type="wishlist/links" name="wishlist_link" /> 
    <action method="addLinkBlock"><blockName>wishlist_link</blockName></action> 
</reference> 

puoi usare solo

<reference name="top.links"> 
    <remove name="wishlist_link"/> 
</reference> 

o

<default> 
<reference name="top.links"> 
    <block type="wishlist/links" name="wishlist_link"/> 
    <action method="removeLinkBlock"><blockName>wishlist_link</blockName></action> 
</reference> 
</default> 

Opzione 3

Se il link non è stato aggiunto con un nome e un URL hardcoded non funziona per qualche motivo si può solo andare avanti e copiare i moduli layout.xml nella cartella tema personalizzata e rimuovere le linee in cui è stato aggiunto il collegamento.

Problemi correlati