14

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?

24

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

| improve this answer | |
9

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', '')

JRequest API Documentation

| improve this answer | |
  • 2
    JRequest::getVar() is deprecated. Use JFactory::getApplication()->input->get('option', '');. – Farahmand Aug 25 '14 at 19:04
1

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.

| improve this answer | |
0

Why not use this?

basename(JPATH_COMPONENT);

| improve this answer | |
  • 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 at 22:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.