MyBB.support, le portail francophone de MyBB
Afficher l'avatar dans le qui est en ligne - Version imprimable

+- MyBB.support, le portail francophone de MyBB (https://mybb.support)
+-- Forum : MyBB.fr (https://mybb.support/forum-1.html)
+--- Forum : Tutoriels (https://mybb.support/forum-19.html)
+--- Sujet : Afficher l'avatar dans le qui est en ligne (/thread-6237.html)



Afficher l'avatar dans le qui est en ligne - Zeatlan - 12-01-2013

Hello world,

dans ce tutoriel nous allons apprendre à mettre un avatar sur le qui est en ligne, voici un aperçu final de quoi vous donnez des idées :
[attachment=1255]

Donc voilà nous allons nous rendre dans l'administration.
Templates & styles, puis Templates !
Vous sélectionnez votre thème puis dans le qui est en ligne templates vous sélectionnez "whosonline"
Cherchez :
Code :
<td class="thead" colspan="3">
que vous changerez en :
Code :
<td class="thead" colspan="4">
en faisant sa nous demandons à ce que "4 catégories" soit créer au lieu de 3 !

Dans le même templates cherchez :
Code :
<td class="tfoot" colspan="3"
Et nous allons faire la même chose, on change "3" en "4" sa donnerait ceci :
Code :
<td class="tfoot" colspan="4"

Encore dans le même templates vous cherchez :
Code :
<td class="tcat" align="center"><a href="online.php?sortby=username"><span class="smalltext"><strong>{$lang->on_username}</strong></span></a></td>
Et ajoutez ce code juste avant :
Code :
<td class="tcat" align="center" width="5%"></td>

Sauvegarder le templates [ouf, c'est finit]

Maintenant on re-va dans nos templates : Qui est en ligne Templates et vous prenez "online_row" !
Cherchez :
Code :
<tr>

Et ajoutez JUSTE APRES SA :
Code :
<td align="center" class="trow1">{$user_avatar}</td>

Sauvegarder le Templates !

Maintenant nous allons modifier les fichiers mybb, en effet c'est pour des raisons ... Bah c'est pour que sa fonctionne quoi Cool
Donc on chercher ce fichier :
./inc/functions_online.php
Editez le et cherchez :
Code :
function build_wol_row($user)
{
    global $mybb, $lang, $templates, $theme, $session;

    // We have a registered user
    if($user['uid'] > 0)
    {
        // Only those with "canviewwolinvis" permissions can view invisible users
        if($user['invisible'] != 1 || $mybb->usergroup['canviewwolinvis'] == 1 || $user['uid'] == $mybb->user['uid'])
        {
            // Append an invisible mark if the user is invisible
            if($user['invisible'] == 1)
            {
                $invisible_mark = "*";
            }
            else
            {
                $invisible_mark = '';
            }

            $user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
            $online_name = build_profile_link($user['username'], $user['uid']).$invisible_mark;
        }
    }

Changez tout sa en :
Code :
function build_wol_row($user)
{
    global $db, $mybb, $lang, $templates, $theme, $session;
    
    if (!$user['uid'])
    {
        $user_avatar = '<img src="images/default_avatar.gif" alt="Avatar" title="Guest \'s Avatar" width="35px" height="35px">';
    }

    // We have a registered user
    if($user['uid'] > 0)
    {
        // Only those with "canviewwolinvis" permissions can view invisible users
        if($user['invisible'] != 1 || $mybb->usergroup['canviewwolinvis'] == 1 || $user['uid'] == $mybb->user['uid'])
        {
            // Append an invisible mark if the user is invisible
            if($user['invisible'] == 1)
            {
                $invisible_mark = "*";
            }
            else
            {
                $invisible_mark = '';
            }

            $query = $db->simple_select("users", "*", "uid='{$user['uid']}'");
            $us = $db->fetch_array($query);

            if ($us['avatar'] != "")
            {
                $user_avatar = '<img src="'.$us['avatar'].'" alt="Avatar" title="'.$user['username'].' \'s Avatar" width="35px" height="35px">';
            }
            else
            {
                $user_avatar = '<img src="images/default_avatar.gif" alt="Avatar" title="'.$user['username'].' \'s Avatar" width="35px" height="35px">';
            }

            $user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
            $online_name = build_profile_link($user['username'], $user['uid']).$invisible_mark;
        }
    }


Et voilà, sauvegardez et allez voir !
Si le résultat n'est pas fonctionnelle veuillez demandez sur la discussion !


Merci de votre lecture.
Bonne soirée.


RE: Afficher l'avatar dans le qui est en ligne - spyto - 12-01-2013

Je déconseille fortement toute modification des fichiers système de MyBB.
Ce n'est pas une bonne idée car à la première mise à jour (et il y en a souvent) tout est perdu.
De plus une mauvaise manip par quelqu'un de débutant dans un de ces fichiers peut s'avérer désastreuse pour le fonctionnement du forum.

Rien ne vaut un bon plugin, qui lui n'altère pas le code source, mais utilise les hooks prévus à cet effet dans le code.


RE: Afficher l'avatar dans le qui est en ligne - Zeatlan - 12-01-2013

(12-01-2013, 23:49)spyto a écrit :  Je déconseille fortement toute modification des fichiers système de MyBB.
Ce n'est pas une bonne idée car à la première mise à jour (et il y en a souvent) tout est perdu.
De plus une mauvaise manip par quelqu'un de débutant dans un de ces fichiers peut s'avérer désastreuse pour le fonctionnement du forum.

Rien ne vaut un bon plugin, qui lui n'altère pas le code source, mais utilise les hooks prévus à cet effet dans le code.
Je confirme Spyto,
mais pour l'instant c'est l'un des seuls moyen, je ne connais aucune autre façon de le faire sans avoir recours aux fichiers !



RE: Afficher l'avatar dans le qui est en ligne - spyto - 12-01-2013

Justement si : en créant un plugin... Smile


RE: Afficher l'avatar dans le qui est en ligne - Zeatlan - 13-01-2013

(12-01-2013, 23:56)spyto a écrit :  Justement si : en créant un plugin... Smile

Et malheureusement je ne sais pas créer de plugin ...
Au tien sa me rappelle que je dois partager quelque chose qui va révolutionner les plugins des forums mybb , enfin ... Peut-être ! Cool


RE: Afficher l'avatar dans le qui est en ligne - Chronick - 25-02-2013

Ca marche Wink merci ^^
Par contre, comment on peut modifier le nom de la catégorie ou ce trouve avatar ?


RE: Afficher l'avatar dans le qui est en ligne - Chronick - 28-02-2013

Re-Bonjour, j'aimerais juste savoir si on peut faire sa pour l'équipe du forum aussi Smile ?


RE: Afficher l'avatar dans le qui est en ligne - Zeatlan - 01-03-2013

(28-02-2013, 18:35)Chronick a écrit :  Re-Bonjour, j'aimerais juste savoir si on peut faire sa pour l'équipe du forum aussi Smile ?
Salut,
effectivement cela peut-être réalisable !
Donc il faut aller dans tes fichiers de ton ftp et tu vas sur "showteam.php" et tu cherches :
Code PHP :
eval("\$usergrouprows .= \"".$templates->get("showteam_usergroup_user")."\";"); 
Et ajouter JUSTE AU DESSUS ceci :
Code PHP :
// Show User's Avatar
            
$users get_user($user['uid']);
            if (!empty(
$users['avatar']))
            {
                
$user_avatar '<img src="'.$users['avatar'].'" width="35px" height="35px" title="'.$users['username'].'" alt="Avatar">';
            }
            else
            {
                
$user_avatar '<img src="./images/default_avatar.gif" width="35px" height="35px" title="'.$users['username'].'" alt="Avatar">';
            }
            
// User Stars and Usergroup Image
            
$user_group usergroup_displaygroup($usergroup['gid']);
            if (
$user_group['starimage'])
            {
                for(
$i 0$i $user_group['stars']; ++$i)
                {
                    
$user_stars .= '<img src="'.$user_group['starimage'].'" alt="" title="'.$usergroup['title'].'">';
                }
            } 
Sauvegarde.

Bon maintenant tu quittes filezilla et tu vas sur ton administration.
Dans templates & styles => Templates =>
Afficher l'équipe du forum Templates => showteam_usergroup
Cherche :
Code :
<td class="thead" colspan="3"><strong>{$usergroup['title']}</strong></td>
Et change le "3" en "4"
Maintenant trouves :
Code :
<td class="tcat"><span class="smalltext"><strong>{$lang->uname}</strong></span></td>

Et rajouter ceci JUSTE AVANT le code ci-dessus :
Code :
<td class="tcat"><span class="smalltext"><strong>Avatar</strong></span></td>
Sauvegarde.
Maintenant va dans le templates "showteam_usergroup_user"
Cherche :
Code :
<td width="80%" class="{$bgcolor}"><a href="{$user['profilelink']}"><strong>{$user['username']}</strong></a>
Change le "80%" en "75%"
Et rajoute ceci JUSTE AVANT le code ci-dessus :
Code :
<td width="5%" class="{$bgcolor}" align="center">{$user_avatar}</td>
Et enfin tu n'as plus qu'à rajouter ça en dessous :
Code :
<div>{$user_stars}</div>
<div>{$usergroup_image}</div>

En espérant que mon aide ta paru utile Cool


RE: Afficher l'avatar dans le qui est en ligne - Chronick - 01-03-2013

Merci beaucoup ^^ Smile


 Utilitaire de traduction fourni par Regentronique