Magento – get controller name, action name, router name and module name in template file or in any class file

  • by

From Mukesh Chapagain's Blog (http://blog.chapagain.com.np/) - Copied below in case of Link Death

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>";

Leave a Reply

Your email address will not be published.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

This site uses Akismet to reduce spam. Learn how your comment data is processed.