www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 26f07c457c3f008ff55c19a0bab8e72e9fb250a1
parent 079ad3282719bd9c6b834885ad211bc93f302d6d
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Wed, 25 May 2011 13:09:08 +0200

Bug à cause d'un mutex qui n'était pas libéré.

Diffstat:
Mcode/serveur/php/jeu.html | 8++++++--
Mcode/serveur/php/ressources/backend.inc | 64+++++++++++++++++++++++++++++++++++++++-------------------------
Mcode/serveur/php/ressources/pticlic.js | 1+
Mcode/serveur/php/server.php | 4++++
4 files changed, 50 insertions(+), 27 deletions(-)

diff --git a/code/serveur/php/jeu.html b/code/serveur/php/jeu.html @@ -128,8 +128,12 @@ </div> <div id="score" class="screen"> <h1 class="fitFont" style="width:100%; height:8%; top: 6%; position:absolute; margin:0; text-align:center;">Score total : <span class="scoreTotal"></span></h1> - <div class="scores fitFont" style="width:100%; height:62%; top:20%; position:absolute;"></div> - <p class="fitFont" style="text-align: center; width:90%; height:12%; top:86%; left:5%; position:absolute; margin:0; padding:0;"> + <div class="scores fitFont" style="width:100%; height:50%; top:20%; position:absolute;"></div> + <p class="fitFont" style="text-align: center; width:90%; height:12%; top:74%; left:5%; position:absolute; margin:0; padding:0;"> + <a class="button" href="#" style="float:left;">J'♥ cette partie</a> + <a class="button" href="#" style="float:right;">J'♥ pas cette partie</a> + </p> + <p class="fitFont" style="clear:both; text-align: center; width:90%; height:12%; top:86%; left:5%; position:absolute; margin:0; padding:0;"> <a class="button" href="#frontpage">J'ai vu !</a> </p> </div> diff --git a/code/serveur/php/ressources/backend.inc b/code/serveur/php/ressources/backend.inc @@ -5,33 +5,35 @@ require_once("ressources/db.inc"); /* Les prototypes des fonctions : -* ===============================> -* checkLogin($user, $passwd); -* randomCenterNode(); -* randomCloudNode(); -* cgBuildResultSets($cloudSize, $centerEid, $r1, $r2); -* cgChooseRelations(); -* cgBuildCloud($centerEid, $cloudSize, $sources, $sumWeights); -* insertCreatedGame($centerEid, $cloud, $r1, $r2, $totalDifficulty, $userName); -* randomGameCore(); -* randomGame(); -* formatWord($word); -* game2array($user, $pgid); -* createGame($nbParties, $mode); -* createGameCore($cloudSize); -* computeScore($probas, $difficulty, $answer, $userReputation); -* computeUserReputation($score); -* normalizeProbas($row); -* setGame($user, $pgid, $gid, $answers); -* get_game_relations(); -* getGameRelationsJSON(); -* setGameGetScore($user, $pgid, $gid, $answers); -* getNodeEid($node); -* wordExist($node); -* setUserInfo($user, $key, $value); +*===============================> +* checkLogin($user, $passwd); +* randomCenterNode(); +* randomCloudNode(); +* cgBuildResultSets($cloudSize, $centerEid, $r1, $r2); +* cgChooseRelations(); +* cgBuildCloud($centerEid, $cloudSize, $sources, $sumWeights); +* insertCreatedGame($centerEid, $cloud, $r1, $r2, $totalDifficulty, $userName); +* randomGameCore(); +* randomGame(); +* formatWord($word); +* game2array($user, $pgid); +* createGame($nbParties, $mode); +* createGameCore($cloudSize); +* computeScore($probas, $difficulty, $answer, $userReputation); +* computeUserReputation($score); +* normalizeProbas($row); +* setGame($user, $pgid, $gid, $answers); +* get_game_relations(); +* getGameRelationsJSON(); +* setGameGetScore($user, $pgid, $gid, $answers); +* getNodeEid($node); +* wordExist($node); +* setUserInfo($user, $key, $value); * userPrefsDefaults(); * userPrefs($user); -* setUserPref($user, $key, $value); +* setUserPref($user, $key, $value); +* getJAimePgid($user, $pgid); +* setJAimePgid($user, $pgid, $value); */ @@ -711,4 +713,16 @@ function setUserPref($user, $key, $value) { } } +function getJAimePgid($user, $pgid) { + getDB()->querySingle("SELECT like FROM played_game WHERE login = '".SQLite3::escapeString($user)."' and pgid = ".longStrVal($pgid).";"); +} + +function setJAimePgid($user, $pgid, $value) { + $value = intval($value) / abs(intval($value) || 1); // Calcule le signe de $value : -1 ou 0 ou 1 + $original = getJAimePgid($user, $pgid); + getDB()->querySingle("UPDATE played_game SET like = ".$value." WHERE login = '".SQLite3::escapeString($user)."' and pgid = ".longStrVal($pgid).";"); + getDB()->querySingle("UPDATE game SET nb_like = nb_like".($original == 1 ? " - 1" : "").($value == 1 ? " + 1" : "")." WHERE login = '".SQLite3::escapeString($user)."' and pgid = ".longStrVal($pgid).";"); + getDB()->querySingle("UPDATE game SET nb_dislike = nb_dislike".($original == -1 ? " - 1" : "").($value == -1 ? " + 1" : "")." WHERE login = '".SQLite3::escapeString($user)."' and pgid = ".longStrVal($pgid).";"); +} + ?> diff --git a/code/serveur/php/ressources/pticlic.js b/code/serveur/php/ressources/pticlic.js @@ -312,6 +312,7 @@ init(function() { if (updating) return false; updating = true; if (!runstate.game || state.pgid != runstate.game.pgid) { + updating = false; $('#game').trigger('goto'); return; } diff --git a/code/serveur/php/server.php b/code/serveur/php/server.php @@ -114,6 +114,10 @@ function main() } elseif ($action == 9) { session_destroy(); echo '{"disconnected":true}'; + } elseif ($action == 10) { // Set J'aime / J'aime pas + if (!isset($_GET['value']) || !isset($_GET['pgid'])) + throw new Exception("La requête est incomplète", 2); + setJAimePgid($user, $_GET['pgid'], intval($_GET['value'])); } else { throw new Exception("Commande inconnue", 2); }