First commit, current version 0.2

This commit is contained in:
Némunaire 2011-07-30 00:14:52 +02:00
commit 872acdbc01
353 changed files with 45771 additions and 0 deletions

View file

@ -0,0 +1,72 @@
<?php
//Fichier appelé pour afficher l'application
if (isset($_POST['message']))
{
$message = strip_tags(trim(gpc("message", "post")));
if (!empty($message) || $message == "0")
{
$bdd = new BDD();
$bdd->escape($message);
$bdd->query("INSERT INTO chat (id_membre, timestamp, message) VALUES (".$SESS->values['id_user'].", ".time().", '$message');");
$bdd->deconnexion();
}
}
elseif (isset($_POST['comm']))
{
$commande = strip_tags(trim(gpc("comm", "post")));
if ($commande == "!clear")
{
if ($SESS->values["id_user"] == 1)
{
$bdd = new BDD();
$bdd->query("DELETE FROM chat;");
$bdd->deconnexion();
$json["confirm"] = "Tous les messages ont été supprimés";
}
else
$json["confirm"] = "Vous n'avez pas les autorisations nécessaires pour effacer les messages.";
}
elseif ($commande == "!online")
{
$users = Cache::read('chat_online');
$json["confirm"] = "Actuellement en ligne :<ul>";
foreach($users as $username => $time)
{
if (time()-30 < $time)
$json["confirm"] .= "<li>$username</li>";
}
$json["confirm"] .= "</ul>";
}
elseif ($commande == "!help" || $commande == "!hlp" || $commande == "!aide")
{
$json["confirm"] = "<table><tr><th>Commande</th><th>Description</th></tr>
<tr><td>!changeRefreshTime <ins>int</ins></td><td>Change le temps de rafraîchissement à <ins>int</ins> (milli)secondes</td></tr>
<tr><td>!cls</td><td>Nettoie l'écran</td></tr>
<tr><td>!clear</td><td>Supprime tous les messages enregistrés dans la base de données</td></tr>
<tr><td>!help</td><td>Affiche cet aide</td></tr>
<tr><td>!maj</td><td>Actualise les messages du chat</td></tr>
<tr><td>!online</td><td>Montre les utilisateurs en ligne (ces 30 dernières secondes)</td></tr>
<tr><td>!quit</td><td>Quitte le chat et affiche l'accueil</td></tr>
<tr><td>!reset</td><td>Réaffiche les 15 derniers messages envoyés</td></tr>
</table>";
}
}
else
{
//Met à jour la liste des personnes en ligne
$users = Cache::read('chat_online');
$users[$SESS->values["username"]] = time();
Cache::set('chat_online', $users);
if (!empty($_GET['time']))
$time = intval(gpc("time"))." ORDER BY timestamp DESC";
else
$time = "0 ORDER BY timestamp DESC LIMIT 15";
$bdd = new BDD();
$messages = $bdd->query("SELECT C.*, U.pseudo FROM chat C INNER JOIN users U ON U.id = C.id_membre WHERE C.timestamp > $time;");
$bdd->deconnexion();
$json["messages"] = $messages;
}
?>

View file

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<application active="1">
<property value="name">Chat</property>
<property value="description">Cette application vous permet de dialoguer facilement avec les autres personnes connectées.</property>
<property value="dir">chat</property>
<property value="etatAvancement">beta</property>
<property value="version">1.0</property>
<property value="lang">fr_FR</property>
<property value="developpeur"><![CDATA[<span style="font-variant: small-caps">Mercier</span> Pierre-Olivier]]></property>
<property value="js">
<![CDATA[
function runApplication(property, display, json)
{
formulaire = document.createElement("form");
formulaire.onsubmit = sendMessage;
formfield = document.createElement("fieldset");
formfield.style.margin = "auto";
labelmess = document.createElement("label");
labelmess.innerHTML = "Message : ";
labelmess.setAttribute("for", "message");
formfield.appendChild(labelmess);
inputmessage = document.createElement("input");
inputmessage.name = "message";
inputmessage.id = "message";
inputmessage.size = "40";
formfield.appendChild(inputmessage);
formulaire.appendChild(formfield);
$('corps').appendChild(formulaire);
tableMessages = document.createElement("table");
tableMessages.style.margin = "auto";
tableMessages.style.width = "90%";
theMess = document.createElement("thead");
trMess = document.createElement("tr");
thMess = document.createElement("th");
thMess.innerHTML = "Date et heure";
trMess.appendChild(thMess);
thMess = document.createElement("th");
thMess.innerHTML = "Message";
trMess.appendChild(thMess);
theMess.appendChild(trMess);
tableMessages.appendChild(theMess);
tboMess = document.createElement("tbody");
tboMess.style.textAlign = "left";
tboMess.id = "chat";
tableMessages.appendChild(tboMess);
$('corps').appendChild(tableMessages);
printEtat(0);
chat_MAJ();
}
function sendMessage()
{
if ($('message').value == "!cls")
{
chat_clearScreen();
$('message').value = "";
}
else if ($('message').value == "!maj")
{
chat_refreshScreen();
$('message').value = "";
}
else if ($('message').value == "!reset")
{
chat_reset();
$('message').value = "";
}
else if ($('message').value == "!quit" || $('message').value == "!exit" || $('message').value == "!deco" || $('message').value == "!deconnexion")
{
first_page();
}
else if ($('message').value.toString().indexOf("!changerefreshtime ") == 0 || $('message').value.toString().indexOf("!changeRefreshtime ") == 0 || $('message').value.toString().indexOf("!changerefreshTime ") == 0 || $('message').value.toString().indexOf("!changeRefreshTime ") == 0)
{
split = $('message').value.toString().split(" ");
$('message').value = "";
chat_changeRefreshTime(split[1]);
}
else if ($('message').value == "!clear" || $('message').value == "!online" || $('message').value == "!help" || $('message').value == "!hlp" || $('message').value == "!aide")
{
chat_sendCommande($('message').value);
$('message').value = "";
}
else
{
new Ajax.Request(
'ajax.php?d=action&amp;a=chat',
{
method: 'post',
parameters: {message: $('message').value},
onSuccess: function(transport, json) {
$('message').value = "";
},
onFailure: function() { if (confirm("La requête a échouée, voulez-vous réessayer de renvoyer votre message ?")) sendMessage(); }
}
);
}
return false;
}
function chat_MAJ()
{
var date = new Date();
var newRow = $('chat').insertRow(0);
var newCell = newRow.insertCell(0);
newCell.innerHTML = '<em>JS</em> ' + (date.getHours()<10?"0"+date.getHours():date.getHours()) + ":" + (date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes()) + ":" + (date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds());
newCell = newRow.insertCell(1);
newCell.innerHTML = "<em>Connexion au chat</em>";
$('message').focus();
chat_refresh = setTimeout("chat_MAJ()", 150);
}
]]>
</property>
<security default="connected" />
<display value="titre">chat.png</display>
<display value="js">app.js</display>
<config value="table_bdd">chat</config>
</application>