Home About Us Developer Blogs Joomla Development How to use two layouts from same view for two submenus
How to use two layouts from same view for two submenus
Tuesday, 18 December 2012 18:44
Have you ever came across a situation, when working on a joomla component- you need two sub-menus to be shown in admin backend which belong to same view and different layouts?
If yes, then you must have noiced that this does not work as expected. 

Here's the solution for the same.

Suppose there are two submenus - this is the PHP code to add two submenus -
$reports=true;
JSubMenuHelper::addEntry(JText::_('COM_JGIVE_REPORTS'),'index.php?option=com_jgive&view=reports&layout=default',$reports);
JSubMenuHelper::addEntry(JText::_('COM_JGIVE_PAYOUT_REPORTS'),'index.php?option=com_jgive&view=reports&layout=payouts',$reports);
As you can see the 'view' for 2 submenus is same and 'layouts' are different
index.php?option=com_jgive&view=reports&layout=default
index.php?option=com_jgive&view=reports&layout=payouts

So when you browse to one of above mentioned views - you will see both submenus as active as shown in image below -

both-submenus-active






TO fix this you will need to add some jquery code to not show other submenu as active.

FILE - view=reports&layout=default
$document=JFactory::getDocument();
//override active menu class to remove active class from other submenu
$menuCssOverrideJs="$(document).ready(function()
{
$('ul>li> a[href$=\"index.php?option=com_jgive&view=reports&layout=payouts\"]:last').removeClass('active');
});";
$document->addScriptDeclaration($menuCssOverrideJs);

FILE - view=reports&layout=payouts
$document=JFactory::getDocument();
//override active menu class to remove active class from other submenu
$menuCssOverrideJs="$(document).ready(function(){
$('ul>li> a[href$=\"index.php?option=com_jgive&view=reports&layout=default\"]:last').removeClass('active');
});";
$document->addScriptDeclaration($menuCssOverrideJs);
After adding above code in those two layouts you will see that only the current submenu is shown as active.
one-submenu-active
It works well on joomla 2.5.x. :)

blog comments powered by Disqus
 

Smartphone Applications

Newsletter Signup

Jump on to our Newsletter & stay updated on News on our Extensions, New Releases & Offers !