In questo tutorial ti spiegherò come aggiungere un attributo di testo personalizzato alla pagina della categoria.
Vediamo ora insieme come procedere!
Ah! Se non hai tempo di seguire tuta la guida puoi scaricare i file sorgenti, basta solo condividre il tutorial tramite i pulsanti social che trovi di seguito!
[sociallocker]
Scarica il Pack Gratuito!
[/sociallocker]
Come creare il modulo per aggiungere un attributo categoria
Per aggiungere un attributo personalizzato dobbiamo prima di tutto creare un modulo. Il nostro modulo lo chiameremo Magentiamo AttributoCategoria
Step 1. Creazione del modulo
Per prima, creiamo il file xml che permetterà a Magento di riconoscere il nuovo Modulo.
Creiamo quindi il file Magentiamo_AttributoCategoria.xml nella carella app/etc/modules/ e inseriamo all’interno il codice che segue:
[xml]
<?xml version="1.0"?>
<config>
<modules>
<Magentiamo_AttributoCategoria>
<active>true</active>
<codePool>community</codePool>
</Magentiamo_AttributoCategoria>
</modules>
</config>
[/xml]
Step 2. Configurazione dello script
Creiamo il file di configurazione del modulo in app/code/local/Magentiamo/AttributoCategoria/etc/
Ricordo che il percorso del modulo è così composto:
app/code/<code pool>/<name space>/<module name>/etc
<code pool> può essere
- core (contiene i file del core di Magento che non vanno mai toccati se non per documentarsi)
- local (contiene modulo sviluppati da terze parti)
- community (contiene moduli sviluppati dalla comunity)
<name space> è il nome del fornitore del modulo
<module name> è il nome del fornitore del modulo
Nel nostro caso metteremo il modulo in local, quindi il percorso del nostro modulo sarà: app/code/community/Magentiamo/AttributoCategoria/
Quindi, dicevamo… creiamo il file di configurazione config.xml del modulo in app/code/community/Magentiamo/AttributoCategoria/etc/config.xml e inseriamoci all’interno il codice che segue:
[xml]
<?xml version="1.0"?>
<config>
<!– Qui definiamo il la versione del modulo –>
<modules>
<Magentiamo_AttributoCategoria>
<version>0.0.1</version>
</Magentiamo_AttributoCategoria>
</modules>
<global>
<!– Qui definiamo le risorse per l’installazione dello script che aggiungerà gli attributi –>
<resources>
<aggiungi_attributo>
<setup>
<module>Magentiamo_AttributoCategoria</module>
<class>Mage_Catalog_Model_Resource_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</aggiungi_attributo>
<aggiungi_attributo_write>
<connection>
<use>core_write</use>
</connection>
</aggiungi_attributo_write>
<aggiungi_attributo_read>
<connection>
<use>core_read</use>
</connection>
</aggiungi_attributo_read>
</resources>
</global>
</config>
[/xml]
[Tweet “Come aggiungere attributi alle categorie in Magento – Guida + Codici + modulo free #magento”]
Come puoi vedere, il file di configurazione non è grande, ci sono solo due nodi: versione del modulo e le risorse per l’installazione di script che creerà un nuovo attributo.
Nel nodo abbiamo definito la classe per il nostro script di installazione che verrà utilizzato per l’estensione.
Lavorare con i metodi di questa classe ci aiuterà aiuta a creare, aggiornare e rimuovere l’attributo.
Questo nodo dice a Magento che lo script mysql deve trovarsi nella cartella con lo stesso nome (nel nostro percorso sarà app/code/community/Magentiamo/AttributoCategoria/sql/aggiungi_attributo/).
Step 3. Creazione lo script di installazione dell’attributo
Per creare l’attributo, dobbiamo creare il file di installazione nella cartella appena creata ‘add_category_attribute‘. Il nome del file sarà mysql4-install-X.X.X.php dove X.X.X è la versione del modulo definita nel file config.xml
[xml]
…
<Magentiamo_AttributoCategoria>
<version>0.0.1</version>
</Magentiamo_AttributoCategoria>
…
[/xml]
Quindi il nome del file sarà mysql-install-0.0.1.php in app/code/community/Magentiamo/AttributoCategoria/sql/aggiungi_attributo/
All’interno di questo file inseriemo il codice per creare l’attributo che verrà salvato nel database e mostrato nella pagina della categoria nel backend. In questo caso specifico, realizzeremo una Tab personalizzata dove andremo ad inserire l’attributo per tenerlo separato dal resto delle tab di default
[php]
<?php
$this->startSetup();
$this->addAttribute(
Mage_Catalog_Model_Category::ENTITY, ‘attributo_personalizzato’,
array(
// Qui definiamo il tab personalizzato
‘group’ => ‘Tab Personalizzata’,
‘input’ => ‘textarea’,
‘type’ => ‘text’,
‘label’ => ‘Attributo Personalizzato’,
‘backend’ => ”,
‘visible’ => true,
‘required’ => false,
‘visible_on_front’ => false,
‘global’ => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL
)
);
$this->endSetup();
[/php]
Step 4. Aggiorniamo la cache e controlliamo il risultato
Ora che abbiamo creato il modulo per installare un nuovo attributo nella pagina della categoria, dobbiamo Svuotare la cache di Magento.
Poi vai su Gestione Categorie e e tutto è andato per il verso giusto, troveremo l’Attributo personalizzato nel nuovo tab “Tab Personalizzata” come puoi vedere dalla screenshot che segue:
Step 5. Visualizzare l’attributo nel front-end
Ora che abbiamo fatto i passaggi principali, non ci resta altro che mostrare l’attributo nel frontend. Apriamo quindi il file app/design/frontend/<package> /<theme>/template/catalog/category/view.phtml e inseriamo il codice che segue, il quale genererà l’attributo.
[php]
…
<?php if($_customAttribute = $this->getCurrentCategory()->getAttributoPersonalizzato()): ?>
<?php echo $_helper->categoryAttribute($_category, $_customAttribute, ‘attributo_personalizzato’) ?>
<?php endif; ?>
…
[/php]
Ancora una volta, se tutto va per il verso giusto, aggiorniamo la pagina della categoria nel frontend et voilà! L’attributo compare!
Ovviamente devi inserire un valore nell’admin all’interno di una categoria specifica affinché venga visualizzato.
Step 6. Come aggiornare l’attributo e il modulo
Mettiamo ora che vogliamo cambiare il tipo di attributo da testo a textarea e inserirci anche l’editor WYSIWYG. Per farlo dobbiamo creare un file come quello di install creato al punto 3, ma che aggiorna l’attributo precedente.
Questo è possibile grazie alla possibilità di poter aggiornare la versione del modulo e gli sript in esso contenuti. il file che dobbiamo creare si chiamerà mysql4-upgrade-0.0.1-0.0.2.php, dove 0.0.1 è la versione precedente del modulo, e 0.0.2 è la versione che aggiorneremo.
Creiamo quindi il file mysql4-upgrade-0.0.1-0.0.2.php in app/code/community/Magentiamo/AttributoCategoria/sql/aggiungi_attributo/ con il codice che segue:
[php]
<?php
$this->startSetup();
$this->addAttribute(
Mage_Catalog_Model_Category::ENTITY, ‘attributo_personalizzato’,
array(
‘group’ => ‘Tab Personalizzata’,
‘input’ => ‘textarea’,
‘type’ => ‘text’,
‘label’ => ‘Attributo Personalizzato’,
‘backend’ => ”,
‘visible’ => true,
‘required’ => false,
‘wysiwyg_enabled’ => true,
‘visible_on_front’ => true,
‘is_html_allowed_on_front’ => true,
‘global’ => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));
$this->endSetup();
[/php]
Come puoi notare abbiamo cambiato
[php]
…
// DA
‘type’ => ‘text’,
// A
‘type’ => ‘textarea’,
…
[/php]
E abbiamo aggiunto
[php]
…
‘wysiwyg_enabled’ => true,
…
[/php]
che mostrearà l’editor visuale nella textarea.
Ora, cambiamo la versione del modulo nel file config.xml
in modo tale da far capire a Magento che è stato aggiornato e che deve lanciare lo script di aggiornamento.
[xml][/xml]
… <modules> <modules> <Magentiamo_AttributoCategoria> <version>0.0.2</version> </Magentiamo_AttributoCategoria> </modules> …
[xml][/xml]
Aggiorniamo quindi la cache e torniamo su Gestione Categorie.
Ora se clicchaimo su Tab Personalizzata, vedremo la trasformazione dell’attributo con l’aggiunta dell’editor WYSIWYG: come puoi vedere dall’immagine seguente:
Proviamo quindi ad inserire un’immagine:E aprendo la pagina nel frontend vedremo l’immagine inserita:
Scarica il modulo
Per facilitarti il lavoro, ho creato anche il modulo pronto da scaricare, ti chiedo solo di condividere l’articolo e il download verrà abilitato.
[sociallocker]
Scarica il Pack Gratuito!
[/sociallocker]
Conclusioni
Non è semplicissimo estendere le potenzialità delle categorie di Magento ma in questo modo possiamo personalizzare secondo le esigenze dei clienti la pagina delle categori einserendo nuovi attributi personalizzati.
Grazie per aver letto questo tutorial, spero possa esserti stato di aiuto!