First commit, current version 0.2
17
.project
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>pa4home</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>com.aptana.ide.core.unifiedBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>com.aptana.projects.webnature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
210
ajax.php
Normal file
@ -0,0 +1,210 @@
|
||||
<?php
|
||||
//Définition de la constante anti-hacking
|
||||
define("INDEX", 1);
|
||||
|
||||
ob_start();
|
||||
|
||||
//Inclusion de l'API Onyx
|
||||
require_once(trim(file_get_contents('./.onyx')));
|
||||
require_once(ONYX.'include/functions.php');
|
||||
$SESS = new Session();
|
||||
//sleep(1);
|
||||
$json = array("ping" => time(), "statut" => !empty($SESS->values["connecte"]));
|
||||
|
||||
if ($json["statut"])
|
||||
$json["username"] = $SESS->values["username"];
|
||||
|
||||
//Création du fichier XML
|
||||
$xml = new DOMDocument('1.0', 'UTF-8');
|
||||
$xml->formatOutput = true;
|
||||
$xml_root = $xml->createElement("root");
|
||||
|
||||
$demande = gpc('d');
|
||||
$value = intval(gpc('i'));
|
||||
if ($demande == "connecte")
|
||||
{
|
||||
$nom = strtolower(gpc("name", "post"));
|
||||
$mdp = hash("sha512", $nom.'♂♫↨'.gpc("mdp", "post"));
|
||||
|
||||
$bdd = new BDD();
|
||||
$bdd->escape($nom);
|
||||
$bdd->query("UPDATE users SET last_ip = '".$_SERVER["REMOTE_ADDR"]."', last_visite = ".time()." WHERE pseudo = '$nom' AND password = '$mdp';");
|
||||
$affected = $bdd->affected();
|
||||
if ($affected)
|
||||
$user = $bdd->unique_query("SELECT * FROM users WHERE pseudo = '$nom' AND password = '$mdp';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if ($affected != 0)
|
||||
{
|
||||
$json["statut"] = 1;
|
||||
$SESS->values["connecte"] = true;
|
||||
$SESS->values["username"] = $nom;
|
||||
$SESS->values["id_user"] = $user["id"];
|
||||
$SESS->put();
|
||||
}
|
||||
else
|
||||
{
|
||||
$json["statut"] = 0;
|
||||
$SESS->values["connecte"] = false;
|
||||
$SESS->values["username"] = "";
|
||||
$SESS->values["id_user"] = 0;
|
||||
$SESS->put();
|
||||
}
|
||||
}
|
||||
elseif ($demande == "logout")
|
||||
{
|
||||
$SESS->values["connecte"] = false;
|
||||
$SESS->values["username"] = "";
|
||||
$SESS->close();
|
||||
}
|
||||
elseif ($demande == "accueil")
|
||||
{
|
||||
$dir = opendir(APPSDIR);
|
||||
while (($app = readdir($dir)) !== false)
|
||||
{
|
||||
if (is_dir(APPSDIR.$app) && is_file(APPSDIR.$app.'/property.xml'))
|
||||
{
|
||||
$applicationXML = new DOMDocument();
|
||||
$applicationXML->load(APPSDIR.$app.'/property.xml');
|
||||
|
||||
if ($applicationXML->documentElement->getAttribute('active') && $applicationXML->getElementsByTagName('application'))
|
||||
{
|
||||
//Vérification de sécurités
|
||||
if (!acces_application($app, $applicationXML))
|
||||
continue;
|
||||
|
||||
$xml_appli = $xml->createElement("application");
|
||||
$xml_appli->appendChild($xml->createElement("dir", $app));
|
||||
foreach($applicationXML->getElementsByTagName('property') as $property)
|
||||
{
|
||||
$xml_appli->appendChild($xml->createElement($property->getAttribute('value'), $property->textContent));
|
||||
}
|
||||
$xml_root->appendChild($xml_appli);
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($dir);
|
||||
}
|
||||
elseif ($demande == "property" && $app = gpc('a'))
|
||||
{
|
||||
if (empty($app) || ereg('/', $app) || !is_file(APPSDIR.$app.'/property.xml'))
|
||||
send404($xml_root);
|
||||
else
|
||||
{
|
||||
$appXML = new DOMDocument();
|
||||
$appXML->load(APPSDIR.$app.'/property.xml');
|
||||
|
||||
if ($appXML->documentElement->getAttribute('active') && $appXML->getElementsByTagName('application'))
|
||||
{
|
||||
//Vérification de sécurités
|
||||
if (!acces_application($app, $appXML))
|
||||
continue;
|
||||
|
||||
$xml_appli = $xml->createElement("property");
|
||||
foreach($appXML->getElementsByTagName('property') as $property)
|
||||
{
|
||||
$xml_appli->appendChild($xml->createElement($property->getAttribute('value'), $property->textContent));
|
||||
}
|
||||
$xml_appli->appendChild($xml->createElement("dir", $app));
|
||||
$xml_root->appendChild($xml_appli);
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($demande == "display" && $app = gpc('a'))
|
||||
{
|
||||
if (empty($app) || ereg('/', $app) || !is_file(APPSDIR.$app.'/property.xml'))
|
||||
send404($xml_root);
|
||||
else
|
||||
{
|
||||
$appXML = new DOMDocument();
|
||||
$appXML->load(APPSDIR.$app.'/property.xml');
|
||||
|
||||
if ($appXML->documentElement->getAttribute('active') && $appXML->getElementsByTagName('application'))
|
||||
{
|
||||
//Vérification de sécurités
|
||||
if (!acces_application($app, $appXML))
|
||||
continue;
|
||||
|
||||
require(APPSDIR.$app.'/main.php');
|
||||
|
||||
$xml_root->appendChild($xml->createElement("dir", $app));
|
||||
|
||||
$xml_appli = $xml->createElement("display");
|
||||
foreach($appXML->getElementsByTagName('display') as $contenu)
|
||||
{
|
||||
if ($contenu->getAttribute('value') == "css")
|
||||
{
|
||||
$xml_css = $xml->createElement($contenu->getAttribute('value'), $contenu->textContent);
|
||||
if ($contenu->getAttribute('media'))
|
||||
$xml_css->setAttribute("media", $contenu->getAttribute('media'));
|
||||
$xml_appli->appendChild($xml_css);
|
||||
}
|
||||
else
|
||||
$xml_appli->appendChild($xml->createElement($contenu->getAttribute('value'), $contenu->textContent));
|
||||
}
|
||||
$xml_root->appendChild($xml_appli);
|
||||
|
||||
$xml_appli = $xml->createElement("property");
|
||||
foreach($appXML->getElementsByTagName('property') as $property)
|
||||
{
|
||||
$xml_appli->appendChild($xml->createElement($property->getAttribute('value'), $property->textContent));
|
||||
}
|
||||
|
||||
if ($appXML->getElementsByTagName('menu'))
|
||||
{
|
||||
$menu = array();
|
||||
foreach($appXML->getElementsByTagName('menu') as $item)
|
||||
$menu[] = array("text" => $item->getAttribute('text'), "eventClick" => $item->getAttribute('eventClick'));
|
||||
|
||||
$xml_appli->appendChild($xml->createElement("menu", json_encode($menu)));
|
||||
}
|
||||
$xml_root->appendChild($xml_appli);
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($demande == "action" && $app = gpc('a'))
|
||||
{
|
||||
if (empty($app) || ereg('/', $app) || !is_file(APPSDIR.$app.'/property.xml'))
|
||||
send404($xml_root);
|
||||
else
|
||||
{
|
||||
$appXML = new DOMDocument();
|
||||
$appXML->load(APPSDIR.$app.'/property.xml');
|
||||
|
||||
if ($appXML->documentElement->getAttribute('active') && $appXML->getElementsByTagName('application'))
|
||||
require(APPSDIR.$app.'/main.php');
|
||||
}
|
||||
}
|
||||
elseif ($demande == "page" && $page = gpc('p'))
|
||||
{
|
||||
if (empty($page) || ereg('/', $page) || !is_file(PAGESDIR.$page.'.xml'))
|
||||
send404($xml_root);
|
||||
else
|
||||
{
|
||||
$pageXML = new DOMDocument();
|
||||
$pageXML->load(PAGESDIR.$page.'.xml');
|
||||
|
||||
if ($pageXML->documentElement->getAttribute('active') && $pageXML->getElementsByTagName('page'))
|
||||
{
|
||||
//Vérification de sécurité
|
||||
if (!acces_application($page, $pageXML))
|
||||
send403($xml_root);
|
||||
else
|
||||
{
|
||||
foreach($pageXML->getElementsByTagName('display') as $contenu)
|
||||
{
|
||||
$xml_root->appendChild($xml->createElement($contenu->getAttribute('value'), $contenu->textContent));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
header("X-JSON: ".json_encode($json));
|
||||
$sortie = ob_get_contents();
|
||||
ob_end_clean();
|
||||
if (!empty($sortie))
|
||||
$xml_root->appendChild($xml->createElement("sortie", $sortie));
|
||||
$xml->appendChild($xml_root);
|
||||
print $xml->saveXML();
|
||||
?>
|
1072
applications/GSM/app.js
Normal file
28
applications/GSM/auteurs.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
//Définition de la constante anti-hacking
|
||||
define("INDEX", 1);
|
||||
|
||||
ob_start();
|
||||
//Inclusion de l'API Onyx
|
||||
require_once(trim(file_get_contents('../../.onyx')));
|
||||
require_once(ONYX.'include/functions.php');
|
||||
$SESS = new Session();
|
||||
ob_end_clean();
|
||||
|
||||
$nom = gpc('auteur', 'post');
|
||||
|
||||
$bdd = new BDD();
|
||||
$bdd->escape($nom);
|
||||
$chanteurs = $bdd->query("SELECT chanteur FROM gsm WHERE chanteur LIKE '$nom%' GROUP BY chanteur;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (!empty($chanteurs) && !empty($nom))
|
||||
{
|
||||
print "<ul>\n";
|
||||
foreach ($chanteurs as $chanteur)
|
||||
{
|
||||
print ' <li>'.$chanteur["chanteur"]."</li>\n";
|
||||
}
|
||||
print "</ul>";
|
||||
}
|
||||
?>
|
BIN
applications/GSM/loader.gif
Normal file
After Width: | Height: | Size: 673 B |
99
applications/GSM/main.css
Normal file
@ -0,0 +1,99 @@
|
||||
.front
|
||||
{
|
||||
border: solid 1px black;
|
||||
display: table-cell;
|
||||
height: 11.5cm;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
width: 11.5cm;
|
||||
}
|
||||
|
||||
.front .title, .front .cd
|
||||
{
|
||||
font-size: 60px;
|
||||
font-family: sans-serif;
|
||||
font-weight: bolder;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.sp
|
||||
{
|
||||
margin: 1cm 0;
|
||||
}
|
||||
|
||||
.back
|
||||
{
|
||||
border: solid 1px black;
|
||||
display: table;
|
||||
height: 11.1cm;
|
||||
width: 14.4cm;
|
||||
}
|
||||
|
||||
.back .title
|
||||
{
|
||||
font-variant: small-caps
|
||||
}
|
||||
|
||||
.back .center .title
|
||||
{
|
||||
font-size: 14px;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.back .left, .back .right
|
||||
{
|
||||
display: block;
|
||||
height: 11.1cm;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
width: 0.7cm;
|
||||
}
|
||||
.back .left
|
||||
{
|
||||
border-right: dashed 1px gray;
|
||||
float: left;
|
||||
}
|
||||
.back .right
|
||||
{
|
||||
border-left: dashed 1px gray;
|
||||
float: right;
|
||||
}
|
||||
.back .left .title, .back .right .title
|
||||
{
|
||||
font-size: 13pt;
|
||||
font-weight: bolder;
|
||||
margin-top: 5.5cm;
|
||||
margin-left: -5.15cm;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.back .left .title
|
||||
{
|
||||
-webkit-transform: rotate(-90deg);
|
||||
-moz-transform: rotate(-90deg);
|
||||
text-align: center;
|
||||
width: 11.1cm;
|
||||
}
|
||||
.back .right .title
|
||||
{
|
||||
-webkit-transform: rotate(90deg);
|
||||
-moz-transform: rotate(90deg);
|
||||
text-align: center;
|
||||
width: 11cm;
|
||||
}
|
||||
|
||||
.back .center
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.back ol
|
||||
{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.back .author
|
||||
{
|
||||
float: right;
|
||||
width: 50%;
|
||||
}
|
24
applications/GSM/print.css
Normal file
@ -0,0 +1,24 @@
|
||||
body
|
||||
{
|
||||
font-family: serif;
|
||||
font-size: 10px;
|
||||
margin: auto;
|
||||
width: 18cm;
|
||||
}
|
||||
|
||||
h1 {
|
||||
display: none;
|
||||
}
|
||||
#GSM_menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.back .center
|
||||
{
|
||||
overflow:hidden;
|
||||
height: 11.1cm;
|
||||
}
|
||||
.back .center ol
|
||||
{
|
||||
-webkit-margin-before: 0.5em;
|
||||
}
|
331
applications/GSM/style.css
Normal file
@ -0,0 +1,331 @@
|
||||
html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background: -webkit-gradient(
|
||||
linear,
|
||||
left top,
|
||||
left bottom,
|
||||
color-stop(0.31, #ffbe86),
|
||||
color-stop(0.66, #ffebdb),
|
||||
color-stop(1.00, #ffbe86)
|
||||
);
|
||||
background: -moz-linear-gradient(
|
||||
center bottom,
|
||||
#ffbe86 31%,
|
||||
#ffebdb 66%,
|
||||
#ffbe86 100%
|
||||
);
|
||||
|
||||
font-family: serif;
|
||||
margin-bottom: 10px;
|
||||
min-height: 80%;
|
||||
}
|
||||
|
||||
a:link, a:visited {
|
||||
text-decoration: none;
|
||||
color:#000000;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
margin-left: 250px;
|
||||
}
|
||||
|
||||
.pagination a:link, .pagination a:visited {
|
||||
text-decoration: none;
|
||||
color:#FFFFFF;
|
||||
}
|
||||
|
||||
.pagination a:hover, a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.news {
|
||||
background: -webkit-gradient(
|
||||
linear,
|
||||
left top,
|
||||
right bottom,
|
||||
color-stop(0.31, #ffa2a1),
|
||||
color-stop(0.66, #ffdcdb)
|
||||
);
|
||||
background: -moz-linear-gradient(
|
||||
right bottom,
|
||||
#ffa2a1 31%,
|
||||
#ffdcdb 66%
|
||||
);
|
||||
|
||||
border: 2px solid #ff6062;
|
||||
border-radius: 17px;
|
||||
box-shadow: 3px 4px 5px #444466;
|
||||
|
||||
height: 127px;
|
||||
margin: auto;
|
||||
padding: 20px;
|
||||
text-align: left;
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
.vp {
|
||||
color: orange;
|
||||
}
|
||||
|
||||
#GSM_menu {
|
||||
background: -webkit-gradient(
|
||||
linear,
|
||||
left top,
|
||||
left bottom,
|
||||
color-stop(0.31, #ffa2a1),
|
||||
color-stop(0.90, #ffd3d3)
|
||||
);
|
||||
background: -moz-linear-gradient(
|
||||
center bottom,
|
||||
#ffa2a1 31%,
|
||||
#ffd3d3 90%
|
||||
);
|
||||
|
||||
border-right: 2px dotted white;
|
||||
color:#FFFFFF;
|
||||
font-weight: bold;
|
||||
height: 100%;
|
||||
left: 0px;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
-webkit-padding-start: 0;
|
||||
position: fixed;
|
||||
text-align: center;
|
||||
top: 0px;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
#GSM_menu h2 {
|
||||
margin-left: 69px;
|
||||
}
|
||||
|
||||
#GSM_menu li {
|
||||
margin-bottom: 40px;
|
||||
text-align: center;
|
||||
width: 250px;
|
||||
}
|
||||
#GSM_menu li[onclick] {
|
||||
cursor: pointer;
|
||||
}
|
||||
#GSM_menu li[onclick]:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
label {
|
||||
font-weight: bold;
|
||||
}
|
||||
label:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
form {
|
||||
background: -webkit-gradient(
|
||||
linear,
|
||||
left top,
|
||||
left bottom,
|
||||
color-stop(0.31, #cc6d1d),
|
||||
color-stop(0.95, #ff8f26)
|
||||
);
|
||||
background: -moz-linear-gradient(
|
||||
center bottom,
|
||||
#cc6d1d 31%,
|
||||
#ff8f26 95%
|
||||
);
|
||||
border: 1px solid #ff9b42;
|
||||
border-radius: 25px;
|
||||
box-shadow: 2px 2px 5px #553333;
|
||||
}
|
||||
|
||||
form#addAlbms {
|
||||
margin: auto;
|
||||
padding: 13px;
|
||||
text-align: left;
|
||||
width: 345px;
|
||||
}
|
||||
form#addAlbms div {
|
||||
text-align: center;
|
||||
}
|
||||
form#addAlbms div#testColor {
|
||||
background-color: black;
|
||||
border: solid 1px black;
|
||||
display: inline-block;
|
||||
height: 1em;
|
||||
margin-left: 5px;
|
||||
margin-bottom: -4px;
|
||||
width: 2em;
|
||||
}
|
||||
|
||||
form#ajout {
|
||||
height: 182px;
|
||||
margin: 10px auto;
|
||||
padding: 13px;
|
||||
text-align: left;
|
||||
width: 642px;
|
||||
}
|
||||
form#ajout input[type=text] {
|
||||
width: 444px;
|
||||
}
|
||||
form#ajout select {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
form#ajout label {
|
||||
float: left;
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
margin: 10px 7px 10px 0;
|
||||
text-align: right;
|
||||
width: 110px;
|
||||
}
|
||||
form#ajout label:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
input[type=text], select {
|
||||
margin: 10px 0;
|
||||
transition: background 0.75s;
|
||||
-moz-transition: background 0.75s;
|
||||
-webkit-transition: background 0.75s;
|
||||
-o-transition: background 0.75s;
|
||||
}
|
||||
input, select {
|
||||
background: #FF6600;
|
||||
border: #CA2A20 solid 1px;
|
||||
border-radius: 3px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
input:hover, input:focus, select:hover, select:focus {
|
||||
background: #CC6600;
|
||||
}
|
||||
|
||||
input.erreur, select.erreur {
|
||||
background: #CC0000;
|
||||
}
|
||||
|
||||
div#GSM_menu {
|
||||
background: url(backmenu.png);
|
||||
color:#FFFFFF;
|
||||
top: 0px;
|
||||
font-weight: bold;
|
||||
height: 1200px;
|
||||
padding-top: 30px;
|
||||
position: fixed;
|
||||
text-align: center;
|
||||
left: 0px;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
div#GSM_menu h2 {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
div#contenu {
|
||||
margin-left: 250px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.table {
|
||||
border: 1px solid black;
|
||||
border-radius: 10px;
|
||||
box-shadow: 3px 3px 5px #666666;
|
||||
margin: auto;
|
||||
}
|
||||
.table .body div {
|
||||
transition: background 500ms;
|
||||
-moz-transition: background 500ms;
|
||||
-webkit-transition: background 500ms;
|
||||
-o-transition: background 500ms;
|
||||
}
|
||||
.table .body div.elt0 {
|
||||
background: #ec7d60;
|
||||
}
|
||||
.table .body div.elt1 {
|
||||
background: #f68063;
|
||||
}
|
||||
.table .body div:hover {
|
||||
background: #fa8022;
|
||||
}
|
||||
.table.cols2 div span {
|
||||
display: inline-block;
|
||||
width: 40%;
|
||||
}
|
||||
.table.cols3 div span {
|
||||
display: inline-block;
|
||||
width: 40%;
|
||||
}
|
||||
.table.cols3 div span+span+span {
|
||||
width: 20%;
|
||||
}
|
||||
.table div.lign {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.table .head {
|
||||
background: #f26340;
|
||||
border-bottom: 1px solid black;
|
||||
border-radius: 10px 10px 0 0;
|
||||
font-weight: bolder;
|
||||
display: block;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
.table .foot { border-radius: 0 0 10px 10px; }
|
||||
|
||||
.table.stats {
|
||||
float: left;
|
||||
margin: 0 1%;
|
||||
width: 31%;
|
||||
}
|
||||
.table#list {
|
||||
width: 83%;
|
||||
}
|
||||
.table#list .head {
|
||||
cursor: pointer;
|
||||
}
|
||||
.table .body div {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
background: #f26340;
|
||||
border: 1px solid black;
|
||||
color: white;
|
||||
margin: auto;
|
||||
width: 442px;
|
||||
}
|
||||
.pagination.top {
|
||||
border-radius: 10px 10px 0 0;
|
||||
border-bottom: none;
|
||||
}
|
||||
.pagination.bottom {
|
||||
border-top: none;
|
||||
border-radius: 0 0 10px 10px;
|
||||
box-shadow: 0px 2px 7px #666666;
|
||||
}
|
||||
.pagination a {
|
||||
cursor: pointer;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
.front, .back
|
||||
{
|
||||
background: white;
|
||||
}
|
||||
.back .center
|
||||
{
|
||||
overflow:auto;
|
||||
}
|
||||
.back ol li:hover
|
||||
{
|
||||
background-color: teal;
|
||||
}
|
||||
|
||||
div.autocomplete {
|
||||
margin-top: 20px;
|
||||
margin-left: 6px;
|
||||
}
|
537
applications/GSPC/app.js
Normal file
@ -0,0 +1,537 @@
|
||||
var GSPC_origin_liste = false;
|
||||
var GSPC_liste = false;
|
||||
var GSPC_lastSort = -1;
|
||||
var GSPC_delay = null;
|
||||
var nbParPage = 50;
|
||||
|
||||
//On charge la liste des porte-clés
|
||||
function GSPC_loadList()
|
||||
{
|
||||
GSPC_origin_liste = false;
|
||||
GSPC_liste = false;
|
||||
GSPC_lastSort = -1;
|
||||
$('nbpc').innerHTML = '<img src="applications/GSPC/loader.gif" alt="Chargement en cours ...">';
|
||||
new Ajax.Request(
|
||||
'ajax.php',
|
||||
{
|
||||
method: 'get',
|
||||
parameters: {d: "action", a: "GSPC", p: "liste"},
|
||||
onSuccess: GSPC_parseList,
|
||||
onFailure: function() { printEtat(3); }
|
||||
}
|
||||
);
|
||||
}
|
||||
GSPC_loadList();
|
||||
|
||||
//Une fois la liste reçue, on la parse
|
||||
function GSPC_parseList(transport, json)
|
||||
{
|
||||
$('nbpc').innerHTML = json.nombre;
|
||||
|
||||
var liste = transport.responseXML.documentElement.getElementsByTagName("liste")[0].getElementsByTagName("porteclef");
|
||||
GSPC_origin_liste = new Array();
|
||||
|
||||
for (var i = 0; i < liste.length; i++)
|
||||
{
|
||||
var elt = liste[i];
|
||||
GSPC_origin_liste.push([elt.getAttribute("id"), elt.getAttribute("nom"), elt.getAttribute("caracteristique"), elt.getAttribute("ligne"), elt.getAttribute("special")])
|
||||
}
|
||||
}
|
||||
|
||||
//Met en place le formulaire d'ajout de porte-clé
|
||||
function GSPC_add()
|
||||
{
|
||||
if (GSPC_delay)
|
||||
clearTimeout(GSPC_delay);
|
||||
|
||||
$('contenu').innerHTML = "";
|
||||
var titre = document.createElement("h2");
|
||||
titre.innerHTML = "Ajout d'un porte-clef à la base de données";
|
||||
$('contenu').appendChild(titre);
|
||||
|
||||
GSPC_addScreen(false);
|
||||
}
|
||||
|
||||
//Affiche la liste des porte-clés
|
||||
function GSPC_list()
|
||||
{
|
||||
if (GSPC_delay)
|
||||
clearTimeout(GSPC_delay);
|
||||
|
||||
window.scrollTo(0,0);
|
||||
|
||||
$('contenu').innerHTML = "";
|
||||
var titre = document.createElement("h2");
|
||||
titre.innerHTML = "Liste des porte-clefs";
|
||||
$('contenu').appendChild(titre);
|
||||
|
||||
GSPC_liste = false;
|
||||
GSPC_lastSort = -1;
|
||||
|
||||
GSPC_viewliste();
|
||||
}
|
||||
|
||||
//Affiche la page de statistiques
|
||||
function GSPC_stats()
|
||||
{
|
||||
if (GSPC_delay)
|
||||
clearTimeout(GSPC_delay);
|
||||
|
||||
window.scrollTo(0,0);
|
||||
|
||||
$('contenu').innerHTML = "";
|
||||
var titre = document.createElement("h2");
|
||||
titre.innerHTML = "Statistiques";
|
||||
$('contenu').appendChild(titre);
|
||||
|
||||
var tableau = document.createElement("div");
|
||||
tableau.className = "table cols2";
|
||||
tableau.id = "stats";
|
||||
var tableau_head = document.createElement("div");
|
||||
tableau_head.className = "head";
|
||||
var head_th = document.createElement("span");
|
||||
head_th.innerHTML = "Ligne";
|
||||
tableau_head.appendChild(head_th);
|
||||
var head_th = document.createElement("span");
|
||||
head_th.innerHTML = "Nombre";
|
||||
tableau_head.appendChild(head_th);
|
||||
tableau.appendChild(tableau_head);
|
||||
var tableau_body = document.createElement("div");
|
||||
tableau_body.className = "body";
|
||||
tableau_body.innerHTML = '<div class="lign elt0 foot">Téléchargement des statistiques en cours ... <img src="applications/GSPC/loader.gif" alt="Veuillez patienter"></div>';
|
||||
tableau.appendChild(tableau_body);
|
||||
$('contenu').appendChild(tableau);
|
||||
|
||||
new Ajax.Request(
|
||||
'ajax.php',
|
||||
{
|
||||
method: 'get',
|
||||
parameters: {d: "action", a: "GSPC", p: "stats"},
|
||||
onSuccess: function(transport, json)
|
||||
{
|
||||
var stats = transport.responseXML.documentElement.getElementsByTagName("statistiques")[0];
|
||||
var nbPC = stats.getElementsByTagName("ligne").length;
|
||||
|
||||
tableau_body.innerHTML = "";
|
||||
|
||||
for (var i = 0; i < nbPC; i++)
|
||||
{
|
||||
if (stats.getElementsByTagName("ligne")[i].getAttribute("nom") != "")
|
||||
{
|
||||
var lign = document.createElement("div");
|
||||
lign.className = "elt" + (i%2);
|
||||
GSPC_addStatLign(lign, stats.getElementsByTagName("ligne")[i].getAttribute("nom"));
|
||||
var col = document.createElement("span");
|
||||
col.innerHTML = stats.getElementsByTagName("ligne")[i].getAttribute("nom");
|
||||
lign.appendChild(col);
|
||||
var col = document.createElement("span");
|
||||
col.innerHTML = stats.getElementsByTagName("ligne")[i].getAttribute("nombre");
|
||||
lign.appendChild(col);
|
||||
tableau_body.appendChild(lign);
|
||||
}
|
||||
}
|
||||
lign.className += " foot";
|
||||
},
|
||||
onFailure: function() { printEtat(3); }
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function GSPC_addStatLign(lign, ligne)
|
||||
{
|
||||
lign.onclick = function() { window.scrollTo(0,0); GSPC_viewligne(ligne) };
|
||||
}
|
||||
|
||||
function GSPC_viewligne(ligne)
|
||||
{
|
||||
$('contenu').innerHTML = "";
|
||||
var titre = document.createElement("h2");
|
||||
titre.innerHTML = "Liste des porte-clefs de la ligne " + ligne;
|
||||
$('contenu').appendChild(titre);
|
||||
|
||||
GSPC_delay_viewligne(ligne);
|
||||
}
|
||||
|
||||
function GSPC_delay_viewligne(ligne)
|
||||
{
|
||||
if (GSPC_origin_liste == false)
|
||||
GSPC_delay = setTimeout(GSPC_delay_viewligne, 200, ligne);
|
||||
else
|
||||
{
|
||||
GSPC_liste = new Array();
|
||||
for (var i = 0; i < GSPC_origin_liste.length; i++)
|
||||
{
|
||||
if (GSPC_origin_liste[i][3] == ligne)
|
||||
GSPC_liste.push(GSPC_origin_liste[i]);
|
||||
}
|
||||
GSPC_lastSort = -1;
|
||||
|
||||
GSPC_viewliste();
|
||||
}
|
||||
}
|
||||
|
||||
function GSPC_addScreen(modif)
|
||||
{
|
||||
formulaire = document.createElement("form");
|
||||
formulaire.id = "add"
|
||||
formulaire.onsubmit = function(){ checkAndAdd(modif); return false; }
|
||||
lab_nom = document.createElement("label");
|
||||
lab_nom.innerHTML = "Nom/marque :";
|
||||
lab_nom.setAttribute("for", "nompc");
|
||||
inp_nom = document.createElement("input");
|
||||
if(modif)
|
||||
inp_nom.value = GSPC_liste[modif-1][1];
|
||||
inp_nom.type = "text";
|
||||
inp_nom.size = "34";
|
||||
inp_nom.maxLength = "250";
|
||||
inp_nom.id = "nompc";
|
||||
|
||||
lab_carac = document.createElement("label");
|
||||
lab_carac.innerHTML = "Caractéristiques :";
|
||||
lab_carac.setAttribute("for", "caracpc");
|
||||
inp_carac = document.createElement("input");
|
||||
if(modif)
|
||||
inp_carac.value = GSPC_liste[modif-1][2];
|
||||
inp_carac.type = "text";
|
||||
inp_carac.size = "34";
|
||||
inp_carac.maxLength = "250";
|
||||
inp_carac.id = "caracpc";
|
||||
|
||||
lab_lign = document.createElement("label");
|
||||
lab_lign.innerHTML = "Ligne :";
|
||||
lab_lign.setAttribute("for", "lignepc");
|
||||
inp_lign = document.createElement("input");
|
||||
if(modif)
|
||||
inp_lign.value = GSPC_liste[modif-1][3];
|
||||
inp_lign.type = "text";
|
||||
inp_lign.size = "10";
|
||||
inp_lign.maxLength = "3";
|
||||
inp_lign.id = "lignepc";
|
||||
|
||||
lab_quan = document.createElement("label");
|
||||
lab_quan.innerHTML = "Quantité :";
|
||||
lab_quan.setAttribute("for", "quantitepc");
|
||||
sel_quan = document.createElement("select");
|
||||
sel_quan.id = "quantitepc";
|
||||
sel_quan_1 = document.createElement("option");
|
||||
sel_quan_1.value = "1";
|
||||
sel_quan_1.innerHTML = "Simple";
|
||||
sel_quan_2 = document.createElement("option");
|
||||
sel_quan_2.value = "2";
|
||||
sel_quan_2.innerHTML = "Double";
|
||||
sel_quan_3 = document.createElement("option");
|
||||
sel_quan_3.value = "3";
|
||||
sel_quan_3.innerHTML = "Triple";
|
||||
sel_quan_4 = document.createElement("option");
|
||||
sel_quan_4.value = "4";
|
||||
sel_quan_4.innerHTML = "Quadruple";
|
||||
|
||||
inp_submit = document.createElement("input");
|
||||
inp_submit.type = "submit";
|
||||
if (modif)
|
||||
inp_submit.value = "Modifier";
|
||||
else
|
||||
inp_submit.value = "Ajouter";
|
||||
inp_submit.style.marginLeft = "165px";
|
||||
|
||||
formulaire.appendChild(lab_nom);
|
||||
formulaire.appendChild(inp_nom);
|
||||
formulaire.appendChild(document.createElement("br"));
|
||||
formulaire.appendChild(lab_carac);
|
||||
formulaire.appendChild(inp_carac);
|
||||
formulaire.appendChild(document.createElement("br"));
|
||||
formulaire.appendChild(lab_lign);
|
||||
formulaire.appendChild(inp_lign);
|
||||
formulaire.appendChild(document.createElement("br"));
|
||||
formulaire.appendChild(lab_quan);
|
||||
sel_quan.appendChild(sel_quan_1);
|
||||
sel_quan.appendChild(sel_quan_2);
|
||||
sel_quan.appendChild(sel_quan_3);
|
||||
sel_quan.appendChild(sel_quan_4);
|
||||
formulaire.appendChild(sel_quan);
|
||||
formulaire.appendChild(document.createElement("br"));
|
||||
if(modif)
|
||||
sel_quan.value = GSPC_liste[modif-1][4];
|
||||
formulaire.appendChild(document.createElement("br"));
|
||||
formulaire.appendChild(inp_submit);
|
||||
if (modif)
|
||||
{
|
||||
inp_del = document.createElement("input");
|
||||
inp_del.type = "button";
|
||||
inp_del.value = "Supprimer";
|
||||
inp_del.onclick = function() { GSPC_del(modif); };
|
||||
inp_del.style.marginLeft = "15px";
|
||||
formulaire.appendChild(inp_del);
|
||||
}
|
||||
$('contenu').appendChild(formulaire);
|
||||
$('nompc').focus();
|
||||
|
||||
confirmation = document.createElement("h3");
|
||||
confirmation.style.color = "teal";
|
||||
confirmation.id = "confirm";
|
||||
$('contenu').appendChild(confirmation);
|
||||
}
|
||||
|
||||
function GSPC_del(modif)
|
||||
{
|
||||
$('nompc').disabled = true;
|
||||
$('caracpc').disabled = true;
|
||||
$('lignepc').disabled = true;
|
||||
$('quantitepc').disabled = true;
|
||||
|
||||
var ligne = GSPC_liste[modif-1][3];
|
||||
|
||||
new Ajax.Request(
|
||||
'ajax.php?d=action&a=GSPC&p=del',
|
||||
{
|
||||
method: 'post',
|
||||
parameters: {id: GSPC_liste[modif-1][0]},
|
||||
onSuccess: function(transport, json)
|
||||
{
|
||||
if (json.statut != 1)
|
||||
{
|
||||
firstLoad();
|
||||
alert("Vous avez été déconnecté. Le porte-clef n'a pas été enregistré");
|
||||
}
|
||||
else
|
||||
{
|
||||
$('contenu').innerHTML = "";
|
||||
confirmation = document.createElement("h2");
|
||||
confirmation.style.color = "teal";
|
||||
confirmation.innerHTML = "Porte-clef supprimé avec succès !";
|
||||
$('contenu').appendChild(confirmation);
|
||||
$('nbpc').innerHTML = json.nombre;
|
||||
|
||||
GSPC_loadList();
|
||||
GSPC_delay_viewligne(ligne);
|
||||
}
|
||||
},
|
||||
onFailure: function() { printEtat(3); }
|
||||
}
|
||||
);
|
||||
|
||||
$('contenu').innerHTML = "<h2 class=\"vp\">Veuillez patienter suppression du porte-clef en cours ...</h2>";
|
||||
}
|
||||
|
||||
function checkAndAdd(modif)
|
||||
{
|
||||
if(modif)
|
||||
modif = "&id=" + GSPC_liste[modif-1][0];
|
||||
else
|
||||
modif = "";
|
||||
|
||||
if ($('nompc').value == "")
|
||||
{
|
||||
$('nompc').className = "erreur";
|
||||
alert('Veuillez indiquer une marque ou un nom !');
|
||||
$('nompc').focus();
|
||||
}
|
||||
else if ($('lignepc').value == "")
|
||||
{
|
||||
$('lignepc').className = "erreur";
|
||||
alert('Veuillez indiquer une ligne !');
|
||||
$('lignepc').focus();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('nompc').disabled = true;
|
||||
$('caracpc').disabled = true;
|
||||
$('lignepc').disabled = true;
|
||||
$('quantitepc').disabled = true;
|
||||
|
||||
new Ajax.Request(
|
||||
'ajax.php?d=action&a=GSPC' + modif,
|
||||
{
|
||||
method: 'post',
|
||||
parameters: {nom: $('nompc').value, caracteristique: $('caracpc').value, ligne: $('lignepc').value, quantite: $('quantitepc').value},
|
||||
onSuccess: function(transport, json)
|
||||
{
|
||||
if (json.statut != 1)
|
||||
{
|
||||
firstLoad();
|
||||
alert("Vous avez été déconnecté. Le porte-clef n'a pas été enregistré");
|
||||
}
|
||||
else
|
||||
{
|
||||
GSPC_loadList();
|
||||
|
||||
if(modif)
|
||||
{
|
||||
$('contenu').innerHTML = "";
|
||||
confirmation = document.createElement("h2");
|
||||
confirmation.style.color = "teal";
|
||||
confirmation.innerHTML = "Porte-clef modifié avec succès !";
|
||||
$('contenu').appendChild(confirmation);
|
||||
$('nbpc').innerHTML = json.nombre;
|
||||
|
||||
GSPC_delay_viewligne(lign);
|
||||
}
|
||||
else
|
||||
{
|
||||
$('nompc').value = "";
|
||||
$('nompc').className = "";
|
||||
$('caracpc').value = "";
|
||||
$('lignepc').className = "";
|
||||
$('quantitepc').value = 1;
|
||||
|
||||
$('nompc').disabled = false;
|
||||
$('caracpc').disabled = false;
|
||||
$('lignepc').disabled = false;
|
||||
$('quantitepc').disabled = false;
|
||||
|
||||
$('nbpc').innerHTML = json.nombre;
|
||||
|
||||
$('confirm').innerHTML = "Porte-clef ajouté avec succès !";
|
||||
setTimeout("$('confirm').innerHTML = '';", 3500);
|
||||
|
||||
$('nompc').focus();
|
||||
}
|
||||
}
|
||||
},
|
||||
onFailure: function() { printEtat(3); }
|
||||
}
|
||||
);
|
||||
|
||||
if(modif)
|
||||
{
|
||||
lign = $('lignepc').value;
|
||||
$('contenu').innerHTML = "<h2 class=\"vp\">Veuillez patienter, modification du porte-clef en cours ...</h2>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function GSPC_viewliste()
|
||||
{
|
||||
var pagination = document.createElement("div");
|
||||
pagination.className = "pagination top";
|
||||
pagination.id = "pagination1";
|
||||
$('contenu').appendChild(pagination);
|
||||
|
||||
var tableau = document.createElement("div");
|
||||
tableau.className = "table cols3";
|
||||
tableau.id = "list";
|
||||
var tableau_head = document.createElement("div");
|
||||
tableau_head.className = "head";
|
||||
var head_th = document.createElement("span");
|
||||
head_th.innerHTML = "Nom/Marque";
|
||||
head_th.onclick = function(){ GSPC_showliste(1, 0); }
|
||||
tableau_head.appendChild(head_th);
|
||||
var head_th = document.createElement("span");
|
||||
head_th.innerHTML = "Caractéristique";
|
||||
head_th.onclick = function(){ GSPC_showliste(2, 0); }
|
||||
tableau_head.appendChild(head_th);
|
||||
var head_th = document.createElement("span");
|
||||
head_th.innerHTML = "Ligne";
|
||||
head_th.onclick = function(){ GSPC_showliste(3, 0); }
|
||||
tableau_head.appendChild(head_th);
|
||||
tableau.appendChild(tableau_head);
|
||||
var tableau_body = document.createElement("div");
|
||||
tableau_body.className = "body";
|
||||
tableau_body.id = "bodyList";
|
||||
tableau_body.innerHTML = '<div class="lign elt0 foot">Chargement de la liste en cours ... <img src="applications/GSPC/loader.gif" alt="Veuillez patienter"></div>';
|
||||
tableau.appendChild(tableau_body);
|
||||
$('contenu').appendChild(tableau);
|
||||
|
||||
var pagination = document.createElement("div");
|
||||
pagination.className = "pagination bottom";
|
||||
pagination.id = "pagination2";
|
||||
$('contenu').appendChild(pagination);
|
||||
|
||||
GSPC_showliste(-1, 0);
|
||||
}
|
||||
|
||||
function GSPC_showliste(tri, page)
|
||||
{
|
||||
if (GSPC_origin_liste == false)
|
||||
setTimeout(GSPC_showliste, 200, tri);
|
||||
else
|
||||
{
|
||||
if (GSPC_liste == false)
|
||||
GSPC_liste = GSPC_origin_liste;
|
||||
|
||||
//On tente un tri
|
||||
if (GSPC_lastSort != tri)
|
||||
{
|
||||
$('bodyList').innerHTML = '<div class="lign elt0 foot">Tri de la liste en cours ...</div>';
|
||||
GSPC_liste = GSPC_liste.sort(function(a,b){return a[tri].localeCompare(b[tri]);});
|
||||
GSPC_lastSort = tri;
|
||||
}
|
||||
|
||||
nbPages = Math.ceil(GSPC_liste.length / nbParPage);
|
||||
$('pagination1').innerHTML = "";
|
||||
$('pagination2').innerHTML = "";
|
||||
for (var i = 0; i < 4 && i < nbPages; i++)
|
||||
GSPC_addLinkPagination(i);
|
||||
if (page > 5 && i < nbPages)
|
||||
{
|
||||
$('pagination1').innerHTML += "...";
|
||||
$('pagination2').innerHTML += "...";
|
||||
}
|
||||
for (var i = (page < 6?4:page - 2); (i < page + 3 && i < nbPages); i++)
|
||||
GSPC_addLinkPagination(i);
|
||||
if (page <= 5 && i < nbPages)
|
||||
{
|
||||
$('pagination1').innerHTML += "...";
|
||||
$('pagination2').innerHTML += "...";
|
||||
for (var i = Math.ceil(nbPages/2) - 2; i < nbPages/2 + 2; i++)
|
||||
GSPC_addLinkPagination(i);
|
||||
}
|
||||
if (page + 3 < nbPages - 4)
|
||||
{
|
||||
$('pagination1').innerHTML += "...";
|
||||
$('pagination2').innerHTML += "...";
|
||||
}
|
||||
for (var i = (page + 3 >= nbPages - 4?page + 3:nbPages - 4); (i < nbPages); i++)
|
||||
GSPC_addLinkPagination(i);
|
||||
|
||||
start = page * nbParPage;
|
||||
$('bodyList').innerHTML = "";
|
||||
|
||||
for (var i = 0; i < nbParPage && i + start < GSPC_liste.length; i++)
|
||||
{
|
||||
var lign = document.createElement("div");
|
||||
lign.className = "elt" + (i%2);
|
||||
GSPC_addLinkPC(lign, i + start);
|
||||
var col = document.createElement("span");
|
||||
col.innerHTML = GSPC_liste[i + start][1];
|
||||
lign.appendChild(col);
|
||||
var col = document.createElement("span");
|
||||
col.innerHTML = GSPC_liste[i + start][2];
|
||||
lign.appendChild(col);
|
||||
var col = document.createElement("span");
|
||||
col.innerHTML = GSPC_liste[i + start][3];
|
||||
lign.appendChild(col);
|
||||
$('bodyList').appendChild(lign);
|
||||
}
|
||||
lign.className += " foot"
|
||||
}
|
||||
}
|
||||
|
||||
function GSPC_addLinkPagination(page)
|
||||
{
|
||||
var lnkP = document.createElement("a");
|
||||
lnkP.href = "javascript:GSPC_showliste(" + GSPC_lastSort + ", " + page + ");";
|
||||
lnkP.innerHTML = page+1;
|
||||
$('pagination1').appendChild(lnkP);
|
||||
var lnkP = document.createElement("a");
|
||||
lnkP.href = "javascript:GSPC_showliste(" + GSPC_lastSort + ", " + page + ");";
|
||||
lnkP.innerHTML = page+1;
|
||||
$('pagination2').appendChild(lnkP);
|
||||
}
|
||||
|
||||
function GSPC_addLinkPC(elt, idPC)
|
||||
{
|
||||
elt.onclick = function() {
|
||||
$('contenu').innerHTML = "";
|
||||
var titre = document.createElement("h2");
|
||||
titre.innerHTML = "Modification d'un porte-clef";
|
||||
$('contenu').appendChild(titre);
|
||||
|
||||
GSPC_addScreen(idPC+1);
|
||||
}
|
||||
}
|
||||
|
||||
function GSPC_apropos()
|
||||
{
|
||||
aproposApp("GSPC", "contenu");
|
||||
}
|
BIN
applications/GSPC/loader.gif
Normal file
After Width: | Height: | Size: 673 B |
BIN
applications/GSPC/loader1.gif
Normal file
After Width: | Height: | Size: 673 B |
280
applications/GSPC/style.css
Normal file
@ -0,0 +1,280 @@
|
||||
html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background: -webkit-gradient(
|
||||
linear,
|
||||
left top,
|
||||
left bottom,
|
||||
color-stop(0.31, #9eeaff),
|
||||
color-stop(0.66, #e4f9ff),
|
||||
color-stop(1.00, #9eeaff)
|
||||
);
|
||||
background: -moz-linear-gradient(
|
||||
center bottom,
|
||||
#9eeaff 31%,
|
||||
#e4f9ff 66%,
|
||||
#9eeaff 100%
|
||||
);
|
||||
|
||||
font-family: serif;
|
||||
min-height: 80%;
|
||||
}
|
||||
|
||||
a:link, a:visited {
|
||||
text-decoration: none;
|
||||
color:#000000;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
margin-left: 250px;
|
||||
}
|
||||
|
||||
#GSPC_menu a:link, #GSPC_menu a:visited, .pagination a:link, .pagination a:visited {
|
||||
text-decoration: none;
|
||||
color:#FFFFFF;
|
||||
}
|
||||
|
||||
#GSPC_menu a:hover, .pagination a:hover, a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.news {
|
||||
background: -webkit-gradient(
|
||||
linear,
|
||||
left top,
|
||||
right bottom,
|
||||
color-stop(0.31, #93b4ff),
|
||||
color-stop(0.66, #c5ceff)
|
||||
);
|
||||
background: -moz-linear-gradient(
|
||||
right bottom,
|
||||
#93b4ff 31%,
|
||||
#c5ceff 66%
|
||||
);
|
||||
|
||||
border: 2px solid #5290ff;
|
||||
border-radius: 17px;
|
||||
box-shadow: 3px 4px 5px #444466;
|
||||
|
||||
height: 127px;
|
||||
margin: auto;
|
||||
padding: 20px;
|
||||
text-align: left;
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
.vp {
|
||||
color: orange;
|
||||
}
|
||||
|
||||
#GSPC_menu {
|
||||
background: -webkit-gradient(
|
||||
linear,
|
||||
left top,
|
||||
left bottom,
|
||||
color-stop(0.31, #5290ff),
|
||||
color-stop(0.90, #a3c4ff)
|
||||
);
|
||||
background: -moz-linear-gradient(
|
||||
center bottom,
|
||||
#5290ff 31%,
|
||||
#a3c4ff 90%
|
||||
);
|
||||
|
||||
border-right: 2px dotted white;
|
||||
color:#FFFFFF;
|
||||
font-weight: bold;
|
||||
height: 100%;
|
||||
left: 0px;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
-webkit-padding-start: 0;
|
||||
position: fixed;
|
||||
text-align: center;
|
||||
top: 0px;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
#GSPC_menu h2 {
|
||||
margin-left: 69px;
|
||||
}
|
||||
|
||||
#GSPC_menu li {
|
||||
margin-bottom: 40px;
|
||||
text-align: center;
|
||||
width: 250px;
|
||||
}
|
||||
#GSPC_menu li[onclick] {
|
||||
cursor: pointer;
|
||||
}
|
||||
#GSPC_menu li[onclick]:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
span#nompc img {
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
div#contenu {
|
||||
margin-left: 250px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
form#add {
|
||||
background: -webkit-gradient(
|
||||
linear,
|
||||
left top,
|
||||
right bottom,
|
||||
color-stop(0.31, #c9b5e8),
|
||||
color-stop(0.95, #e4daf4)
|
||||
);
|
||||
background: -moz-linear-gradient(
|
||||
center bottom,
|
||||
#c9b5e8 31%,
|
||||
#e4daf4 95%
|
||||
);
|
||||
|
||||
border: 1px solid #8A77A1;
|
||||
border-radius: 25px;
|
||||
box-shadow: 2px 2px 5px #333355;
|
||||
height: 205px;
|
||||
margin: auto;
|
||||
padding: 13px;
|
||||
text-align: left;
|
||||
width: 456px;
|
||||
}
|
||||
|
||||
label {
|
||||
float: left;
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
margin: 10px 7px 10px 0;
|
||||
text-align: right;
|
||||
width: 170px;
|
||||
}
|
||||
label:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
input[type=text], select {
|
||||
margin: 10px 0;
|
||||
transition: background 0.75s;
|
||||
-moz-transition: background 0.75s;
|
||||
-webkit-transition: background 0.75s;
|
||||
-o-transition: background 0.75s;
|
||||
}
|
||||
input, select {
|
||||
background: #00EAF5;
|
||||
border: #009AA5 solid 1px;
|
||||
border-radius: 3px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
input:hover, input:focus, select:hover, select:focus {
|
||||
background: #95cdff;
|
||||
}
|
||||
|
||||
input#nompc {
|
||||
font-variant: small-caps;
|
||||
}
|
||||
input#lignepc {
|
||||
text-transform:uppercase;
|
||||
}
|
||||
|
||||
input.erreur, select.erreur {
|
||||
background: #CC0000;
|
||||
border: #A59A00 solid 1px;
|
||||
}
|
||||
|
||||
.table {
|
||||
border: 1px solid black;
|
||||
border-radius: 10px;
|
||||
box-shadow: 3px 3px 5px #666666;
|
||||
margin: auto;
|
||||
}
|
||||
.table .body div {
|
||||
transition: background 500ms;
|
||||
-moz-transition: background 500ms;
|
||||
-webkit-transition: background 500ms;
|
||||
-o-transition: background 500ms;
|
||||
}
|
||||
.table .body div.elt0 {
|
||||
background: #5c93a0;
|
||||
}
|
||||
.table .body div.elt1 {
|
||||
background: #5c96a5;
|
||||
}
|
||||
.table .body div:hover {
|
||||
background: #73B14b;
|
||||
}
|
||||
.table.cols2 div span {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
}
|
||||
.table.cols3 div span {
|
||||
display: inline-block;
|
||||
width: 45%;
|
||||
}
|
||||
.table.cols3 div span+span+span {
|
||||
width: 10%;
|
||||
}
|
||||
.table.cols3 div.body span {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.table.cols3 div.body span+span {
|
||||
text-transform: none;
|
||||
}
|
||||
.table.cols3 div.body span+span+span {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.table div.lign {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.table .head {
|
||||
background: #1070c9;
|
||||
border-bottom: 1px solid black;
|
||||
border-radius: 10px 10px 0 0;
|
||||
font-weight: bolder;
|
||||
display: block;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
.table .foot { border-radius: 0 0 10px 10px; }
|
||||
|
||||
.table#stats {
|
||||
width: 42%;
|
||||
}
|
||||
.table#list {
|
||||
width: 83%;
|
||||
}
|
||||
.table#list .head {
|
||||
cursor: pointer;
|
||||
}
|
||||
.table .body div {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
background: #1070c9;
|
||||
border: 1px solid black;
|
||||
color: white;
|
||||
margin: auto;
|
||||
width: 442px;
|
||||
}
|
||||
.pagination.top {
|
||||
border-radius: 10px 10px 0 0;
|
||||
border-bottom: none;
|
||||
}
|
||||
.pagination.bottom {
|
||||
border-top: none;
|
||||
border-radius: 0 0 10px 10px;
|
||||
box-shadow: 0px 2px 7px #666666;
|
||||
}
|
||||
.pagination a {
|
||||
cursor: pointer;
|
||||
padding: 0 5px;
|
||||
}
|
95
applications/chat/app.js
Normal file
@ -0,0 +1,95 @@
|
||||
var chat_lastTime = 0;
|
||||
var chat_refresh_time = 1500;
|
||||
|
||||
function chat_MAJ()
|
||||
{
|
||||
new Ajax.Request(
|
||||
'ajax.php',
|
||||
{
|
||||
method: 'get',
|
||||
parameters: {time: chat_lastTime, d: "action", a: "chat"},
|
||||
onSuccess: function(transport, json) {
|
||||
if (json.messages.length > 0)
|
||||
{
|
||||
for(i=json.messages.length-1; i>=0; i--)
|
||||
{
|
||||
//On tranforme le timestamp en date correcte
|
||||
var date = new Date();
|
||||
var now = new Date();
|
||||
date.setTime(json.messages[i]["timestamp"]*1000);
|
||||
|
||||
//On affiche tout
|
||||
var newRow = $('chat').insertRow(0);
|
||||
var newCell = newRow.insertCell(0);
|
||||
if (date.getDay() != now.getDay())
|
||||
newCell.innerHTML = '[' + json.messages[i]["pseudo"] + '] ' + (date.getDay()<10?"0"+date.getDay():date.getDay()) + "/" + (date.getMonth()<10?"0"+date.getMonth():date.getMonth()) + " " + (date.getHours()<10?"0"+date.getHours():date.getHours()) + ":" + (date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes()) + ":" + (date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds());
|
||||
else
|
||||
newCell.innerHTML = '[' + json.messages[i]["pseudo"] + '] ' + (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 = json.messages[i]["message"];
|
||||
if (chat_lastTime < json.messages[i]["timestamp"])
|
||||
chat_lastTime = json.messages[i]["timestamp"];
|
||||
}
|
||||
}
|
||||
},
|
||||
onFailure: function() { chat_MAJ(); }
|
||||
}
|
||||
);
|
||||
chat_refresh = setTimeout("chat_MAJ()", chat_refresh_time);
|
||||
}
|
||||
|
||||
function chat_clearScreen()
|
||||
{
|
||||
$('chat').innerHTML = "";
|
||||
chat_write("JS", "Nettoyage de l'écran");
|
||||
}
|
||||
|
||||
function chat_refreshScreen()
|
||||
{
|
||||
chat_refresh = setTimeout("chat_MAJ()", 1);
|
||||
}
|
||||
|
||||
function chat_reset()
|
||||
{
|
||||
chat_lastTime = 0;
|
||||
}
|
||||
|
||||
function chat_changeRefreshTime(newTime)
|
||||
{
|
||||
if (newTime > 0)
|
||||
{
|
||||
if (newTime < 999)
|
||||
newTime *= 1000;
|
||||
chat_refresh_time = newTime;
|
||||
|
||||
chat_write("JS", "Temps de rafraîchissement passé à " + newTime/1000 + " seconde(s)");
|
||||
}
|
||||
}
|
||||
|
||||
function chat_sendCommande(commande)
|
||||
{
|
||||
new Ajax.Request(
|
||||
'ajax.php?d=action&a=chat',
|
||||
{
|
||||
method: 'post',
|
||||
parameters: {comm: commande},
|
||||
onSuccess: function(transport, json) {
|
||||
if (json.confirm)
|
||||
chat_write("Server", json.confirm);
|
||||
else
|
||||
chat_write("Server", "Rien");
|
||||
},
|
||||
onFailure: function() { alert("La requête a échouée!"); }
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function chat_write(posteur, message)
|
||||
{
|
||||
var date = new Date();
|
||||
var newRow = $('chat').insertRow(0);
|
||||
var newCell = newRow.insertCell(0);
|
||||
newCell.innerHTML = '<em>' + posteur + '</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>" + message + "</em>";
|
||||
}
|
217
applications/users/app.js
Normal file
@ -0,0 +1,217 @@
|
||||
var USERS_liste = false;
|
||||
|
||||
function USERS_add()
|
||||
{
|
||||
$('corps').innerHTML = "";
|
||||
USERS_display("add", false);
|
||||
}
|
||||
|
||||
function USERS_modif(id)
|
||||
{
|
||||
$('corps').innerHTML = "";
|
||||
if (!USERS_liste)
|
||||
USERS_loadListe(false);
|
||||
|
||||
USERS_display("modif", USERS_liste[id]);
|
||||
}
|
||||
|
||||
function USERS_delete(id)
|
||||
{
|
||||
alert("Demande de suppression de l'utilisateur : " + id);
|
||||
}
|
||||
|
||||
function USERS_loadListe(async)
|
||||
{
|
||||
new Ajax.Request(
|
||||
'ajax.php',
|
||||
{
|
||||
method: 'get',
|
||||
asynchronous: async,
|
||||
parameters: {d: "action", a: "users"},
|
||||
onSuccess: function(transport, json)
|
||||
{
|
||||
USERS_liste = USERS_liste;
|
||||
},
|
||||
onFailure: function() { printEtat(3); }
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function USERS_display(page, plus)
|
||||
{
|
||||
alert('pom');
|
||||
if (page == "add" || page == "modif")
|
||||
{
|
||||
formMod = document.createElement("form");
|
||||
if (plus)
|
||||
formMod.onsubmit = function() { USERS_sendModif(plus.id); return false; }
|
||||
else
|
||||
formMod.onsubmit = USERS_sendAdd;
|
||||
|
||||
fieldMod = document.createElement("fieldset");
|
||||
fieldMod.style.width = "500px";
|
||||
fieldMod.style.margin = "auto";
|
||||
fieldleg = document.createElement("legend");
|
||||
fieldleg.innerHTML = "Utilisateur";
|
||||
fieldMod.appendChild(fieldleg);
|
||||
|
||||
labelchamp = document.createElement("label");
|
||||
labelchamp.innerHTML = "Nom :";
|
||||
labelchamp.setAttribute("for", "nom");
|
||||
fieldMod.appendChild(labelchamp);
|
||||
fieldMod.innerHTML += " ";
|
||||
inputchamp = document.createElement("input");
|
||||
inputchamp.type = "text";
|
||||
inputchamp.id = "nom";
|
||||
if (plus)
|
||||
inputchamp.value = plus.pseudo;
|
||||
fieldMod.appendChild(inputchamp);
|
||||
|
||||
fieldMod.appendChild(document.createElement("br"));
|
||||
|
||||
labelchamp = document.createElement("label");
|
||||
labelchamp.innerHTML = "Mot de passe :";
|
||||
labelchamp.setAttribute("for", "mdp");
|
||||
fieldMod.appendChild(labelchamp);
|
||||
fieldMod.innerHTML += " ";
|
||||
inputchamp = document.createElement("input");
|
||||
inputchamp.type = "password";
|
||||
inputchamp.id = "mdp";
|
||||
fieldMod.appendChild(inputchamp);
|
||||
|
||||
fieldMod.appendChild(document.createElement("br"));
|
||||
|
||||
labelchamp = document.createElement("label");
|
||||
labelchamp.innerHTML = "Confirmer mot de passe :";
|
||||
labelchamp.setAttribute("for", "conf");
|
||||
fieldMod.appendChild(labelchamp);
|
||||
fieldMod.innerHTML += " ";
|
||||
inputchamp = document.createElement("input");
|
||||
inputchamp.type = "password";
|
||||
inputchamp.id = "conf";
|
||||
fieldMod.appendChild(inputchamp);
|
||||
|
||||
fieldMod.appendChild(document.createElement("br"));
|
||||
fieldMod.appendChild(document.createElement("br"));
|
||||
|
||||
labelchamp = document.createElement("label");
|
||||
labelchamp.innerHTML = "Adresse électronique :";
|
||||
labelchamp.setAttribute("for", "mail");
|
||||
fieldMod.appendChild(labelchamp);
|
||||
fieldMod.innerHTML += " ";
|
||||
inputchamp = document.createElement("input");
|
||||
inputchamp.type = "text";
|
||||
if (plus)
|
||||
inputchamp.value = plus.mail;
|
||||
inputchamp.id = "mail";
|
||||
fieldMod.appendChild(inputchamp);
|
||||
|
||||
fieldMod.appendChild(document.createElement("br"));
|
||||
fieldMod.appendChild(document.createElement("br"));
|
||||
|
||||
inputchamp = document.createElement("input");
|
||||
inputchamp.type = "submit";
|
||||
inputchamp.value = "Continuer";
|
||||
fieldMod.appendChild(inputchamp);
|
||||
formMod.appendChild(fieldMod);
|
||||
$('corps').appendChild(formMod);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (plus)
|
||||
USERS_liste = plus.users;
|
||||
|
||||
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 = "Action";
|
||||
trMess.appendChild(thMess);
|
||||
thMess = document.createElement("th");
|
||||
thMess.innerHTML = "Utilisateur";
|
||||
trMess.appendChild(thMess);
|
||||
thMess = document.createElement("th");
|
||||
thMess.innerHTML = "Adresse électronique";
|
||||
trMess.appendChild(thMess);
|
||||
thMess = document.createElement("th");
|
||||
thMess.innerHTML = "Dernière connexion";
|
||||
trMess.appendChild(thMess);
|
||||
thMess = document.createElement("th");
|
||||
thMess.innerHTML = "Dernière IP";
|
||||
trMess.appendChild(thMess);
|
||||
theMess.appendChild(trMess);
|
||||
tableMessages.appendChild(theMess);
|
||||
tboMess = document.createElement("tbody");
|
||||
tboMess.id = "users";
|
||||
tableMessages.appendChild(tboMess);
|
||||
$('corps').appendChild(tableMessages);
|
||||
|
||||
nbUsers = USERS_liste.length;
|
||||
for(i=0; i<nbUsers; i++)
|
||||
{
|
||||
var date = new Date();
|
||||
date.setTime(USERS_liste[i].last_visite*1000);
|
||||
|
||||
var newRow = $('users').insertRow(-1);
|
||||
var newCell = newRow.insertCell(0);
|
||||
newCell.innerHTML = '<a href="javascript:USERS_modif(' + i + ');">Modifier</a>';
|
||||
var newCell = newRow.insertCell(1);
|
||||
newCell.innerHTML = USERS_liste[i].pseudo;
|
||||
var newCell = newRow.insertCell(2);
|
||||
newCell.innerHTML = USERS_liste[i].mail;
|
||||
var newCell = newRow.insertCell(3);
|
||||
newCell.innerHTML = (date.getDay()<10?"0"+date.getDay():date.getDay()) + "/" + (date.getMonth()<10?"0"+date.getMonth():date.getMonth()) + "/" + date.getFullYear() + " " + (date.getHours()<10?"0"+date.getHours():date.getHours()) + ":" + (date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes()) + ":" + (date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds());
|
||||
var newCell = newRow.insertCell(4);
|
||||
newCell.innerHTML = USERS_liste[i].last_ip;
|
||||
}
|
||||
|
||||
var newRow = $('users').insertRow(-1);
|
||||
var newCell = newRow.insertCell(0);
|
||||
newCell.innerHTML = '<a href="javascript:USERS_add();">Ajouter</a>';
|
||||
}
|
||||
}
|
||||
|
||||
function USERS_sendAdd()
|
||||
{
|
||||
if ($('mdp').value.length < 5)
|
||||
alert("Le mot de passe est trop court !\nIl doit faire au moins 5 caractères.");
|
||||
else if ($('mdp').value != $('conf').value)
|
||||
alert("Le mot de passe est sa confirmation est différent !");
|
||||
else
|
||||
{
|
||||
new Ajax.Request(
|
||||
'ajax.php?d=action&a=users',
|
||||
{
|
||||
method: 'post',
|
||||
asynchronous: async,
|
||||
parameters: {nom: $('nom').value, mdp: $('mdp').value, mail: $('mail').value},
|
||||
onSuccess: function(transport, json)
|
||||
{
|
||||
USERS_liste = json.users;
|
||||
},
|
||||
onFailure: function() { printEtat(3); }
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function USERS_sendModif(id)
|
||||
{
|
||||
if ($('mdp').value.length < 5)
|
||||
alert("Le mot de passe est trop court !\nIl doit faire au moins 5 caractères.");
|
||||
else if ($('mdp').value != $('conf').value)
|
||||
alert("Le mot de passe est sa confirmation est différent !");
|
||||
else
|
||||
{
|
||||
alert("Demande de modification pour l'utilisateur ayant l'ID : " + id);
|
||||
|
||||
|
||||
}
|
||||
|
||||
$('mdp').value = "";
|
||||
$('conf').value = "";
|
||||
}
|
116
common.css
Normal file
@ -0,0 +1,116 @@
|
||||
body {
|
||||
background: url('images/background.jpg') fixed #E1E2E4;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
#btMenu {
|
||||
background-image: url('images/menu.png');
|
||||
height: 60px;
|
||||
left: 10px;
|
||||
position: fixed;
|
||||
top: 1px;
|
||||
width: 60px;
|
||||
z-index: 10;
|
||||
}
|
||||
#btMenu:hover {
|
||||
background-position: 0 -60px;
|
||||
}
|
||||
#btMenu:active {
|
||||
background-position: 0 -120px;
|
||||
}
|
||||
#btMenu span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.submenu
|
||||
{
|
||||
background: #D6EDF8;
|
||||
border: solid 1px #B6CDD8;
|
||||
display: none;
|
||||
padding: 0px;
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
#menu {
|
||||
margin: 10px;
|
||||
position: fixed;
|
||||
top: 5px;
|
||||
left: 20px;
|
||||
width: 155px;
|
||||
}
|
||||
#menu #nameApp {
|
||||
font-family: serif;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
#menu #nameApp, .submenu li.hr {
|
||||
border-bottom: groove 3px gray;
|
||||
margin-bottom: 2px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
.submenu ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.submenu li.item {
|
||||
color: #6BCCD6;
|
||||
display: block;
|
||||
line-height: 20px;
|
||||
padding: 0 5px 0 5px;
|
||||
text-decoration: none;
|
||||
}
|
||||
.submenu li.item:hover {
|
||||
background-color: #797979;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
div#etat {
|
||||
background-color: #CDF;
|
||||
border-right: solid 1px #89B;
|
||||
border-top: solid 1px #89B;
|
||||
border-radius: 5px;
|
||||
bottom: 0px;
|
||||
font-size: small;
|
||||
font-style: italic;
|
||||
left: 0px;
|
||||
padding: 1px 4px;
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
|
||||
div.autocomplete {
|
||||
position: absolute;
|
||||
width: 500px;
|
||||
background-color: white;
|
||||
border: 1px solid #888;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
div.autocomplete ul {
|
||||
list-style-type: none;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
max-height: 20em;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
div.autocomplete ul li.selected {
|
||||
background-color: #ffb;
|
||||
}
|
||||
|
||||
div.autocomplete ul li {
|
||||
list-style-type:none;
|
||||
display: block;
|
||||
margin: 0;
|
||||
padding: 2px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
div.autocomplete ul li span.informal {
|
||||
color: gray;
|
||||
}
|
BIN
favicon.ico
Normal file
After Width: | Height: | Size: 162 KiB |
BIN
fonts/kidprint.ttf
Normal file
BIN
images/background.jpg
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
images/etats/alpha.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/etats/beta.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
images/etats/construction.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
images/etats/final.png
Normal file
After Width: | Height: | Size: 170 B |
BIN
images/logog.png
Normal file
After Width: | Height: | Size: 181 KiB |
BIN
images/menu.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
images/menu.xcf
Normal file
BIN
images/pomme.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
images/titres/403.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/403en.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
images/titres/404.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/404en.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/titres/UK.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/US.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
images/titres/abonnement.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
images/titres/abonnements.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
images/titres/aboutthissite.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/titres/accueil.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
images/titres/achatenligne.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
images/titres/actualites.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
images/titres/allemagne.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
images/titres/allemand.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
images/titres/aproposdusite.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/titres/authentification.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
images/titres/avertissements.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/titres/bienvenue.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
images/titres/bienvenueAlisson.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/bienvenueChristine.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/titres/bienvenueFlorence.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/bienvenueFlorent.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
images/titres/bienvenuePierreO.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/titres/bienvenueRaphael.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/titres/bienvenueSerge.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/boitedenvoi.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
images/titres/boitedereception.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/brouillons.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
images/titres/centrelabappli.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
images/titres/chat.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
images/titres/cluedo.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
images/titres/commande.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
images/titres/contact.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
images/titres/deutschland.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
images/titres/developpement.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/titres/developpements.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
images/titres/download.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
images/titres/downloads.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
images/titres/drafts.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
images/titres/england.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
images/titres/etatsunis.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
images/titres/feed.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
images/titres/fluxrss.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
images/titres/foireauxquestions.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/forum.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
images/titres/france.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
images/titres/gerersamusique.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/gerersesporteclefs.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
images/titres/germany.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
images/titres/histoire.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
images/titres/history.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
images/titres/home.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
images/titres/homepage.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
images/titres/identification.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
images/titres/inscription.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
images/titres/jeuxenligne.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
images/titres/journal.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
images/titres/labapplicenter.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/lastdevelopments.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/titres/login.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
images/titres/messagerie.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
images/titres/news.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
images/titres/newspaper.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
images/titres/nouveautes.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
images/titres/onlinegames.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
images/titres/pagededemarrage.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/titres/paiement.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
images/titres/parametres.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
images/titres/partage.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
images/titres/partenaires.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
images/titres/pochettescd.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
images/titres/pommail.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
images/titres/popmail.png
Normal file
After Width: | Height: | Size: 6.4 KiB |