This repository has been archived on 2020-08-21. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
pa4home/onyx2/include/applications/GSM/main.php
2011-07-30 00:14:52 +02:00

326 lines
No EOL
9.7 KiB
PHP

<?php
//Fichier appelé pour afficher l'application
$p = strtolower(gpc("p"));
$titre = ucfirst(trim(gpc("titre", "post")));
$auteur = ucwords(trim(gpc("auteur", "post")));
if ($p == "liste")
{
$bdd = new BDD();
$req = $bdd->query("SELECT id, titre, chanteur, CDDeca, CDChanteur, CDAnnee FROM gsm ORDER BY id;");
$req["nombre"] = $bdd->num_rows;
$reqCDA = $bdd->query("SELECT id, nom FROM gsm_cdannee;");
$reqCDC = $bdd->query("SELECT id, nom FROM gsm_cdchant;");
$reqCDD = $bdd->query("SELECT id, nom FROM gsm_cddece;");
$bdd->deconnexion();
$xml_cds = $xml->createElement("liste");
if (!empty($req))
foreach($req as $ligne)
{
if (!empty($ligne["id"]))
{
$chan = $xml->createElement("chanson");
$chan->setAttribute("id", $ligne["id"]);
$chan->setAttribute("titre", $ligne["titre"]);
$chan->setAttribute("chanteur", $ligne["chanteur"]);
$chan->setAttribute("CD_decenie", $ligne["CDDeca"]);
$chan->setAttribute("CD_annee", $ligne["CDAnnee"]);
$chan->setAttribute("CD_interprete", $ligne["CDChanteur"]);
$xml_cds->appendChild($chan);
}
}
if (!empty($reqCDA))
foreach($reqCDA as $cd)
{
$chan = $xml->createElement("cdannee");
$chan->setAttribute("id", $cd["id"]);
$chan->setAttribute("nom", $cd["nom"]);
$xml_cds->appendChild($chan);
}
if (!empty($reqCDC))
foreach($reqCDC as $cd)
{
$chan = $xml->createElement("cdchant");
$chan->setAttribute("id", $cd["id"]);
$chan->setAttribute("nom", $cd["nom"]);
$xml_cds->appendChild($chan);
}
if (!empty($reqCDD))
foreach($reqCDD as $cd)
{
$chan = $xml->createElement("cddece");
$chan->setAttribute("id", $cd["id"]);
$chan->setAttribute("nom", $cd["nom"]);
$xml_cds->appendChild($chan);
}
$xml_root->appendChild($xml_cds);
}
elseif ($p == "add" && ($type = intval(gpc("type", "post"))) && ($title = gpc("title", "post")))
{
$color = hexdec(gpc("color", "post"));
if ($type == 1)
$table = "gsm_cdannee";
else if ($type == 2)
$table = "gsm_cdchant";
else
$table = "gsm_cddece";
$bdd = new BDD();
$bdd->escape($title);
$bdd->query("INSERT INTO `$table` (nom, color) VALUES ('$title', $color);");
$id = $bdd->insert_id();
$req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm");
$bdd->deconnexion();
$xml_root->appendChild($xml->createElement("id", $id));
}
elseif ($p == "del" && $id = intval(gpc("id", "post")))
{
$bdd = new BDD();
$bdd->query("DELETE FROM `gsm` WHERE id = $id;");
$req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm");
$bdd->deconnexion();
}
elseif ($p == "color" && ($type = intval(gpc("type", "get"))) && ($idAlbum = intval(gpc("id", "get"))))
{
if ($type == 1)
$table = "gsm_cdannee";
else if ($type == 2)
$table = "gsm_cdchant";
else
$table = "gsm_cddece";
$bdd = new BDD();
$res = $bdd->unique_query("SELECT color FROM `$table` WHERE id = $idAlbum;");
$req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm");
$bdd->deconnexion();
$xml_root->appendChild($xml->createElement("color", sprintf("#%06X", $res["color"])));
$color2R = ($res["color"] >> 16) & 255;
if ($color2R >= 25)
$color2R -= 25;
$color2G = ($res["color"] >> 8) & 255;
if ($color2G >= 25)
$color2G -= 25;
$color2B = ($res["color"]) & 255;
if ($color2B >= 25)
$color2B -= 25;
$xml_root->appendChild($xml->createElement("color", sprintf("#%02X%02X%02X", $color2R, $color2G, $color2B)));
}
elseif ($p == "rech")
{
$type = substr(gpc("type", "post"), 0, 1);
$id = intval(gpc("id", "post"));
if ($type == "d")
{
$bdd = new BDD();
$rech = $bdd->query("SELECT * FROM gsm WHERE CDDeca = $id;");
$req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm");
$bdd->deconnexion();
}
elseif ($type == "a")
{
$bdd = new BDD();
$rech = $bdd->query("SELECT * FROM gsm WHERE CDAnnee = $id;");
$req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm");
$bdd->deconnexion();
}
elseif ($type == "i")
{
$bdd = new BDD();
$rech = $bdd->query("SELECT * FROM gsm WHERE CDChanteur = $id;");
$req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm");
$bdd->deconnexion();
}
$xml_cds = $xml->createElement("album");
if (!empty($rech))
{
foreach($rech as $ligne)
{
$chan = $xml->createElement("chanson");
$chan->setAttribute("id", $ligne["id"]);
$chan->setAttribute("titre", $ligne["titre"]);
$chan->setAttribute("chanteur", $ligne["chanteur"]);
$chan->setAttribute("CD_decenie", $ligne["CDDeca"]);
$chan->setAttribute("CD_annee", $ligne["CDAnnee"]);
$chan->setAttribute("CD_interprete", $ligne["CDChanteur"]);
$xml_cds->appendChild($chan);
}
}
$xml_root->appendChild($xml_cds);
}
elseif ($p == "stats")
{
$cds = array();
$bdd = new BDD();
$cds["annees"] = $bdd->query("SELECT A.id, A.nom, COUNT(T.id) AS nombre FROM gsm_cdannee A LEFT OUTER JOIN gsm T ON A.id = T.CDAnnee GROUP BY A.id ORDER BY A.nom;");
$cds["interpretes"] = $bdd->query("SELECT A.id, A.nom, COUNT(T.id) AS nombre FROM gsm_cdchant A LEFT OUTER JOIN gsm T ON A.id = T.CDChanteur GROUP BY A.id ORDER BY A.nom;");
$cds["decenies"] = $bdd->query("SELECT A.id, A.nom, COUNT(T.id) AS nombre FROM gsm_cddece A LEFT OUTER JOIN gsm T ON A.id = T.CDDeca GROUP BY A.id ORDER BY A.nom;");
$req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm");
$bdd->deconnexion();
if (!empty($cds["annees"]))
{
foreach($cds["annees"] as $ligne)
{
$cd = $xml->createElement("annee");
$cd->setAttribute("id", $ligne["id"]);
$cd->setAttribute("nbTitles", $ligne["nombre"]);
$xml_root->appendChild($cd);
}
}
if (!empty($cds["interpretes"]))
{
foreach($cds["interpretes"] as $ligne)
{
$cd = $xml->createElement("interprete");
$cd->setAttribute("id", $ligne["id"]);
$cd->setAttribute("nbTitles", $ligne["nombre"]);
$xml_root->appendChild($cd);
}
}
if (!empty($cds["decenies"]))
{
foreach($cds["decenies"] as $ligne)
{
$cd = $xml->createElement("decenie");
$cd->setAttribute("id", $ligne["id"]);
$cd->setAttribute("nbTitles", $ligne["nombre"]);
$xml_root->appendChild($cd);
}
}
}
elseif ($p == "cds")
{
$bdd = new BDD();
$cds["decenies"] = $bdd->query("SELECT A.*, COUNT(T.id) AS nombre FROM gsm_cddece A LEFT OUTER JOIN gsm T ON A.id = T.CDDeca GROUP BY A.nom;");
$cds["interpretes"] = $bdd->query("SELECT A.*, COUNT(T.id) AS nombre FROM gsm_cdchant A LEFT OUTER JOIN gsm T ON A.id = T.CDChanteur GROUP BY A.nom;");
$cds["annees"] = $bdd->query("SELECT A.*, COUNT(T.id) AS nombre FROM gsm_cdannee A LEFT OUTER JOIN gsm T ON A.id = T.CDAnnee GROUP BY A.nom;");
$req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm");
$bdd->deconnexion();
$xml_cds = $xml->createElement("decenies");
if (!empty($cds["decenies"]))
{
foreach($cds["decenies"] as $ligne)
{
$cd = $xml->createElement("cd");
$cd->setAttribute("id", $ligne["id"]);
$cd->setAttribute("nom", $ligne["nom"]);
$cd->setAttribute("nombre_titres", $ligne["nombre"]);
$xml_cds->appendChild($cd);
}
}
$xml_root->appendChild($xml_cds);
$xml_cds = $xml->createElement("interpretes");
if (!empty($cds["interpretes"]))
{
foreach($cds["interpretes"] as $ligne)
{
$cd = $xml->createElement("cd");
$cd->setAttribute("id", $ligne["id"]);
$cd->setAttribute("nom", $ligne["nom"]);
$cd->setAttribute("nombre_titres", $ligne["nombre"]);
$xml_cds->appendChild($cd);
}
}
$xml_root->appendChild($xml_cds);
$xml_cds = $xml->createElement("annees");
if (!empty($cds["annees"]))
{
foreach($cds["annees"] as $ligne)
{
$cd = $xml->createElement("cd");
$cd->setAttribute("id", $ligne["id"]);
$cd->setAttribute("nom", $ligne["nom"]);
$cd->setAttribute("nombre_titres", $ligne["nombre"]);
$xml_cds->appendChild($cd);
}
}
$xml_root->appendChild($xml_cds);
}
elseif (!empty($titre) && !empty($auteur))
{
$alb = intval(gpc("alb", "post"));
$type = intval(gpc("type", "post"));
$id = intval(gpc("id"));
$bdd = new BDD();
$bdd->escape($titre);
$bdd->escape($auteur);
if ($id)
$bdd->query("UPDATE gsm SET titre = '$titre', chanteur = '$auteur' WHERE id = $id;");
else
{
//On recherche la chanson pour tester si elle n'existe pas déjà
$chanson = $bdd->unique_query("SELECT id, CDDeca, CDAnnee, CDChanteur FROM gsm WHERE titre LIKE '$titre' AND chanteur LIKE '$auteur' LIMIT 1;");
$update = "";
if (!empty($chanson))
{
if (isset($update) && !empty($type) && $type == 3)
{
if (empty($chanson["CDDeca"]))
$update .= "CDDeca = ".$alb.", ";
else
$update = null;
}
if (isset($update) && !empty($type) && $type == 1)
{
if (empty($chanson["CDAnnee"]))
$update .= "CDAnnee = ".$alb.", ";
else
$update = null;
}
if (isset($update) && !empty($type) && $type == 2)
{
if (empty($chanson["CDChanteur"]))
$update .= "CDChanteur = ".$alb.", ";
else
$update = null;
}
}
if (!empty($update))
{
$bdd->query("UPDATE gsm SET $update titre = titre WHERE id = ".$chanson["id"].";");
$res = $chanson["id"];
}
else
{
if ($type == 1)
$disc = array("annee" => $alb, "interprete" => 0, "decenie" => 0);
else if ($type == 2)
$disc = array("annee" => 0, "interprete" => $alb, "decenie" => 0);
else if ($type == 3)
$disc = array("annee" => 0, "interprete" => 0, "decenie" => $alb);
else
$disc = array("annee" => 0, "interprete" => 0, "decenie" => 0);
$bdd->query("INSERT INTO gsm (titre, chanteur, CDDeca, CDAnnee, CDChanteur) VALUES ('$titre', '$auteur', ".$disc["decenie"].", ".$disc["annee"].", ".$disc["interprete"].");");
$res = $bdd->insert_id();
}
}
$req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm");
$bdd->deconnexion();
$xml_root->appendChild($xml->createElement("id", $res));
}
else
{
$bdd = new BDD();
$req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm");
$bdd->deconnexion();
}
$json["nombre"] = $req["nombre"];
?>