diff --git a/code/serveur/php/jeu.html b/code/serveur/php/jeu.html index 8b28d01..227838b 100644 --- a/code/serveur/php/jeu.html +++ b/code/serveur/php/jeu.html @@ -128,8 +128,12 @@
diff --git a/code/serveur/php/ressources/backend.inc b/code/serveur/php/ressources/backend.inc index 0acdffc..78997b9 100644 --- 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 index c42684b..e43e4a0 100644 --- 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 index 1af57c4..4ee7f7b 100644 --- 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); }