HB/game/jeu/alliances.php

628 lines
28 KiB
PHP

<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$titre = 'Alliance';
include_once(_FCORE."../game/Class/class.rapport.php");
//Si le joueur est membre de l'alliance
$bdd->connexion();
if (!empty($planete->id_alliance) && $planete->id_grade_alliance != -1 && $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$planete->id_alliance.";")) {
//On détermine les accès du joueur
if ($alliance['fondateur'] == $id_user)
$access = array(
'fondateur' => 1,
'chat' => 1,
'grades' => 1,
'membre' => 1,
'ecriture' => 1,
'alliance' => 1
);
elseif ($planete->id_grade_alliance != 0) {
$bdd->connexion();
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$planete->id_grade_alliance.";");
$bdd->deconnexion();
$access = array(
'fondateur' => 0,
'chat' => $grade['gest_chat'],
'grades' => $grade['gest_rang'],
'membre' => $grade['gest_membre'],
'ecriture' => $grade['gest_ecriture'],
'alliance' => $grade['gest_admin']
);
}
else
$access = array(
'fondateur' => 0,
'chat' => 0,
'grades' => 0,
'membre' => 0,
'ecriture' => 0,
'alliance' => 0
);
$template->assign('access', $access);
//Visionnage des pages de l'alliance
if (!isset($_GET['q'])) $_GET['q'] = '';
//Pages d'administration
if ($_GET['q'] == 'adm_chat' && $access['chat']) {
if (!empty($_GET['i'])) {
$i = floor($_GET['i']);
$alliId = $alliance['id'];
$bdd->connexion();
$bdd->escape($i);
$bdd->query("DELETE FROM $table_alliances_chat WHERE id = $i AND id_alliance = $alliId;");
$bdd->deconnexion();
header('Location: ?p=alliances&q=adm_chat#chat');
exit;
}
$page = 'alliance_adm_chat';
$alliId = $alliance['id'];
$bdd->connexion();
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = $alliId ORDER BY id DESC LIMIT 50;");
$bdd->deconnexion();
for($i = 0; $i < $bdd->num_rows ; $i++){
$chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']);
}
$template->assign('chat', $chat);
}
elseif ($_GET['q'] == 'adm_grades' && $access['membre']) {
if (isset($_GET['a']) && $_GET['a'] == 'add') {
if (!empty($_POST['nom']) && isset($_POST['description'])) {
$nom = $_POST['nom'];
$description = $_POST['description'];
if (!empty($_POST['id'])) {
$id = $_POST['id'];
$bdd->connexion();
$bdd->escape($id);
$bdd->escape($nom);
$bdd->escape($description);
@$bdd->query("UPDATE $table_alliances_grade SET nom = '$nom', description = '$description', gest_chat = ".ceil($_POST['gest_chat']).", gest_rang = ".ceil($_POST['gest_rang']).", gest_membre = ".ceil($_POST['gest_membre']).", gest_ecriture = ".ceil($_POST['gest_ecriture']).", gest_admin = ".ceil($_POST['gest_alliance'])." WHERE id = $id AND id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
}
else {
$bdd->connexion();
$bdd->escape($nom);
$bdd->escape($description);
@$bdd->query("INSERT INTO $table_alliances_grade (id_alliance, nom, description, gest_chat, gest_rang, gest_membre, gest_ecriture, gest_admin) VALUES (".$alliance['id'].", '$nom', '$description', ".ceil($_POST['gest_chat']).", ".ceil($_POST['gest_rang']).", ".ceil($_POST['gest_membre']).", ".ceil($_POST['gest_ecriture']).", ".ceil($_POST['gest_alliance']).");");
$bdd->deconnexion();
}
header('Location: ?p=alliances&q=adm_grades');
exit;
}
$page = 'alliance_adm_grades_add';
}
elseif (!empty($_GET['i']) && isset($_GET['a']) && $_GET['a'] == 'del') {
$i = gpc('i');
$bdd->connexion();
$bdd->escape($i);
$mod = $bdd->unique_query("DELETE FROM $table_alliances_grade WHERE id = $i AND id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
header('Location: ?p=alliances&q=adm_grades');
exit;
}
elseif (!empty($_GET['i'])) {
$page = 'alliance_adm_grades_add';
$i = $_GET['i'];
$bdd->connexion();
$bdd->escape($i);
$mod = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = $i AND id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
$template->assign('mod', $mod);
}
else {
$page = 'alliance_adm_grades';
$alliId = $alliance['id'];
$bdd->connexion();
$grades = $bdd->query("SELECT * FROM $table_alliances_grade WHERE id_alliance = $alliId ORDER BY nom ASC;");
$bdd->deconnexion();
$template->assign('grades', $grades);
}
}
elseif ($_GET['q'] == 'adm_ecrits' && $access['ecriture']) {
if (isset($_GET['t']) && $_GET['t'] == 'presentation') $mod = 'presentation';
else $mod = 'interne';
if (!empty($_POST['type']) && isset($_POST['textarea'])) {
$mod = $_POST['type'];
$text = $_POST['textarea'];
$alliId = $alliance['id'];
$bdd->connexion();
$bdd->escape($text);
$bdd->escape($mod);
$bdd->query("UPDATE $table_alliances SET $mod = '$text' WHERE id = $alliId;");
$bdd->deconnexion();
header('Location: ?p=alliances&q=adm_ecrits&t='.$mod);
exit;
}
$page = 'alliance_adm_ecritures';
$template->assign('alliance', $alliance);
$template->assign('mod', $mod);
}
elseif ($_GET['q'] == 'adm_mp' && $access['membre']) {
if (!empty($_POST['textarea'])) {
$titre = $_POST['titre'];
$texte = $_POST['textarea'];
$expediteur = '['.$alliance['tag'].'] <i>'.trouvNom($id_user).'</i>';
$alliId = $alliance['id'];
$bdd->connexion();
$bdd->escape($titre);
$bdd->escape($texte);
$bdd->escape($expediteur);
$membres = $bdd->query("SELECT id FROM $table_user WHERE id_alliance = $alliId;");
$bdd->deconnexion();
$temps = time();
foreach($membres as $membre){
send_mp($membre['id'], $titre, $texte, 1, $id_user);
}
erreur('Le message privé a été communiqué à tous les joueurs de l\'alliance.', "green", '?p=alliances');
}
$page = 'alliance_adm_mpmass';
}
elseif ($_GET['q'] == 'adm_emprunt' && $access['membre']) {
$u = gpc('u');
$a = gpc('a');
if (!empty($a) && is_numeric($a)) {
$bdd->escape($a);
$demande = $bdd->unique_query("SELECT * FROM $table_alliances_emprunt WHERE id=$a");
if ($bdd->query("UPDATE $table_alliances SET metal = metal - ".$demande['metal'].", cristal = cristal - ".$demande['cristal'].", hydrogene = hydrogene - ".$demande['hydrogene']." WHERE id = ".$alliance['id'].";") == NULL) {
$bdd->query("UPDATE $table_planete SET metal = metal + ".$demande['metal'].", cristal = cristal + ".$demande['cristal'].", hydrogene = hydrogene + ".$demande['hydrogene']." WHERE id_user = ".$demande['id_user']." LIMIT 1;");
$bdd->query("DELETE FROM $table_alliances_emprunt WHERE id = $a;");
send_mp($demande['id_user'], '['.$alliance['tag'].'] Réponse à la demande de financement', 'Votre demande de financement a été acceptée par l\'alliance.<br />Vous recevez '.$demande['metal'].' '.$ressourc[0].', '.$demande['cristal'].' '.$ressourc[1].', '.$demande['hydrogene'].' '.$ressourc[2].'.');
header('Location: ?p=alliances&q=adm_emprunt');
exit;
}
else erreur('Impossible d\'accepter la demande de financement pour le moment.');
}
elseif (!empty($u) && is_numeric($u)) {
$bdd->escape($u);
$demande = $bdd->unique_query("SELECT id_user FROM $table_alliances_emprunt WHERE id=$u");
$bdd->query("DELETE FROM $table_alliances_emprunt WHERE id = $u;");
send_mp($demande['id_user'], '['.$alliance['tag'].'] Réponse à la demande de financement', 'Votre demande de financement a été refusée par l\'alliance.');
header('Location: ?p=alliances&q=adm_emprunt');
exit;
}
$demandes = $bdd->query("SELECT E.id, E.raison, E.metal, E.cristal, E.hydrogene, U.pseudo FROM $table_alliances_emprunt E INNER JOIN $table_user U ON U.id = E.id_user WHERE E.id_alliance = ".$alliance['id'].";");
$template->assign('demandes', $demandes);
$alliance['metalS'] = separerNombres($alliance['metal']);
$alliance['cristalS'] = separerNombres($alliance['cristal']);
$alliance['hydrogeneS'] = separerNombres($alliance['hydrogene']);
$template->assign('alliance', $alliance);
$page = 'alliance_adm_emprunt';
}
elseif ($_GET['q'] == 'adm_alliance' && $access['alliance']) {
$recharg = false;
if (isset($_POST['defcon']) && isset($_POST['defcon_txt']) && isset($_POST['etat_inscription']) && isset($_POST['image']) && isset($_POST['url'])) {
$defcon = $_POST['defcon'];
$defcon_txt = $_POST['defcon_txt'];
$etat_inscription = $_POST['etat_inscription'];
$image = $_POST['image'];
$url = $_POST['url'];
$alliId = $alliance['id'];
$bdd->connexion();
$bdd->escape($defcon);
$bdd->escape($defcon_txt);
$bdd->escape($etat_inscription);
$bdd->escape($image);
$bdd->escape($url);
$bdd->query("UPDATE $table_alliances SET defcon = '$defcon', defcon_txt = '$defcon_txt', etat_inscription = '$etat_inscription', image = '$image', url = '$url' WHERE id = '$alliId';");
$bdd->deconnexion();
$recharg = true;
}
if (isset($_POST['fondateur']) && $alliance['fondateur'] == $id_user && isset($_POST['pswd_admin'])) {
$bdd->connexion();
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_user;");
$bdd->deconnexion();
if (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin']) && empty($sess->values['forcealli'])) {
$sess->values['forcealli'] = true;
$sess->put();
$template->assign('message','Êtes-vous sûr de vouloir dissoudre cette alliance ?<br /><i>Pour confirmer la dissolution de l\'alliance, rechargez cette page.</i>');
$template->assign('couleur','orange');
$template->display('game/erreur.tpl');
exit;
}
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin']) && isset($sess->values['forcealli']) && $sess->values['forcealli']) {
$alliId = $alliance['id'];
$bdd->connexion();
$bdd->query("DELETE FROM $table_alliances WHERE id = '$alliId';");
$membres = $bdd->query("SELECT id FROM $table_user WHERE id_alliance = '$alliId';");
$nbeff = $bdd->num_rows;
foreach($membres as $membre){
$bdd->query("UPDATE $table_user SET id_alliance = '0', id_grade_alliance = '0' WHERE id = '".$membre['id']."' AND id_alliance = '$alliId';");
}
$bdd->deconnexion();
erreur('L\'alliance a été dissoute avec succès.', 'green');
}
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] != sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin'])) {
erreur('Impossible de dissoudre l\'alliance : mot de passe incorrect.', "red", "?p=alliances&q=adm_alliance", 3000);
}
$fondateur = $_POST['fondateur'];
$bdd->connexion();
$bdd->escape($fondateur);
$bdd->query("UPDATE $table_alliances SET fondateur = '$fondateur' WHERE id = '".$alliance['id']."'");
$bdd->deconnexion();
$recharg = true;
}
if ($recharg) {
header('Location: ?p=alliances&q=adm_alliance');
exit;
}
$page = 'alliance_adm_admin';
$niveaux = array('Niveau 1', 'Niveau 2', 'Niveau 3', 'Niveau 4', 'Niveau 5');
$niveauxi = array('1', '2', '3', '4', '5');
$template->assign('niveaux', $niveaux);
$template->assign('niveauxi', $niveauxi);
$etatinscript = array('Ouvertes', 'Fermées');
$etatinscripti = array('1', '0');
$template->assign('etatinscript', $etatinscript);
$template->assign('etatinscripti', $etatinscripti);
$bdd->connexion();
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."';");
$bdd->deconnexion();
$membre = array();
$membrei = array();
foreach($membres as $membrex){
$membre[] = $membrex['pseudo'];
$membrei[] = $membrex['id'];
}
$template->assign('membres', $membre);
$template->assign('membresi', $membrei);
$template->assign('alliance', $alliance);
}
elseif ($_GET['q'] == 'adm_membres' && $access['membre']) {
if (!empty($_POST['user']) && isset($_POST['grade'])) {
$user = floor($_POST['user']);
$grade = floor($_POST['grade']);
$bdd->connexion();
$bdd->escape($grade);
$bdd->escape($user);
$bdd->query("UPDATE $table_user SET id_grade_alliance = '".$grade."' WHERE id = '".$user."' AND id_alliance = '".$alliance['id']."';");
$bdd->deconnexion();
}
elseif (!empty($_GET['u'])) {
$user = floor($_GET['u']);
$bdd->connexion();
$bdd->escape($user);
$bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '0' WHERE id = '".$user."' AND id_alliance = '".$alliance['id']."';");
$bdd->deconnexion();
send_mp($user, '['.strtoupper($alliance['tag']).'] Renvoie de l\'alliance', 'Vous venez d\'être renvoyé de votre alliance.');
}
elseif (!empty($_GET['accept'])) {
$user = floor($_GET['accept']);
$bdd->connexion();
$bdd->escape($user);
$verif = $bdd->unique_query("SELECT * FROM $table_alliances_attente WHERE id_alliance = ".$alliance['id']." AND id_membre = $user;");
if ($verif) {
$bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '".$alliance['id']."' WHERE id = '".$user."' AND id_alliance = '0';");
$bdd->query("DELETE FROM $table_alliances_attente WHERE id_membre = '$user';");
send_mp($user, '['.strtoupper($alliance['tag']).'] Bienvenue dans l\'alliance '.$alliance['nom'], 'L\'alliance '.$alliance['nom'].' a accepté votre demande d\'intégration.<br />Félicitations !');
}
$bdd->deconnexion();
}
elseif (!empty($_GET['refus'])) {
$user = floor($_GET['refus']);
$bdd->connexion();
$bdd->escape($user);
$bdd->query("DELETE FROM $table_alliances_attente WHERE id_membre = $user AND id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
send_mp($user, 'Refus de candidature pour '.$alliance['nom'], 'L\'alliance '.$alliance['nom'].' a rejeté votre demande d\'intégration.');
}
$page = 'alliance_adm_membres';
$bdd->connexion();
$grades = $bdd->query("SELECT * FROM $table_alliances_grade WHERE id_alliance = ".$alliance['id']." ORDER BY nom ASC;");
$bdd->deconnexion();
$grade = array(); $gradei = array();
foreach($grades as $gradex){
$grade[] = $gradex['nom'];
$gradei[] = $gradex['id'];
}
$template->assign('grades', $grade);
$template->assign('gradei', $gradei);
$bdd->connexion();
$membres = $bdd->query("SELECT pseudo, race, last_visite, id, id_grade_alliance FROM $table_user WHERE id_alliance = ".$alliance['id'].";");
$candidats = $bdd->query("SELECT A.message, A.timestamp, A.id_membre, U.pseudo AS pseudo_membre FROM $table_alliances_attente A WHERE id_alliance = ".$alliance['id']." INNER JOIN $table_user U ON U.id = A.id_membre ORDER BY timestamp ASC;");
$bdd->deconnexion();
$template->assign('membres', $membres);
$template->assign('candidats', $candidats);
$template->assign('alliance', $alliance);
}
elseif ($_GET['q'] == 'liste') {
$page = 'alliance_liste';
$bdd->connexion();
if (isset($_GET['t']) && $_GET['t'] == 'classement') $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."' ORDER BY place_points ASC;");
else $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."';");
foreach($membres as $membre){
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = '".$membre['id_grade_alliance']."';");
$membre['grade_alliance'] = $grade['nom'];
}
$bdd->deconnexion();
$template->assign('membres', $membres);
}
elseif ($_GET['q'] == 'chat') {
if (isset($_POST['msg'])) {
$message = $_POST['msg'];
$bdd->connexion();
$bdd->escape($message);
if (!empty($message)) $bdd->query("INSERT INTO $table_alliances_chat (id_alliance, emetteur, timestamp, message) VALUES (".$alliance['id'].", $id_user, ".time().", '$message')");
$bdd->deconnexion();
header('Location: ?p=alliances&q=chat#chat');
exit;
}
$page = 'alliance_chat';
//Chat
$bdd->connexion();
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = ".$alliance['id']." ORDER BY id DESC LIMIT 30");
$bdd->deconnexion();
foreach($chat as $lign){
$lign['emetteur'] = trouvNom($lign['emetteur']);
$lign['message'] = bbcode(htmlspecialchars($lign['message']));
}
$template->assign('chat', $chat);
}
elseif ($_GET['q'] == 'quit_alliance' && gpc('a') == sha1('ç§'.date('AWGzO').$alliance['id'])) {
$bdd->connexion();
$bdd->escape($user);
$bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '0' WHERE id = '".$id_user."' AND id_alliance = '".$alliance['id']."';");
$bdd->deconnexion();
send_mp($id_user, '['.strtoupper($alliance['tag']).'] Vous quittez l\'alliance', 'Vous venez de quitter votre alliance.');
send_mp($alliance['fondateur'], '['.strtoupper($alliance['tag']).'] '.trouvNom($id_user).' quitte l\'alliance', linkNom($id_user).'vient de quitter votre alliance.');
$template->assign('message','Vous avez quitté votre alliance.');
$template->assign('couleur','green');
$template->display('game/erreur.tpl');
exit;
}
elseif ($_GET['q'] == 'donner') {
$page = 'alliance_donner';
$metalD = gpc('metal', 'post'); if (!is_numeric($metalD)) $metalD = 0;
$cristalD = gpc('cristal', 'post'); if (!is_numeric($cristalD)) $cristalD = 0;
$hydrogeneD = gpc('hydrogene', 'post'); if (!is_numeric($hydrogeneD)) $hydrogeneD = 0;
if ($metalD+$cristalD+$hydrogeneD > 0 && $metalD >= 0 && $cristalD >= 0 && $hydrogeneD >= 0) {
if ($planete->metal > $metalD && $planete->cristal > $cristalD && $planete->hydrogene > $hydrogeneD) {
$bdd->escape($metalD);
$bdd->escape($cristalD);
$bdd->escape($hydrogeneD);
$bdd->query("UPDATE $table_alliances SET metal = metal + $metalD, cristal = cristal + $cristalD, hydrogene = hydrogene + $hydrogeneD WHERE id = ".$alliance['id'].";");
$planete->metal -= $metalD;
$planete->cristal -= $cristalD;
$planete->hydrogene -= $hydrogeneD;
header('Location: ?p=alliances');
exit;
}
else {
erreur('Vous n\'avez pas assez de ressources sur cette planète pour donner autant à votre alliance.');
}
}
}
elseif ($_GET['q'] == 'emprunt') {
$bdd->query("SELECT id FROM $table_alliances_emprunt WHERE id_user = $id_user AND id_alliance = ".$alliance['id'].";");
if ($bdd->num_rows > 0) {
erreur('Vous avez déjà une demande de financement en cours, vous ne pouvez pas en faire une nouvelle', "red", '?p=alliances');
}
$page = 'alliance_emprunt';
$metalD = gpc('metal', 'post'); if (!is_numeric($metalD)) $metalD = 0;
$cristalD = gpc('cristal', 'post'); if (!is_numeric($cristalD)) $cristalD = 0;
$hydrogeneD = gpc('hydrogene', 'post'); if (!is_numeric($hydrogeneD)) $hydrogeneD = 0;
$raison = gpc('raison', 'post');
if ($metalD+$cristalD+$hydrogeneD > 0 && $metalD >= 0 && $cristalD >= 0 && $hydrogeneD >= 0) {
if ($alliance['metal']-$metalD >= 0 && $alliance['cristal']-$cristalD >= 0 && $alliance['hydrogene']-$hydrogeneD >= 0) {
$bdd->escape($metalD);
$bdd->escape($cristalD);
$bdd->escape($hydrogeneD);
$bdd->escape($raison);
$bdd->query("INSERT INTO $table_alliances_emprunt (id_alliance, id_user, raison, metal, cristal, hydrogene) VALUES (".$alliance['id'].", $id_user, '$raison', $metalD, $cristalD, $hydrogeneD);");
erreur('Votre demande a été enregistrée avec succès.', "green", '?p=alliances');
}
else {
erreur('Vous n\'avez pas assez de ressources sur cette planète pour donner autant à votre alliance.');
}
}
$alliance['metalS'] = separerNombres($alliance['metal']);
$alliance['cristalS'] = separerNombres($alliance['cristal']);
$alliance['hydrogeneS'] = separerNombres($alliance['hydrogene']);
$template->assign('alliance', $alliance);
$template->assign('scripth', '<script src="js/alli_emprunt.js" type="text/javascript"></script>');
}
else {
$page = 'alliance_accueil';
$alliance['presentation'] = bbcode(htmlspecialchars($alliance['presentation']),1);
$alliance['texte_interne'] = bbcode(htmlspecialchars($alliance['texte_interne']),1);
$alliance['metal'] = separerNombres($alliance['metal']);
$alliance['cristal'] = separerNombres($alliance['cristal']);
$alliance['hydrogene'] = separerNombres($alliance['hydrogene']);
$template->assign('alliance', $alliance);
$template->assign('quitalliance', sha1('ç§'.date('AWGzO').$alliance['id']));
$bdd->connexion();
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
$template->assign('nbmembre', $bdd->num_rows);
if (!isset($grade)) $template->assign('grade', 0);
else $template->assign('grade', $grade);
//Chat
$bdd->connexion();
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = ".$alliance['id']." ORDER BY id DESC LIMIT 30;");
$bdd->deconnexion();
for($i = 0; $i < $bdd->num_rows ; $i++){
$chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']);
$chat[$i]['message'] = htmlspecialchars($chat[$i]['message']);
}
$template->assign('chat', $chat);
}
}
elseif (!empty($planete->id_alliance) && $bdd->connexion() && !$bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$planete->id_alliance.";")) {
$bdd->query("UPDATE $table_user SET id_alliance = 0, id_grade_alliance = 0 WHERE id = $id_user;");
header('Location: ?p=alliances');
exit;
}
//Si le joueur n'est membre d'aucune alliance
else {
if (!isset($_GET['q'])) $_GET['q'] = '';
if ($_GET['q'] == 'search' && !empty($_POST['by']) && isset($_POST['search'])) {
$page = 'alliance_nm_search';
$by = $_POST['by'];
$search = $_POST['search'];
$bdd->connexion();
$bdd->escape($by);
$bdd->escape($search);
$recherche = $bdd->query("SELECT * FROM $table_alliances WHERE $by LIKE '%$search%' ORDER BY nom ASC;");
$bdd->deconnexion();
$template->assign('recherches', $recherche);
}
elseif ($_GET['q'] == 'liste' && !empty($_GET['i'])) {
$page = 'alliance_liste';
$id = $_GET['i'];
$bdd->connexion();
$bdd->escape($id);
if (isset($_GET['t']) && $_GET['t'] == 'classement') $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = $id ORDER BY place_points DESC;");
else $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = $id;");
$nb = $bdd->num_rows;
for ($i = 0; $i < $nb; $i++) {
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$membres[$i]['id_grade_alliance'].";");
$membres[$i]['grade_alliance'] = $grade['nom'];
}
$bdd->deconnexion();
$template->assign('membres', $membres);
$template->assign('i', $_GET['i']);
}
elseif ($_GET['q'] == 'view' && !empty($_GET['i'])) {
$id = $_GET['i'];
$bdd->connexion();
$bdd->escape($id);
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;");
if ($alliance) {
$page = 'alliance_nm_view';
$alliance['presentation'] = bbcode(htmlspecialchars($alliance['presentation']),1);
$template->assign('alliance', $alliance);
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
$template->assign('nbmembre', $bdd->num_rows);
}
else {
$bdd->deconnexion();
erreur('Impossible de trouver cette alliance !');
}
}
elseif ($_GET['q'] == 'postuler' && !empty($_GET['i'])) {
$id = $_GET['i'];
$bdd->connexion();
$bdd->escape($id);
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;");
if (!empty($_POST['message'])) {
$message = $_POST['message'];
$bdd->escape($message);
$bdd->query("INSERT INTO $table_alliances_attente (id_alliance, id_membre, timestamp, message, ) VALUES (NULL, ".$alliance['id'].", ".$id_user.", '".time()."', '$message');");
$bdd->deconnexion();
erreur('Votre candidature a été envoyée avec succès à l\'alliance : '.$alliance['nom'], "green");
}
$bdd->deconnexion();
$template->assign('alliance', $alliance);
$template->assign('alliancei', $id);
$page = 'alliance_nm_postuler';
}
elseif ($_GET['q'] == 'signer' && !empty($_GET['i'])) {
$lien = $_GET['i'];
$bdd->connexion();
$bdd->escape($lien);
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE lien = '$lien';");
$bdd->deconnexion();
if ($alliance) {
if (empty($alliance['signatures'])) $signataires = array();
else $signataires = explode(';', $alliance['signatures']);
if ($alliance['fondateur'] == $id_user || in_array($id_user, $signataires)) erreur('Vous avez déjà signé pour cette alliance.', "red", "?p=alliances&q=signer", 3500);
else {
//Si c'est la 4ème signature, on crée l'alliance
if (count($signataires) >= 3) {
$tag = $alliance['tag'];
$nom = $alliance['nom'];
$bdd->connexion();
$bdd->escape($tag);
$bdd->escape($nom);
$bdd->query("INSERT INTO $table_alliances (tag, nom, fondateur, presentation, texte_interne, url, image, etat_inscription, defcon, defcon_txt) VALUES ('$tag', '$nom', '".$alliance['fondateur']."', 'A faire', 'A faire', '', '', 1, 1, '');");
$bdd->query("DELETE FROM $table_alliances_creation WHERE lien = '$lien';");
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE nom = '".$alliance['nom']."' AND fondateur = '".$alliance['fondateur']."';");
$bdd->deconnexion();
file_log("Création de l'alliance : ".$alliance['nom']." par ".$id_user." (fondateur : ".$alliance['fondateur'].") après validation de 4 signatures : ".implode(', ', $signataires).$id_user);
//On envoie un message au fondateur de l'alliance
$rapport = new Rapport(6, $alliance['fondateur'], 0, time());
$rapport->send();
$nbsign = count($signataires);
$id_alli = $alliance['id'];
$fondateur = $alliance['fondateur'];
$bdd->connexion();
for ($i=0 ; $i<$nbsign ; $i++) {
$sign = $signataires[$i];
$bdd->query("UPDATE $table_user SET id_alliance = '$id_alli' WHERE id = '$sign';");
}
$bdd->query("UPDATE $table_user SET id_alliance = '$id_alli' WHERE id = '$id_user';");
$bdd->query("UPDATE $table_user SET id_alliance = '$id_alli' WHERE id = '$fondateur';");
$bdd->deconnexion();
erreur('Votre signature a bien été ajoutée à la déclaration de l\'alliance.<br />L\'alliance a désormais suffisament de signature pour être créée !', "green");
}
else {
$signataires[] = $id_user;
$signataires = implode(';', $signataires);
$bdd->connexion();
$bdd->query("UPDATE $table_alliances_creation SET signatures = '$signataires' WHERE lien = '$lien';");
$bdd->query("UPDATE $table_user SET id_alliance = 'c".$alliance['id']."' WHERE id = '$id_user';");
$bdd->deconnexion();
erreur('Votre signature a bien été ajoutée à la déclaration de l\'alliance.', "green");
}
}
}
else erreur('Impossible de trouver l\'alliance !', "red", "?p=alliances&q=signer");
}
elseif ($_GET['q'] == 'fonder') {
if (!empty($_POST['nom']) && !empty($_POST['tag'])) {
$nom = htmlentities($_POST['nom']);
$tag = htmlentities($_POST['tag']);
if (strlen($nom) < 5) erreur('Le nom d\'alliance que vous avez choisit est trop court.', "red", "?p=alliances&q=fonder", 3500);
elseif (strlen($nom) > 25) erreur('Le nom d\'alliance que vous avez choisit est trop long.', "red", "?p=alliances&q=fonder", 3500);
elseif (strlen($tag) > 5) erreur('Le tag d\'alliance que vous avez choisit est trop long.', "red", "?p=alliances&q=fonder", 3500);
elseif (strlen($tag) < 3) erreur('Le tag d\'alliance que vous avez choisit est trop court.', "red", "?p=alliances&q=fonder", 3500);
elseif (ereg('\'', $tag) || ereg('\'', $nom)) erreur('Le nom d\'alliance ou le tag que vous avez choisit contient des caractères non autorisé.', "red", "?p=alliances&q=fonder", 3500);
$bdd->connexion();
$bdd->escape($nom);
$bdd->escape($tag);
$test = $bdd->query("SELECT * FROM $table_alliances WHERE nom = '$nom' AND tag = '$tag';");
$test2 = $bdd->query("SELECT * FROM $table_alliances_creation WHERE nom = '$nom' AND tag = '$tag';");
$bdd->deconnexion();
if ($test || $test2) erreur('Le nom ou le tag que vous avez choisit est déjà utilisé par une alliance.', "red", "?p=alliances&q=fonder", 3500);
else {
$lien = sha1($tag.'Hb$'.$nom.'☺Ø'.$id_user.rand());
$bdd->connexion();
$bdd->query("INSERT INTO $table_alliances_creation (lien, tag, nom, fondateur, signatures) VALUES ('$lien' ,'$tag', '$nom', '$id_user', '');");
$bdd->deconnexion();
$rapport = new Rapport(7, $id_user, 0, time());
$rapport->addInfo($lien, 0);
$rapport->send();
erreur('Votre alliance a bien &eacute;t&eacute; cr&eacute;&eacute;e.<br />Il ne vous reste plus qu\'à trouver au moins 4 signatures pour finir la création de votre alliance.<br /><br />Le lien permettant à vos quatres personnes de signer est <a href="?p=alliances&amp;q=signer&amp;i='.$lien.'">http://'.$_SERVER['HTTP_HOST'].'?p=alliances&amp;q=signer&amp;i='.$lien.'</a>', "green");
}
}
$page = 'alliance_nm_fonder';
}
else {
$page = 'alliance_nm_accueil';
}
}
?>