Forums

How to not display a Form if the user is not registered?

gg4j 19 Dec, 2008
Hi guys,
I need to hide a form if the user is not registered.

I need to do it with code, cause the form is not a published page but accessible through a fake select form, that act as a menu, launching a link at the different options.

I was thinking a check with the userID, if the userID is =<0, the page will not shown and a message will appear instead.

How to not display the page?
Should the code go in server validation or whereelse?
How to call teh message of Joomla: you should be login to access this private area?
GreyHead 19 Dec, 2008
Hi gg4,

In the beginning of the form html
<?php
$user = JFactory::getUser();
If ( $user->id == 0 ) {
    global $mainframe;
    $mainframe->enqueuemessage('Tough luck', 'error');
    $mainframe->redirect('index.php');
}
?>
NB Not tested and may need debugging!

Bob
gg4j 20 Dec, 2008
Perfect Greyhead, just there was just typo for $mainframe, here the corrected code for copy paste for everybody 😀

To hide a form if user is not logged:

<?php
$user = JFactory::getUser();
If ( $user->id == 0 ) {
    global $mainframe;
    $mainframe->enqueuemessage('Tough luck', 'error');
    $mainframe->redirect('index.php');
}
?>



So I guess $mainframe is the global variable you use to communicate with the content area in Joomla.. is it?
Useful to know.
GreyHead 20 Dec, 2008
Hi gg4j,

Sorry about the typo - I fixed my version too (I missed the $ from $mainframe in a couple of places).

$mainframe isn't really the way to communicate with *content* but it does have some useful methods that allow you to comunicate with the Joomla system (or better the Framework). See here for more.

Bob
gg4j 20 Dec, 2008
THanks!!! 😀
This topic is locked and no more replies can be posted.

VPS & Email Hosting 20% discount
hostinger