예제 #1
0
function get_messages()
{
    //creation d'un Resultat
    //variables globales
    global $id, $table_general, $table_conversations, $table_messages;
    //recherche des personnes connectees
    $listing = new Resultat();
    //delai (= maintenant - 1 minute)
    $delai = date('Y-m-d H:i:s', mktime(date('H'), date('i') - 1, date('s'), date('m'), date('d'), date('Y')));
    //personnes connectees
    $sql = "SELECT identifiant FROM " . $table_general . " WHERE date_dernier_signal > '" . $delai . "';";
    $resultat = mysql_query($sql);
    while ($present = mysql_fetch_array($resultat)) {
        if ($present['identifiant'] != $id) {
            //creation d'un binome
            $binome = new Binome($present['identifiant']);
            //recherche d'une conversation courante
            $sql = "SELECT * FROM " . $table_conversations . " WHERE user1 = '" . $binome->nom1 . "' AND user2 = '" . $binome->nom2 . "' AND session_1 = '" . $binome->session1 . "' AND session_2 = '" . $binome->session2 . "';";
            $conversation = mysql_query($sql);
            if (!$conversation || mysql_num_rows($conversation) == 0) {
                //on ajoute dans la liste sans conversation
                $listing->ajouter_ami(new Ami($present['identifiant'], null));
            } else {
                //on va chercher des messages
                $sql = "SELECT * FROM " . $table_messages . " WHERE conversation = " . mysql_result($conversation, 0, 'id_conversation') . " ;";
                $messages = mysql_query($sql);
                $maConv = new Conversation();
                while ($message = mysql_fetch_array($messages)) {
                    //ajout de messages
                    $maConv->ajouterMessage(new Message($message['expediteur'], $message['destinataire'], $message['date'], $message['texte']));
                }
                $listing->ajouter_ami(new Ami($present['identifiant'], $maConv));
            }
        }
    }
    // parsing en XML //////////////////
    echo "\n<connectes>";
    echo "\n\t<derniere_MAJ>" . $listing->derniere_MAJ . "</derniere_MAJ>";
    foreach ($listing->amis as $personne) {
        echo "\n\t<ami>";
        echo "\n\t\t<nom>" . $personne->nom . "</nom>";
        if ($personne->conversation != null) {
            echo "\n\t\t<conversation>";
            echo "\n\t\t\t<date>" . $personne->conversation->date . "</date>";
            foreach ($personne->conversation->messages as $mess) {
                echo "\n\t\t\t<message>";
                echo "\n\t\t\t\t<de>" . $mess->expediteur . "</de>";
                echo "\n\t\t\t\t<vers>" . $mess->destinataire . "</vers>";
                echo "\n\t\t\t\t<texte>" . $mess->texte . "</texte>";
                echo "\n\t\t\t</message>";
            }
            echo "\n\t\t</conversation>";
        }
        echo "\n\t</ami>";
    }
    echo "\n</connectes>";
}