Magento: How to get controller, module, action and router name?
You can easily get controller name, action name, router name and module name in template file or in any class file.
IN TEMPLATE FILES
$this->getRequest() can be used in template (phtml) files.
Here is the code:
/** * get Controller name */ $this->getRequest()->getControllerName(); /** * get Action name, i.e. the function inside the controller */ $this->getRequest()->getActionName(); /** * get Router name */ $this->getRequest()->getRouteName(); /** * get module name */ $this->getRequest()->getModuleName();
IN CLASS FILES
$this might not work in class (php) files. In this case, you need to use Mage::app().
Here is the code:
/** * get Controller name */ Mage::app()->getRequest()->getControllerName(); /** * get Action name, i.e. the function inside the controller */ Mage::app()->getRequest()->getActionName(); /** * get Router name */ Mage::app()->getRequest()->getRouteName(); /** * get module name */ Mage::app()->getRequest()->getModuleName();
The above functions (getControllerName, getActionName, getRouteName, getModuleName) are present in the class Mage_Core_Model_Url.
You can explore all requests with print_r.
echo "<pre>";
print_r(Mage::app()->getRequest());
echo "</pre>";
Hope this helps. Thanks.
Related posts:
- Magento: Block Controller Model Helper Override
- Magento: Set title, keywords and description in your module
- Magento: Admin Controller Override
- Magento: Redirect Customer to Login page if not logged in
- Magento: Fatal error: Call to a member function setSaveParametersInSession() on a non-object
- Magento: Access denied in admin of custom module
- Magento: How to change or reorder top links?
- Magento: Upgrading mysql setup of a module
- jQuery: Grey out background and preview image as popup
- PHP 5.3 & Magento Older Versions: How to use them together?
