Get current module, controller, action and router name in Magento

  • magento get current controller
  • magento get current controller name
  • magento get current controller action

It is very often when you need to access or check which module or controller name or action name or router name used in current request to Magento. This article will show you how to get these information Magento template / class files or in any where Mage namespace available

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();


Looking for improvement for your Magento Store?
Facebook Connector Extension
Product related article extension
Magento Offer popup on exit extension
Unlimited Slideshow Magento Extension
Light Checkout in One Step Magento Extension

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.


Comments Closed