First commit, current version 0.2
This commit is contained in:
commit
872acdbc01
353 changed files with 45771 additions and 0 deletions
72
onyx2/include/applications/chat/main.php
Normal file
72
onyx2/include/applications/chat/main.php
Normal 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;
|
||||
}
|
||||
?>
|
||||
121
onyx2/include/applications/chat/property.xml
Normal file
121
onyx2/include/applications/chat/property.xml
Normal 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&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>
|
||||
Reference in a new issue