I want to set up my template so it will display different layout depending on what component is being used on current page. How to check for this?
4 Answers
For Joomla 3.x
While the code from the other answer will work, JRequest
is deprecated, therefore you should use the following:
$jinput = JFactory::getApplication()->input;
echo $jinput->get('option');
For example, if you are displaying an Article and use the above code, it will output com_content
For Joomla 2.5
We can check by getting the URL parameters, using the JRequest::getVar()
method and check for the option parameter.
jimport( 'joomla.environment.request' );
echo JRequest::getVar('option', '')
-
2
JRequest::getVar()
is deprecated. UseJFactory::getApplication()->input->get('option', '');
. Aug 25, 2014 at 19:04
Another approach is through the JRouter object:
JFactory::getApplication()->getRouter()->getVars()["option"]
Unsure if there is ever a practical difference between the JRouter value and the value returned through JInput.
Why not use this?
basename(JPATH_COMPONENT);
-
Welcome to JSE and thank you for contributing. Your post has been automatically flagged by the system as being potentially low-quality. When you have insights to offer, please post them with the intent to educate and empower the OP and researchers. Your answer effectively drops a function call on this page and nothing more. Please go to a bit more effort to explain how/why your advice works and/or why your advice is better than a pre-existing answer. If there are any known caveats to your advice, please add them too. Please take our tour, then edit your answer. Thanks again.– mickmackusa ♦Nov 22, 2020 at 22:37