Magento è costruito su un modello completamente modulare che dà grande scalabilità e flessibilità per il tuo negozio. Durante la creazione di un tema, si sono dotati di molti blocchi di contenuto che è possibile inserire in blocchi strutturali.
Magento offre alcuni blocchi strutturali di default e molti blocchi di contenuto. Questo articolo descrive che cosa si deve fare per creare nuovo blocco strutturale personalizzato.
Cosa sono i blocchi strutturali?
Sono i blocchi capogruppo di blocchi di contenuto e servono per posizionare i suoi blocchi di contenuti all’interno di un contesto pagina del negozio. I blocchi strutturali magento di default sono i seguenti:
– Header
– Left column
– Right column
– Content
– Footer
Il nostro obiettivo è quello di creare un nuovo blocco strutturale chiamato “newreference”.
Fase 1 : il nome del blocco strutturale
Aprire il file di layout/page.xml nella cartella del tema attivo . All’interno troverete linee come :
<block type=”core/text_list” name=”left” as=”left”/>
<block type=”core/text_list” name=”content” as=”content”/>
<block type=”core/text_list” name=”right” as=”right”/>
Cerchiamo di imitare questo e aggiungere una nuova linea da qualche parte dentro lo stesso tag blocco .
<block type=”core/text_list” name=”newreference” as=”newreference”/>
Ora abbiamo definito a Magento il nuovo blocco strutturale con il nome di ” newreference ” .
Fase 2 : Dire a Magento dove posizionare il blocco
Andiamo nella cartella template/ page folder nella nostra cartella del tema attivo . Si notano diversi layout. Supponiamo che vogliamo che il nuovo blocco strutturale venga visualizzate solo nelle pagine che utilizzano il layout a 2 colonne con la barra laterale di destra . In tal caso dovremmo aprire il file 2columns-right.phtml.
Supponiamo che vogliamo collocare il blocco ” newreference ” sopra il footer di pagina . In questo caso , il nostro file aggiornato potrebbe essere il seguente :
<div
class
=
"main-container col2-right-layout"
>
<div
class
=
"main"
>
<?php
echo
$this
->getChildHtml(
'breadcrumbs'
) ?>
<div
class
=
"col-main"
>
<?php
echo
$this
->getChildHtml(
'global_messages'
) ?>
<?php
echo
$this
->getChildHtml(
'content'
) ?>
</div>
<div
class
=
"col-right sidebar"
><?php
echo
$this
->getChildHtml(
'right'
) ?></div>
</div>
<div><?php
echo
$this
->getChildHtml(
'newreference'
) ?></div>
</div>
Abbiamo il blocco posizionato correttamente, ma ancora non si visualizza nulla sul frontend del sito. Dobbiamo popolare il nuovo blocco con qualcosa. Quindi creiamo un nuovo file
con il seguente contenuto:
<h1 style=”background-color:yellow”>Hello New Reference!</h1>
<reference name=”newreference”>
<block type=”core/template” name=”newReferenceBlock” template=”newReference.phtml” />
</reference>
<block type=”core/template” name=”newReferenceBlock” template=”newReference.phtml” />
Step 4: Aggiungi nuovo riferimento in modo corretto!
Per non modificare i file core di Magento. ripristiniamo i cambiamenti nella page.xml e si può creare il file local.xml.
All’interno del file local.xml inseriamo qualcosa di simile a questo:
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
layout
>
<
default
>
<
reference
name
=
"root"
>
<
block
type
=
"core/text_list"
name
=
"newreference"
as
=
"newreference"
translate
=
"label"
>
<
label
>New Reference</
label
>
</
block
>
</
reference
>
<
reference
name
=
"newreference"
>
<
block
type
=
"core/template"
name
=
"newreferenceblock"
template
=
"newreference.phtml"
/>
</
reference
>
</
default
>
</
layout
>