In questo tutorial, esploreremo i blocchi di Magento, uno dei componenti essenziali dell'architettura di Magento. Vedremo la differenza tra blocchi strutturali e contenuti. Mostrerò anche come è possibile creare blocchi personalizzati a livello di codice.
Nell'architettura Magento, un "Blocco" è uno dei primi elementi di classe nella struttura dei layout di Magento. Ogni pagina in Magento è decorata dal file "Layouts" e il contenuto è riempito dai "Blocchi" dei diversi moduli. I blocchi di Magento sono un modo davvero potente e flessibile per collegare i tuoi contenuti ai layout già esistenti. D'altra parte, è anche possibile utilizzare i file XML di layout per rimuovere o riposizionare facilmente eventuali blocchi esistenti.
Non sorprende che, considerando la flessibilità dell'architettura Magento, potresti sviluppare i tuoi blocchi utilizzando un modulo personalizzato in Magento. Ad esempio, vorresti inserire un paio di prodotti speciali per la prossima stagione festiva e desideri visualizzarli in prima pagina. In tal caso, è possibile eseguire facilmente l'attività implementando un blocco personalizzato. E sì, è l'obiettivo principale di questo tutorial!
Prima di passare alla nostra missione di blocco personalizzato, vorrei spiegare la differenza tra blocchi strutturali e di contenuto. Diamo una rapida occhiata a ciascun tipo di blocco.
Potremmo dire che "Structural Blocks" sono i contenitori che contengono i "Content Blocks". I blocchi strutturali stessi non hanno alcun contenuto effettivo da visualizzare, ma a loro volta visualizzano i blocchi di contenuti alla fine. Come suggerisce il nome, sono usati per strutturare il contenuto di tutta la pagina.
Ad esempio, "Intestazione", "Piè di pagina", "Sinistra" e "Destra" sono blocchi strutturali in Magento. I "blocchi di contenuti" sono assegnati alle diverse posizioni strutturali del layout della pagina Magento, che a sua volta mostra il contenuto reale dei blocchi di contenuti.
I "blocchi di contenuti" sono la vera potenza di fuoco, che genera il contenuto reale per il display. Come abbiamo appena discusso nella sezione precedente, è necessario assegnare il blocco del contenuto a uno dei blocchi strutturali per il display front-end. Ci sono altri modi che ci permettono di inserire i blocchi di contenuti usando i codici brevi, ma ne vedremo di più in seguito.
I blocchi di contenuti possono essere di qualsiasi forma, da un semplice blocco di contenuto statico a un elenco dei prodotti più recenti sulla home page! In effetti, la maggior parte del contenuto è generata dai blocchi di contenuti distribuiti su tutti i diversi moduli di Magento.
Quindi, a questo punto, dovresti capire la differenza fondamentale tra i due tipi di blocchi in Magento. Quindi saltiamo dentro e iniziamo lo sviluppo del blocco personalizzato!
Svilupperemo un modulo Magento personalizzato di base per lo sviluppo del nostro blocco personalizzato. Il nostro blocco personalizzato sarà un semplice blocco che mostra i prodotti più recenti disponibili nel negozio.
Presumo che tu abbia familiarità con la struttura di base e le convenzioni dei file del modulo Magento. Ora, vediamo la struttura del file che dobbiamo implementare per il nostro blocco personalizzato.
app / etc / modules / Envato_All.xml
: È un file utilizzato per abilitare il nostro modulo personalizzato.app / code / local / Envato / Recentproducts / etc / config.xml
: È un file di configurazione del modulo.app / code / local / Envato / Recentproducts / Modello / Recentproducts.php
: È un file di modello che fornisce l'array dei prodotti più recenti.app / code / local / Envato / Recentproducts / blocchi / Recentproducts.php
: È il file di blocco principale per il nostro blocco personalizzato.app / design / frontend / default / default / template / recentproducts / recentproducts.phtml
: È un file modello che contiene le informazioni relative a XHTML.Secondo le convenzioni di Magento, per prima cosa dobbiamo creare il file di abilitazione del modulo. Creare app / etc / modules / Envato_All.xml
e incollare il seguente contenuto in quel file. Noi abbiamo usato Envato
come il nostro spazio dei nomi del modulo e Recentproducts
come il nome del nostro modulo. Abiliterà il nostro Recentproducts
modulo per impostazione predefinita.
vero Locale
Creare app / code / local / Envato / Recentproducts / etc / config.xml
e incollare i seguenti contenuti in quel file. Abbiamo appena dichiarato il modello e i nomi delle classi di blocchi secondo le convenzioni del file XML del modulo Magento.
1.0 Envato_Recentproducts_Block Envato_Recentproducts_Model
Ora crea il file del modello su app / code / local / Envato / Recentproducts / Modello / Recentproducts.php
. Incolla i seguenti contenuti nel file del modello.
getCollection () -> addAttributeToSelect ('*') -> setOrder ('entity_id', 'DESC') -> setPageSize (5); restituire $ prodotti;
Quindi, come puoi vedere, abbiamo appena dichiarato un metodo getRecentProducts
che restituirà i cinque prodotti aggiunti più di recente.
Inoltre, crea il app / code / local / Envato / Recentproducts / blocchi / Recentproducts.php
file e inserire il seguente codice in quel file.
getRecentProducts (); foreach ($ prodotti come $ prodotto) $ arr_products [] = array ('id' => $ product -> getId (), 'name' => $ product -> getName (), 'url' => $ prodotto -> getProductUrl (),); return $ arr_products;
Nel contesto del tutorial, è uno dei file più importanti che stiamo cercando! Sì, è un file relativo al nostro blocco personalizzato.
In questo file, chiameremo il nostro metodo di modello getRecentProducts
caricare la matrice dei prodotti usando il Mage :: getModel
bellezza di Magento. Successivamente, faremo scorrere i dati e configurare il $ arr_products
array che sarà necessario nel nostro file modello di blocco.
Infine, avremo bisogno di creare un file modello su app / design / frontend / default / default / template / recentproducts / recentproducts.phtml
. Contiene il codice XHTML relativo alla visualizzazione dei prodotti.
getRecentProducts (); ?>Prodotti recenti
">
Per prima cosa, stiamo recuperando l'array dei prodotti usando il getRecentProducts
metodo del blocco. Una volta ottenuto ciò, semplicemente ripetiamo i dati e prepariamo il codice XHTML per il nostro blocco. E 'così semplice!
Abbiamo terminato con il nostro modulo di blocco personalizzato, quindi nella prossima sezione vedremo come utilizzare i codici funzione del blocco per visualizzare il nostro blocco nelle pagine front-end.
Come discusso in precedenza, i blocchi di contenuto vengono visualizzati assegnandoli a uno dei blocchi strutturali. E sì, puoi assegnare i blocchi personalizzati nello stesso modo in cui sono assegnati gli altri blocchi principali in Magento, sia per file di layout che per pagine CMS.
Per inserire il blocco personalizzato utilizzando il file di aggiornamento del layout, è possibile utilizzare il seguente codice.
D'altra parte, se vuoi visualizzare il tuo blocco personalizzato usando la pagina CMS, ecco il codice che dovresti usare.
block type = "recentproducts / recentproducts" name = "recentproducts_recentproducts" template = "recentproducts / recentproducts.phtml"
Vediamo rapidamente come appare nel front-end quando è inserito attraverso una delle pagine CMS. Accedi al tuo back-end Magento e vai a CMS> Pagine, e aggiungi una nuova pagina CMS usando Aggiungi nuova pagina. Inserisci le informazioni richieste e incolla il codice funzione del blocco come mostrato nello screenshot seguente.
Salva la pagina e vai al front-end per vedere come appare!
Sembra fantastico, vero? Quindi è tutto per ora, e tornerò con alcune cose più eccitanti. Ama ascoltare i tuoi pensieri usando il feed qui sotto.