domenica 16 novembre 2014

Magento - caricare un blocco statico tramite codice

Come caricare un blocco statico in un file phtml?

Per caricare un blocco statico all'interno di una pagina su Magento, potrebbe essere comodo effettuare direttamente una modifica all'interno di un file .phtml anzichè andare a modificare i layout XML.

Questa operazione può essere facilmente eseguita, dopo aver creato il blocco statico nel CMS.

Ad esempio, se vogliamo visualizzare il contenuto di un blocco che si chiama block_left_top possiamo utilizzare la seguente istruzione:
<?php echo Mage::app()->getLayout()->createBlock('cms/block')->setBlockId('block_left_top')->toHtml(); ?>
Vediamo insieme da cosa è composta:

  • Mage::app() mi permette di utilizzare il metodo statico app() della classe Mage, da cui partono tutte le chiamate al framework di Magento.
  • Mage::app() crea un oggetto app che tramite il metodo getLayout() crea un oggetto LAYOUT.
  • L'oggetto ottenuto tramite il metodo getLayout() può a sua volte utlizzare il metodo createBlock a cui passo il valore 'cms/block' per indicare che voglio che tipo di oggetto voglio utilizzare;
  • Il nuovo oggetto potrà poi assegnare il blocco statico all'oggetto Blocco creato per scegliere assegnare utilizzo li metodo setBlockId() a cui passerò come parametro l'identificatore del blocco, in questo caso ("block_left_top");
  • L'oggetto ottenuto può generare un output in HTML tramite appunto il metodo toHtml();
  • L'output generato può essere inserito in una variabile da utilizzare successivamente oppure stampato direttamente con echo;
Posso ottenere lo stesso risultato con un codice più compatto utilizzando il metodo statico getBlockSingleton che mi permette di creare direttamente un blocco, a cui poi assegnerò il tipo e l'identificatore prima di ottenere il rendering in formato HTML.

Nessun commento:

Posta un commento