Whosonline - Affichage nom au lieu d'identifiant - Joomla 1.7

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Whosonline - Affichage nom au lieu d'identifiant - Joomla 1.7

    Bonjour,

    Le module "Who is online" peut afficher les identifiants des utilisateurs connectés, mais par leur nom. J'ai trouvé plusieurs hacks, mais aucun ne correspondait à ma configuration. Je ne sais pas si cela est du à ma version Joomla! 1.7 ou à la présence de Kunena (pas certain s'il modifie ce module).

    J'ai réussi à afficher les noms en faisant les modifs suivantes. Je ne suis pas expert, donc si vous voyez une boulette dans le code merci de la signaler ! En tous cas pour moi ça marche et ne semble pas perturber les autres modules.

    1) Dans (site)\modules\mod_whosonline\helper.php, remplacer :

    static function getOnlineUserNames() {
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select('a.username, a.time, a.userid, a.usertype, a.client_id');
    $query->from('#__session AS a');
    $query->where('a.userid != 0');
    $query->where('a.client_id = 0');
    $query->group('a.userid');
    $db->setQuery($query);
    return (array) $db->loadObjectList();
    }

    Par :

    static function getOnlineUserNames() {
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select('u.name, u.id, a.username, a.userid');
    $query->from('#__users AS u');
    $query->innerjoin('#__session AS a ON u.id = a.userid');
    $query->where('a.userid != 0');
    $query->where('a.client_id = 0');
    $db->setQuery($query);
    return (array) $db->loadObjectList();
    }


    2) Dans (site)\modules\mod_whosonline\tmpl\default.php :

    Remplacer “username” par “name” dans la ligne suivante (2 fois, llignes 27 et 30) :
    <?php echo $name->username; ?>
    devient
    <?php echo $name->name; ?>


    Après avoir beaucoup profité du savoir des autres, je suis content de pouvoir contribuer à mon tour !

  • #2
    Re : Whosonline - Affichage nom au lieu d'identifiant - Joomla 1.7

    Je confirme ça fonctionne nickel avec Joomla 1.7.

    Perso j'ai modifié la fonction comme ceci pour garder un maximum d'options:

    static function getOnlineUserNames() {
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select('u.name, u.id, a.username, a.time, a.userid, a.usertype, a.client_id');
    $query->from('#__users AS u');
    $query->innerjoin('#__session AS a ON u.id = a.userid');
    $query->where('a.userid != 0');
    $query->where('a.client_id = 0');
    $query->group('a.userid');
    $db->setQuery($query);
    return (array) $db->loadObjectList();
    }

    Par ailleurs, pour conserver mes modifications en cas de mise à jour du module whosonline, j'ai utilisé la fonctinnalité "d'override" en copiant le fichier default.php du module dans un nouveau répertoire /templates/NomDeVotreTemplate/html/mod_whosonline et en modifiant ce fichier.

    Question subsidiaire, quelqu'un sait il comment faire la meme chose avec le fichier helper.php ???

    Commentaire

    Annonce

    Réduire
    Aucune annonce pour le moment.

    Partenaire de l'association

    Réduire

    Hébergeur Web PlanetHoster
    Travaille ...
    X