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
}
?>
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 .
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.
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
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';
}