Skip to content
Extraits de code Groupes Projets
Valider 22c6bec3 rédigé par Romain 'Table' DROUIN's avatar Romain 'Table' DROUIN
Parcourir les fichiers

correction d'un g sur la modifiction de partie en équipe

parent 36d06f17
Aucune branche associée trouvée
Aucune étiquette associée trouvée
2 requêtes de fusion!21Merge de Dev dans Master,!19Dev admin
...@@ -28,6 +28,10 @@ class AdminController extends Controller { ...@@ -28,6 +28,10 @@ class AdminController extends Controller {
$this->view->display(); $this->view->display();
} }
public function displayModifPartieOK() {
$this->view->display();
}
public function supprimeJeu() { public function supprimeJeu() {
$slug = $this->route["params"]["slug"]; $slug = $this->route["params"]["slug"];
Admin::supprJeu($slug); Admin::supprJeu($slug);
...@@ -498,6 +502,33 @@ class AdminController extends Controller { ...@@ -498,6 +502,33 @@ class AdminController extends Controller {
$this->view->display(); $this->view->display();
} }
public function displayModifPartieStepe2()
{
session_start();
$id = $this->route["params"]["slug"];
if (!isset($_SESSION['jeu_select'])) {
header("Location:../../../partie");
die();
}
if (!isset($_SESSION['equipes'])) {
header("Location:../initModif");
die();
}
if(isset($_SESSION['errMsg'])){
$this->view->errMsg = $_SESSION['errMsg'];
unset($_SESSION['errMsg']);
}
$this->view->jeuactuel = $_SESSION['jeu_select'];
$this->view->equipes = $_SESSION['equipes'];
if($this->view->jeuactuel->type_scores == "scores") {
$this->view->scorePartie = Admin::getListeScorePartie($id);
} else {
$this->view->classement = Admin::getListeClassement($id);
}
$this->view->display();
}
public function verifyModifPartieStep2() public function verifyModifPartieStep2()
{ {
$id = $this->route["params"]["slug"]; $id = $this->route["params"]["slug"];
......
...@@ -347,6 +347,12 @@ class Router ...@@ -347,6 +347,12 @@ class Router
$result["params"]["slug"] = $parts[2]; $result["params"]["slug"] = $parts[2];
} }
else if($parts[0] == "admin" && count($parts) == 5 && $parts[1] == 'partie' && $parts[3] == 'modif' && $parts[4] == 'valid') {
$result["controller"] = 'Admin';
$result['action'] = "displayModifPartieOK";
$result["params"]["slug"] = $parts[2];
}
else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "addjoueurs1") { else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "addjoueurs1") {
$result["controller"] = "Partie"; $result["controller"] = "Partie";
$result["action"] = "addjoueurs1"; $result["action"] = "addjoueurs1";
......
...@@ -191,7 +191,7 @@ class Admin extends Model { ...@@ -191,7 +191,7 @@ class Admin extends Model {
public static function getListeClassement2($id) { public static function getListeClassement2($id) {
$db = Database::getInstance(); // on récupère la connexion à la BDD $db = Database::getInstance(); // on récupère la connexion à la BDD
$sql = "SELECT * FROM R_joueur_partie WHERE partie = :id ORDER BY classement"; // on définit la requête qu'on enverra (on considère que le slug contient jeu/nomDuJeu pour le classement par jeu. Donc il faudrait encore faire un explode() sur le slug. $sql = "SELECT DISTINCT classement FROM R_joueur_partie WHERE partie = :id ORDER BY classement"; // on définit la requête qu'on enverra (on considère que le slug contient jeu/nomDuJeu pour le classement par jeu. Donc il faudrait encore faire un explode() sur le slug.
$req = $db->prepare($sql); // on prépare la requête (c'est là que la mémthode __call() est utile dans la classe Database d'ailleurs) $req = $db->prepare($sql); // on prépare la requête (c'est là que la mémthode __call() est utile dans la classe Database d'ailleurs)
$req->execute(array(':id' => $id)); $req->execute(array(':id' => $id));
$res = array(); $res = array();
...@@ -223,7 +223,7 @@ class Admin extends Model { ...@@ -223,7 +223,7 @@ class Admin extends Model {
} }
} }
// applique la partie // applique la partie
if (($resp = self::appliquePartie($id, $joueurs, $scores, $jeu)) > 0){ if (($resp = Partie::modPartie($joueurs, $scores, $jeu, $id)) > 0){
print $resp; print $resp;
die(); die();
} }
...@@ -234,116 +234,9 @@ class Admin extends Model { ...@@ -234,116 +234,9 @@ class Admin extends Model {
while ($ligne = $stmt2->fetch(PDO::FETCH_ASSOC)) { while ($ligne = $stmt2->fetch(PDO::FETCH_ASSOC)) {
$joueurs = $jeu->type == 'equipes' ? Admin::getEquipes($ligne['id']) : Admin::getListeJoueur($ligne['id']); $joueurs = $jeu->type == 'equipes' ? Admin::getEquipes($ligne['id']) : Admin::getListeJoueur($ligne['id']);
$scores = $jeu->type_scores == 'scores' ? Admin::getListeScorePartie2($ligne['id']) : Admin::getListeClassement2($ligne['id']); $scores = $jeu->type_scores == 'scores' ? Admin::getListeScorePartie2($ligne['id']) : Admin::getListeClassement2($ligne['id']);
self::appliquePartie($ligne['id'],$joueurs, $scores, $jeu); Partie::modPartie($joueur, $scores, $jeu, $ligne['id']);
}
}
static function appliquePartie($id_partie, $joueurs, $scores, $jeu) {
$db = Database::getInstance();
$sql3 = "SELECT score FROM R_joueur_jeu WHERE joueur = :id_joueur AND jeu = :id_jeu;";
$sql4 = "UPDATE R_joueur_partie SET classement = :classement, score = :score, score_partie = :score_partie
WHERE joueur = :joueur AND partie = :partie;";
$sql5 = "UPDATE R_joueur_jeu SET score = :new_score WHERE joueur = :id_joueur AND jeu = :id_jeu;";
$sqlN = "INSERT INTO R_joueur_jeu (joueur, jeu, score) VALUES (:id_joueur, :id_jeu, :score);";
$stmt3 = $db->prepare($sql3);
$stmt4 = $db->prepare($sql4);
$stmt5 = $db->prepare($sql5);
$m = count($scores);
$old_score = array_fill(0, $m, 0);
$old_score_e = array();
foreach ($joueurs as $k => $joueur) {
// version avec équipes
if ($jeu->type == 'equipes') {
$old_score_e[$k] = array();
foreach ($joueur as $kj => $j) {
if ($stmt3->execute(array(":id_joueur" => $j->slug, ":id_jeu" => $jeu->slug))) {
if ($row = $stmt3->fetch()) {
// Le joueur a déja joué à ce jeu
$old_score_e[$k][$kj] = $row[0];
} else {
// ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation.
$old_score_e[$k][$kj] = 1000;
$stmtN = $db->prepare($sqlN);
if ($stmtN->execute(array(":id_joueur" => $j->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) {
} else
return 2;
}
}
}
$old_score[$k] = array_sum($old_score_e[$k]) / count($old_score_e[$k]);
} else {
// récupération du score actuel de chaque joueur
if ($stmt3->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug))) {
if ($row = $stmt3->fetch()) {
// Le joueur a déja joué à ce jeu
$old_score[$k] = $row[0];
} else {
// ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation.
$old_score[$k] = 1000;
$stmtN = $db->prepare($sqlN);
if ($stmtN->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) {
} else
return 2;
} }
return 0;
}
}
}
// Calcul de la nouvelle différence de scores et du classement de chacun dans la partie
$diff_scores = ELO_scores($old_score, $scores, 32);
$classement = Partie::calcul_classement($diff_scores);
foreach ($joueurs as $k => $joueur) {
if ($jeu->type_scores == 'classement'){
$score = null;
}
else{
$score = $scores[$k];
}
if ($jeu->type == 'equipes') {
foreach ($joueur as $kj => $j) {
// Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie
// et le score de la partie) pour chaque joueur par équipe
if ($stmt4->execute(array(":partie" => $id_partie,
":joueur" => $j->slug,
":classement" => $classement[$k], ":score" => $old_score_e[$k][$kj], ":score_partie" => $score))
) {
$newS = $old_score_e[$k][$kj] + $diff_scores[$k];
// On met à jour le score du joueur actuel dans sa relation avec le jeu
if ($stmt5->execute(array(":new_score" => $newS,
":id_jeu" => $jeu->slug, ":id_joueur" => $j->slug))
) {
} else
return 4;
} else
return 3;
}
} else {
// Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie
// et le score de la partie) pour chaque joueur
if ($stmt4->execute(array(":partie" => $id_partie,
":joueur" => $joueur->slug,
":classement" => $classement[$k], ":score" => $old_score[$k], ":score_partie" => $score))
) {
$newS = $old_score[$k] + $diff_scores[$k];
// On met à jour le score du joueur actuel dans sa relation avec le jeu
if ($stmt5->execute(array(":new_score" => $newS,
":id_jeu" => $jeu->slug, ":id_joueur" => $joueur->slug))
) {
} else
return 4;
} else
return 3;
}
}
// met à jour le classement de tous les joueurs
return Partie::updateClassement($jeu);
} }
} }
\ No newline at end of file
<?php
$page_title = "Page d'administration";
include(ROOT."/app/view/Includes/header.include.html");
?>
<?php if(isset($_SESSION['user']) && Admin::estAdmin($_SESSION['user']->slug)) { ?>
<article class="msg-valide"><h2>Modifiction réussie !</h2></article>
<?php } else { ?>
<article class="msg-erreur">Vous n'êtes pas connecté comme administrateur</article>
<?php } ?>
<?php include(ROOT."/app/view/Includes/footer.include.html"); ?>
...@@ -23,19 +23,19 @@ ...@@ -23,19 +23,19 @@
</li> </li>
<?php } ?> <?php } ?>
</ul> </ul>
<?php if($jeuactuel->type_scores == 'scores'){ ?> <?php if($jeuactuel->type_scores == 'scores'){ print_r($this->scorePartie);?>
Score obtenu : <input type="text" title="score" required="" name="scores[]"/> Score obtenu : <input type="text" title="score" required="" name="scores[]" value="<?php echo isset($this->scorePartie[$e[0]->slug]) ? $this->scorePartie[$e[0]->slug] : "" ; ?>"/>
<?php } else { ?> <?php } else { ?>
Classement obtenu : <select title="score" required="" name="scores[]"> Classement obtenu : <select title="score" required="" name="scores[]">
<?php for ($j=1;$j<= count($this->equipes);$j++){ ?> <?php for ($j=1;$j<= count($this->equipes);$j++){ ?>
<option value="<?php echo count($this->equipes)-$j;?>"><?php echo $j;?></option> <option value="<?php echo count($this->equipes)-$j;?>" <?php echo ((isset($this->classement[$e[0]->slug]) && $this->classement[$e[0]->slug] == $j)? "selected" : "") ?>><?php echo $j;?></option>
<?php } ?> <?php } ?>
</select> </select>
<?php } ?> <?php } ?>
<?php } ?> <?php } ?>
<div class="submit"> <div class="submit">
<input type="reset" name="reset" value="Réinitialiser"/> <input type="reset" name="reset" value="Réinitialiser"/>
<input type="submit" name="submit" value="Demander l'ajout"/> <input type="submit" name="submit" value="Modifier"/>
</div> </div>
</form> </form>
<div class="submit"> <div class="submit">
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter