HB/game/alliances.php

388 lines
18 KiB
PHP

<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$titre = 'Alliance';
//Si le joueur est membre de l'alliance
if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 ) {
$alliance = $chapeau->unique_query("SELECT * FROM `$table_alliances` WHERE `id` = '".$queryUser['id_alliance']."';");
//On détermine les accès du joueur
if ($alliance['fondateur'] == $queryUser['id'])
$access = array(
'fondateur' => 1,
'chat' => 1,
'grades' => 1,
'membre' => 1,
'ecriture' => 1,
'alliance' => 1
);
elseif ($queryUser['id_grade_alliance'] != 0) {
$grade = $chapeau->unique_query("SELECT * FROM `$table_alliances_grade` WHERE `id` = '".$queryUser['id_grade_alliance']."';");
$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']);
$chapeau->query("DELETE FROM `$table_alliances_chat` WHERE `id` = '$i' AND `id_alliance` = '".$alliance['id']."';");
header('Location: ?p=alliances&q=adm_chat#chat');
exit;
}
$page = 'alliance_adm_chat';
$chat = $chapeau->query("SELECT * FROM `$table_alliances_chat` WHERE `id_alliance` = '".$alliance['id']."' ORDER BY `id` DESC LIMIT 50;");
for($i = 0; $i < $chapeau->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 = mysql_real_escape_string($_POST['nom']);
$description = mysql_real_escape_string($_POST['description']);
@$chapeau->query("INSERT INTO `$table_alliances_grade` VALUES (NULL, '".$alliance['id']."', '$nom', '$description', '".ceil($_POST['gest_chat'])."', '".ceil($_POST['gest_rang'])."', '".ceil($_POST['gest_membre'])."', '".ceil($_POST['gest_ecriture'])."', '".ceil($_POST['gest_alliance'])."');");
header('Location: ?p=alliances&q=adm_grades');
exit;
}
$page = 'alliance_adm_grades_add';
}
else {
$page = 'alliance_adm_grades';
$grades = $chapeau->query("SELECT * FROM `$table_alliances_grade` WHERE `id_alliance` = '".$alliance['id']."' ORDER BY `nom` ASC;");
$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 = mysql_real_escape_string($_POST['type']);
$chapeau->query("UPDATE `$table_alliances` SET `$mod` = '".mysql_real_escape_string($_POST['textarea'])."' WHERE `id` = '".$alliance['id']."'");
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_alliance' && $access['alliance']) {
$recharg = false;
if (isset($_POST['defcon']) && isset($_POST['defcon_txt']) && isset($_POST['etat_inscription']) && isset($_POST['image']) && isset($_POST['url'])) {
$chapeau->query("UPDATE `$table_alliances` SET `defcon` = '".mysql_real_escape_string($_POST['defcon'])."', `defcon_txt` = '".mysql_real_escape_string($_POST['defcon_txt'])."', `etat_inscription` = '".mysql_real_escape_string($_POST['etat_inscription'])."', `image` = '".mysql_real_escape_string($_POST['image'])."', `url` = '".mysql_real_escape_string($_POST['url'])."' WHERE `id` = '".$alliance['id']."'");
$recharg = true;
}
if (isset($_POST['fondateur']) && $alliance['fondateur'] == $id_user && isset($_POST['pswd_admin'])) {
if (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($queryUser['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($queryUser['pseudo']).':'.$_POST['pswd_admin']) && isset($sess->values['forcealli']) && $sess->values['forcealli']) {
$chapeau->query("DELETE FROM `$table_alliances` WHERE `id` = '".$alliance['id']."';");
$membres = $chapeau->query("SELECT * FROM `$table_user` WHERE `id_alliance` = '".$alliance['id']."';");
for($i = 0; $i < $chapeau->num_rows; $i++){
$chapeau->query("UPDATE `$table_user` SET `id_alliance` = '0', `id_grade_alliance` = '0' WHERE `id` = '".$membres[$i]['id']."' AND `id_alliance` = '".$alliance['id']."';");
}
$template->assign('message','L\'alliance a été dissoute avec succès.');
$template->assign('couleur','green');
$template->display('game/erreur.tpl');
exit;
}
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] != sha1(strtoupper($queryUser['pseudo']).':'.$_POST['pswd_admin'])) {
$template->assign('message','Impossible de dissoudre l\'alliance : mot de passe incorrect.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=adm_alliance";\', 3000);</script>');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
$chapeau->query("UPDATE `$table_alliances` SET `fondateur` = '".mysql_real_escape_string($_POST['fondateur'])."' WHERE `id` = '".$alliance['id']."'");
$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);
$membres = $chapeau->query("SELECT * FROM `$table_user` WHERE `id_alliance` = '".$alliance['id']."';");
$membre = array();
$membrei = array();
for($i = 0; $i < $chapeau->num_rows; $i++){
$membre[] = $membres[$i]['pseudo'];
$membrei[] = $membres[$i]['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']);
$chapeau->query("UPDATE `$table_user` SET `id_grade_alliance` = '".$grade."' WHERE `id` = '".$user."' AND `id_alliance` = '".$alliance['id']."';");
}
elseif (!empty($_GET['u'])) {
$user = floor($_GET['u']);
$chapeau->query("UPDATE `$table_user` SET `id_grade_alliance` = '0', `id_alliance` = '0' WHERE `id` = '".$user."' AND `id_alliance` = '".$alliance['id']."';");
//TODO Envoyer un message au joueur renvoyé
}
elseif (!empty($_GET['accept'])) {
$user = floor($_GET['accept']);
$verif = $chapeau->unique_query("SELECT * FROM `$table_alliances_attente` WHERE `id_alliance` = '".$alliance['id']."' AND `id_membre` = '$user';");
if ($verif) {
$chapeau->query("UPDATE `$table_user` SET `id_grade_alliance` = '0', `id_alliance` = '".$alliance['id']."' WHERE `id` = '".$user."' AND `id_alliance` = '0';");
$chapeau->query("DELETE FROM `$table_alliances_attente` WHERE `id_membre` = '$user';");
//TODO Envoyer un message au joueur renvoyé
}
}
elseif (!empty($_GET['refus'])) {
$user = floor($_GET['refus']);
$chapeau->query("DELETE FROM `$table_alliances_attente` WHERE `id_membre` = '$user' AND `id_alliance` = '".$alliance['id']."';");
//TODO Envoyer un message au joueur renvoyé
}
$page = 'alliance_adm_membres';
$grades = $chapeau->query("SELECT * FROM `$table_alliances_grade` WHERE `id_alliance` = '".$alliance['id']."' ORDER BY `nom` ASC;");
$grade = array(); $gradei = array();
for($i = 0; $i < $chapeau->num_rows ; $i++){
$grade[] = $grades[$i]['nom'];
$gradei[] = $grades[$i]['id'];
}
$template->assign('grades', $grade);
$template->assign('gradei', $gradei);
$membres = $chapeau->query("SELECT * FROM `$table_user` WHERE `id_alliance` = '".$alliance['id']."';");
$template->assign('membres', $membres);
$candidats = $chapeau->query("SELECT * FROM `$table_alliances_attente` WHERE `id_alliance` = '".$alliance['id']."' ORDER BY `timestamp` ASC;");
$template->assign('candidats', $candidats);
$template->assign('alliance', $alliance);
}
elseif ($_GET['q'] == 'liste') {
$page = 'alliance_liste';
$membres = $chapeau->query("SELECT * FROM `$table_user` WHERE `id_alliance` = '".$alliance['id']."';");
$template->assign('membres', $membres);
}
elseif ($_GET['q'] == 'chat') {
if (isset($_POST['msg'])) {
$message = mysql_real_escape_string($_POST['msg']);
if (!empty($message)) $chapeau->query("INSERT INTO `$table_alliances_chat` VALUES (NULL, '".$alliance['id']."', '$id_user', '".time()."', '$message')");
header('Location: ?p=alliances&q=chat#chat');
exit;
}
$page = 'alliance_chat';
//Chat
$chat = $chapeau->query("SELECT * FROM `$table_alliances_chat` WHERE `id_alliance` = '".$alliance['id']."' ORDER BY `id` DESC LIMIT 30");
for($i = 0; $i < $chapeau->num_rows ; $i++){
$chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']);
}
$template->assign('chat', $chat);
}
else {
$page = 'alliance_accueil';
$template->assign('alliance', $alliance);
$membres = $chapeau->query("SELECT * FROM `$table_user` WHERE `id_alliance` = '".$alliance['id']."';");
$template->assign('nbmembre', $chapeau->num_rows);
if (!isset($grade)) $template->assign('grade', 0);
else $template->assign('grade', $grade);
//Chat
$chat = $chapeau->query("SELECT * FROM `$table_alliances_chat` WHERE `id_alliance` = '".$alliance['id']."' ORDER BY `id` DESC LIMIT 30");
for($i = 0; $i < $chapeau->num_rows ; $i++){
$chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']);
}
$template->assign('chat', $chat);
}
}
//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 = mysql_real_escape_string($_POST['by']);
$search = mysql_real_escape_string($_POST['search']);
$recherche = $chapeau->query("SELECT * FROM `$table_alliances` WHERE `$by` LIKE '%$search%' ORDER BY `nom` ASC");
$template->assign('recherches', $recherche);
}
elseif ($_GET['q'] == 'liste' && !empty($_GET['i'])) {
$page = 'alliance_liste';
$membres = $chapeau->query("SELECT * FROM `$table_user` WHERE `id_alliance` = '".floor($_GET['i'])."';");
$template->assign('membres', $membres);
}
elseif ($_GET['q'] == 'view' && !empty($_GET['i'])) {
$id = mysql_real_escape_string($_GET['i']);
$alliance = $chapeau->unique_query("SELECT * FROM `$table_alliances` WHERE `id` = '$id';");
if ($alliance) {
$page = 'alliance_nm_view';
$template->assign('alliance', $alliance);
$membres = $chapeau->query("SELECT * FROM `$table_user` WHERE `id_alliance` = '".$alliance['id']."';");
$template->assign('nbmembre', $chapeau->num_rows);
}
else {
$template->assign('message','Impossible de trouver cette alliance !');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
}
elseif ($_GET['q'] == 'postuler' && !empty($_GET['i'])) {
$id = mysql_real_escape_string($_GET['i']);
$alliance = $chapeau->unique_query("SELECT * FROM `$table_alliances` WHERE `id` = '$id';");
if (!empty($_POST['message'])) {
$chapeau->query("INSERT INTO `$table_alliances_attente` VALUES (NULL, '".$alliance['id']."', '".$id_user."', '".$queryUser['pseudo']."', '".time()."', '".mysql_real_escape_string($_POST['message'])."');");
$template->assign('message','Votre candidature a été envoyée avec succès à l\'alliance : '.$alliance['nom']);
$template->assign('couleur','green');
$template->display('game/erreur.tpl');
exit;
}
$template->assign('alliance', $alliance);
$page = 'alliance_nm_postuler';
}
elseif ($_GET['q'] == 'signer' && !empty($_GET['i'])) {
$lien = mysql_real_escape_string($_GET['i']);
$alliance = $chapeau->unique_query("SELECT * FROM `$table_alliances_creation` WHERE `lien` = '$lien';");
if ($alliance) {
$signataires = explode(';', $alliance['signatures']);
if ($alliance['fondateur'] == $id_user || in_array($id_user, $signataires)) {
$template->assign('message','Vous avez déjà signé pour cette alliance.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=signer";\', 3500);</script>');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
else {
//Si c'est la 4ème signature, on crée l'alliance
if (count($signataires) >= 3) {
$chapeau->query("INSERT INTO `$table_alliances` VALUES (NULL, '".$alliance['tag']."', '".$alliance['nom']."', '".$alliance['fondateur']."', 'A faire', 'A faire', '', '', 1, 1, '');");
$chapeau->query("DELETE FROM `$table_alliances_creation` WHERE `lien` = '$lien';");
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
include_once('Class/class.rapport.php');
$rapport = new Rapport(6, $alliance['fondateur'], 0, time());
$rapport->send();
$nbsign = count($signataires);
for ($i=0 ; $i<$nbsign ; $i++) {
$chapeau->query("UPDATE `$table_user` SET `id_alliance` = '".$alliance['id']."' WHERE `id` = '".$signataires[$i]."'");
}
$chapeau->query("UPDATE `$table_user` SET `id_alliance` = '".$alliance['id']."' WHERE `id` = '$id_user'");
$template->assign('message','Votre signature a bien été ajoutée à la déclaration de l\'alliance.<br />L\'alliance a désormais désormais suffisament de signature pour être créée !');
$template->assign('couleur','green');
$template->display('game/erreur.tpl');
exit;
}
else {
$signataires[] = $id_user;
$signataires = implode(';', $signataires);
$chapeau->query("UPDATE `$table_alliances_creation` SET `signatures` = '$signataires' WHERE `lien` = '$lien'");
$chapeau->query("UPDATE `$table_user` SET `id_alliance` = 'c".$alliance['id']."' WHERE `id` = '$id_user'");
$template->assign('message','Votre signature a bien été ajoutée à la déclaration de l\'alliance.');
$template->assign('couleur','green');
$template->display('game/erreur.tpl');
exit;
}
}
}
else {
$template->assign('message','Impossible de trouver l\'alliance !');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=signer";\', 3500);</script>');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
}
elseif ($_GET['q'] == 'fonder') {
if (!empty($_POST['nom']) && !empty($_POST['tag'])) {
$nom = mysql_real_escape_string(htmlentities($_POST['nom']));
$tag = mysql_real_escape_string(htmlentities($_POST['tag']));
if (strlen($nom) < 5) {
$template->assign('message','Le nom d\'alliance que vous avez choisit est trop court.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
elseif (strlen($nom) > 25) {
$template->assign('message','Le nom d\'alliance que vous avez choisit est trop long.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
elseif (strlen($tag) > 5) {
$template->assign('message','Le nom d\'alliance que vous avez choisit est trop long.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
elseif (strlen($tag) < 3) {
$template->assign('message','Le nom d\'alliance que vous avez choisit est trop court.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
$test = $chapeau->query("SELECT * FROM `alliances` WHERE `nom` = '$nom' AND `tag` = '$tag';");
$test2 = $chapeau->query("SELECT * FROM `alliances_creation` WHERE `nom` = '$nom' AND `tag` = '$tag';");
if ($test || $test2) {
$template->assign('message','Le nom ou le tag que vous avez choisit est déjà utilisé par une alliance.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
else {
$lien = sha1($tag.'Hb$'.$nom.'☺Ø'.$id_user.rand());
$chapeau->query("INSERT INTO `alliances_creation` VALUES(NULL, '$lien' ,'$tag', '$nom', '$id_user', '');");
$template->assign('message','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.'">?p=alliances&amp;q=signer&amp;i='.$lien.'</a>');
$template->assign('couleur','green');
$template->display('game/erreur.tpl');
exit;
}
}
$page = 'alliance_nm_fonder';
}
else {
$page = 'alliance_nm_accueil';
}
}
?>