You can easily get controller name, action name, router name and module name in any template file or 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();
/**
* get namespace & module name
* for example, if you are in checkout page
* then, this will return Mage_Checkout
*/
$this->getRequest()->getControllerModule();
`
IN CLASS FILES
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();
/**
* get namespace & module name
* for example, if you are in checkout page
* then, this will return Mage_Checkout
*/
Mage::app()->getRequest()->getControllerModule();
`
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());
Hope this helps. Thanks.