Ottenere il nome del controller con la classe Mage_Core_Model_Url
Verificare il nome del controller attivo può essere utile per far comparire un output diverso a seconda delle situazioni.Ad esempio immaginiamo di voler attribuire una classe CSS ad un tag a seconda che ci troviamo sulla home page o nella pagina del prodotto.
Verifica del controller nei file template (.phtml)
Possiamo ottenere il nome del controller che sta utilizzando Magento in questo modo:$this->getRequest()->getControllerName();Quindi se ci troviamo sulla home page otterremo "index", se ci troviamo nella scheda prodotto otterremo "product".
In questo modo avremo:
$controller=$this->getRequest()->getControllerName();L'oggetto Request può anche restituire altre utili informazioni, ad esempio:
if( $controller=="index" ):
//sono sulla home page quindi
$class="stile1";
elseif( $controller=="product" ):
//sono nella scheda prodotto
$class="stile2";
endif;
echo '<span class="'.$class.'">Nome prodotto</span>
//nome della funzione usata dal controller
$this->getRequest()->getActionName();
//indirizzo della route corrente
$this->getRequest()->getRouteName();
//nome del modulo corrente
$this->getRequest()->getModuleName();
Richiamare il controller all'interno delle classi
Per ottenere le informazioni sopra descritte sarà quindi necessario utilizzare Mage::app() al posto di $this.
La classe che ci viene in aiuto per ottenere queste informazioni è Mage_Core_Model_Url. Possiamo verificare il contenuto dell'oggetto con un print_r():
You can explore all requests with print_r.
echo "<pre>";
print_r(Mage::app()->getRequest());
echo "</pre>";
Nessun commento:
Posta un commento