it-swarm-es.tech

¿Cómo puedo diferenciar entre invitados y miembros?

¿Cómo puedo ejecutar un código diferente en mi complemento dependiendo de si el usuario ha iniciado sesión o no en Joomla? Básicamente quiero hacer esto:

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

Usualmente hago algo como esto:

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

Echa un vistazo a Documentación de Joomla .

5
johanpw

Puedes usar esto:

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

o esto:

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

Las molestias son las mismas con los nanosegundos más probables en rendimiento, en lo que respecta a la velocidad.

5
Lodder

Además del método programático directo para mostrar condicionalmente diferentes contenidos (JFactory :: getUser () -> guest), existe una alternativa para crear un grupo de invitados para identificar este conjunto específico de usuarios; de esta manera, el contenido se puede administrar a nivel de CMS con las herramientas administrativas habituales o en un complemento con controles de Lista de control de acceso:

¿Cómo escondes algo de los usuarios registrados? http://docs.joomla.org/How_do_you_hide_something_from_logged_in_users%3F

enter image description here

Rutina asociada para verificar si el usuario pertenece al grupo de invitados :

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