web-dev-qa-db-fra.com

Comment puis-je différencier les invités des membres?

Comment puis-je exécuter un code différent dans mon plugin selon que l'utilisateur est connecté ou non à Joomla? En gros, je veux faire ceci:

<?php
if (loggedin) {
   // Do something 
}
else {
   // Do something else 
}
?>
3
Bogowoe

Je fais habituellement quelque chose comme ça:

<?php
$user = JFactory::getUser();
if ($user->guest) {
    // User is not logged in
        } else {      
    //User is logged in
        }
?>

Jetez un coup d'œil au Documentation Joomla .

5
johanpw

Vous pouvez soit utiliser ceci:

$user = JFactory::getUser();
if($user->id != 0)
{
    // you are a member
}
else 
{
    // you are a guest
}

ou ca:

$user = JFactory::getUser();
if($user->guest)
{
    // you are a guest
}
else 
{
    // you are a member
}

Les ennuis sont les mêmes avec très probablement des nano secondes de performances, en ce qui concerne la vitesse.

5
Lodder

En plus de la méthode programmatique directe pour afficher conditionnellement différents contenus (JFactory :: getUser () -> guest), il existe une alternative pour créer un groupe invité à identifier cet ensemble spécifique d'utilisateurs; De cette manière, le contenu peut être géré au niveau du CMS avec les outils d'administration habituels ou dans un plugin avec des contrôles de liste de contrôle d'accès:

Comment cachez-vous quelque chose aux utilisateurs connectés? http://docs.joomla.org/How_do_you_hide_something_from_logged_in_users%3F

enter image description here

Routine associée pour vérifier si l'utilisateur appartient au groupe d'invités :

$user = JFactory::getUser();
$groups = JAccess::getGroupsByUser(user->id, false);
if (in_array(MY_GUEST_GROUP, $groups))
{
   echo 'Only visible for guests';
}
4
Anibal