it-swarm.dev

Come posso differenziare tra ospiti e membri?

Come posso eseguire un codice diverso nel mio plugin a seconda che l'utente abbia effettuato l'accesso o meno in Joomla? Fondamentalmente voglio fare questo:

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

Di solito faccio qualcosa del genere:

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

Dai un'occhiata a Documentazione Joomla .

5
johanpw

Puoi usare questo:

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

o questo:

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

I fastidi sono gli stessi con molto probabilmente nano secondi in termini di prestazioni, per quanto riguarda la velocità.

5
Lodder

Oltre al metodo programmatico diretto per mostrare in modo condizionale diversi contenuti (JFactory :: getUser () -> guest), c'è un'alternativa per creare un gruppo Guest per identificare questo insieme specifico di utenti; in questo modo, il contenuto può essere gestito a livello di CMS con i normali strumenti di amministrazione o in un plug-in con i controlli dell'elenco di controllo di accesso:

Come nascondi qualcosa agli utenti che hanno effettuato l'accesso? http://docs.joomla.org/How_do_you_hide_something_from_logged_in_users%3F

enter image description here

Routine associata per verificare se l'utente appartiene al gruppo Guest :

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