Saturday, February 7, 2009

Hiding a menu once logged in

Have you ever wanted to hide one of your menus if your users have logged on? The following small template hack will hide your menu once your user has logged on.

The idea behind this is to actually load a particular position (the menu position) only if the user has not logged in:

Joomla 1.0

if( !$my->id )mosLoadModules ( 'left' );

and should be placed in the index.php of the template you are using (/templates//index.php). The code will hide all modules which are assigned to the left position. If you only want to hide your menu item, you should create an additional position in your template (e.g. hidingmenu), assign your hideable menu to this position and then hide that position only.

if( !$my->id )mosLoadModules ( 'hidingmenu' );

Joomla 1.5

This has changed for J1.5

$user =& JFactory::getUser();
$user_id = $user->get('id');

This returns the user id of the user. Therefore the code to do this is check whether the current user has a valid id (i.e. they are logged), if not load the module:

$user =& JFactory::getUser();
$user_id = $user->get('id');
if (!$user_id)
{
?>
}
?>


No comments:

Post a Comment