Visualizzazione risultati 1 fino 3 di 3

Discussione: [MyBB] - Visualizzare Moderatori on-line

  1. #1
    L'avatar di radioradianti
    radioradianti non è connesso Utente storico
    Data registrazione
    26-11-2003
    Residenza
    Roma
    Messaggi
    1,000

    Predefinito [MyBB] - Visualizzare Moderatori on-line

    Qualche tempo fa avevo necessità di visualizzare sulla home page lo stato di alcuni utenti del forum (vedi moderatori o staff), non essendo prodotto con un CMS, ho realizzato uno script che leggendo i dati dal db riporta lo stato di alcuni utenti.

    il risultato è il seguente :


    mentre lo script utilizzato è questo
    Codice PHP:
    <?
    //-------------------------------------------------//
    // Titolo : show_mod_online.php //
    // Autore : Lemoeb (lemoeb@topolinux.org) //
    // Versione : 0.1b //
    // Data : Marzo 2006 //
    // Data ult.mod. : //
    // Licenza : GPL //
    //-------------------------------------------------//

    //Configurazione
    //--------------
    $db_host="localhost"; //Indentifica dove è situato il db, solitamente localhost
    $db_user=""; //Utente per la connessione al db
    $db_pass=""; //Password per la connessione al db
    $db_name=""; //Nome del database a cui connettersi
    $session_time=300; //Numero di secondi per determinare se un utente è online
    $img_online="online.gif"; //Immagine utente on-line
    $img_mangia="mangia.gif"; //Immagine utente che mangia
    $img_dorme="dorme.gif"; //Immagine utente che dorme
    $img_all_offline="suda.gif"; //Immagine nessun moderatore on-line
    $gruppo_super_moderatori=3; //Identifica il numero gruppo super moderatori
    $gruppo_moderatori=6; //Identifica il numero gruppo moderatori

    //------------------------------------------------------------//
    //Da questo punto in poi non è più necessario fare modifiche //
    //tranne per casi particolari legati all'utente //
    //------------------------------------------------------------//
    $mod_online=0; // 0=nessun moderatore online

    //Connessione al Database
    //-----------------------
    $connessione = mysql_connect($db_host, $db_user, $db_pass) or die ("Errore Db Conn");
    $db=mysql_select_db ($db_name,$connessione) or die ("Errore Db select");

    //recupero del tempo attuale e dell'ora
    //-------------------------------------
    $tempo=time();
    $ora=date("H");

    echo
    "<TABLE border=\"0\">";

    //Recupero dei moderatori e dei tempi di sessione
    //-----------------------------------------------
    $query_on_line="SELECT a.uid, a.username, b.time
    FROM mybb_users a, mybb_sessions b
    WHERE a.uid = b.uid
    AND (a.additionalgroups IN ("
    .$gruppo_super_moderatori.",".$gruppo_moderatori."
    ) OR usergroup IN ("
    .$gruppo_super_moderatori.",".$gruppo_moderatori."))
    "
    ;

    //Esecuzione della query
    //----------------------
    $risultato = mysql_query($query_on_line,$connessione);

    //Stampa dello stato utenti
    //-------------------------
    while ($riga = mysql_fetch_array($risultato, MYSQL_ASSOC))
    {
    //Incremento il tempo di sessione utente del numero
    //di secondi deciso per vedere se è online
    //-------------------------------------------------
    $t_sessione=$riga["time"]+$session_time;

    //Stampo il nome dell'utente
    //--------------------------
    echo "<TR><TD>".$riga['username']."</TD>";

    //Cofronto il tempo di sessione dell'untente per determinare se
    //è online ($t_sessione >= $tempo allora l'untente è online)
    //-------------------------------------------------------------
    if ($t_sessione >= $tempo)
    {
    $mod_online++;
    echo
    "<TD><font color=\"GREEN\"><strong>on-line</strong></font></td><td>
    <img src=\"images/"
    .$img_online."\"</TD></TR>";
    }
    else
    {
    echo
    "<TD><font color=\"red\"> off-line</font>";
    if (
    $ora>21 || $ora <= 8) { echo "</td><td><img src=\"images/".$img_dorme."\">";}
    if (
    $ora>12 && $ora <=14) { echo "</td><td><img src=\"images/".$img_mangia."\">";}
    if (
    $ora>19 && $ora <=21) { echo "</td><td><img src=\"images/".$img_mangia."\">";}
    echo
    "</TD></TR>";
    }

    }
    echo
    "</TABLE>";
    //echo "</TR>";
    //se non ci sono moderatori online visualizzo
    //il messaggio di avviso con relativo smile
    //-------------------------------------------
    if ($mod_online==0)
    {
    echo
    "<TABLE border=\"0\">";
    echo
    "<TR><TD align=\"center\">Nessuno dello staff &egrave online
    <img src=\"images/"
    .$img_all_offline."\"></TD></TR></TABLE>";
    }

    ?>
    Le immagini di fianco allo stato, cambiano a seconda dell'orario e dello stato stesso.

    Ho utilizzato :

    => per indicare un utente connesso al forum
    => per indicare se un utente è offline durante le ore notturne(>21 e <=8)
    => per indicare se un utente è offline durante le ore di pranzo o cena
    => per indicare che nessun moderatore è online

    Ho pubblicato il tutto sperando possa tornare utile a qualcuno.

    Lo script è facilmente configurabile e personalizzabile.

    Ciao

    Leandro

    E' on line il numero 12 di Topolinux - Totalmente rinnovato!
    TopoLinux è anche chat! irc.azzurra.org canale #topolinux
    La semplicità di questo dono è inversamente proporzionale alla qualità della nostra amicizia

  2. #2
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

  3. #3
    Guest

    Predefinito

    ho copiato il messaggi nella sezione how-to

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •