Magento: aggiungere link alle pagine del CMS nel menù superiore

grey Magento: aggiungere link alle pagine del CMS nel menù superiore

Magento, come ho scritto più volte su questo blog, è un’ottima piattaforma e-commerce ma abbastanza ostica da personalizzare.
I moltissimi temi disponibili per Magento spesso risolvono problemi di natura pratica andando incontro alle nostre esigenze, ma non sempre si riesce a trovare un tema che ci soddisfi in tutto.
Se si vuole, ad esempio, utilizzare il classico menù orizzontale superiore per linkare pagine create col CMS dobbiamo operare modificando un po’ il codice.
In Magento 1.7 Community Edition dobbiamo modificare

app/design/frontend/default/NomeDelTuoTemplate/template/page/html/topmenu.phtml (oppure header.phtml oppure un nome che indichi la zona superiore del template)

cercando il codice

 <?php if($_menu): ?>
<div>
<ul id=”nav”>
<li><a href=”/”>Home</a><li>
<?php echo $_menu ?>
</ul>
</div>
<?php endif ?>

e sostituendolo con
 <?php if($_menu): ?>
<div>
<?php echo $this->getLayout()->createBlock(‘cms/block’)->setBlockId(‘navigazione’)->toHtml() ?>
</div>
<?php endif ?>
in sostanza chiediamo di farci caricare il blocco statico chiamato navigazione invece della variabile $_menu
Nota che ho tolto anche i tag <ul id=”nav”><ul>
Il blocco statico lo creeremo come sempre andando in CMS->Blocchi statici->Aggiungi un nuovo blocco (io l’ho chiamato ‘navigazione’)
Ecco il codice da inserire (non considerare la classe associata al primo list item)
grey Magento: aggiungere link alle pagine del CMS nel menù superiore
In questo modo nel menù superiore del template di Magento non si caricheranno, ad esempio come spesso accade, le categorie merceologiche ma le pagine del CMS specificate nel blocco statico ‘navigazione’.
Ho preferito aggiungere qui i tag <ul> della lista non ordinata perchè se inseriamo solo i punti non ordinati <li> l’editor aggiunge <ul></ul> autonomamente. Inoltre possiamo avere anche un controllo più stretto sulla classe da applicare alla lista.
via [Summation]