Added full source code

This commit is contained in:
Emmanuel BENOîT 2016-01-10 11:01:49 +01:00
commit 33f8586698
1377 changed files with 123808 additions and 0 deletions

View file

@ -0,0 +1,52 @@
<?php
class main_rankings_library {
var $index = array(
'append',
'delete',
'getAll',
'update'
);
function main_rankings_library($lib) {
$this->lib = $lib;
$this->db = $this->lib->game->db;
}
function getType($identifier) {
$version = $this->lib->game->version->id;
$name = $this->lib->game->name;
$q = $this->db->query("SELECT g.id FROM ranking_def d, ranking_game g "
. "WHERE d.version='$version' AND d.name='$identifier' AND g.ranking=d.id AND g.game='$name'");
list($id) = dbFetchArray($q);
return $id;
}
function getTypes() {
$game = $this->lib->game;
$version = $game->version;
$q = $this->db->query("SELECT g.id,d.name FROM ranking_def d, ranking_game g "
. "WHERE d.version='{$version->id}' AND g.game='{$game->name}' AND g.ranking=d.id");
$rs = array();
while ($r = dbFetchArray($q)) {
$rs[$r[1]] = $r[0];
}
return $rs;
}
function getText($id, $lang) {
$q = $this->db->query("SELECT t.name AS name,t.description AS description "
. "FROM ranking_text t, ranking_game g "
. "WHERE g.id=$id AND t.ranking=g.ranking AND t.lang='$lang'");
return dbFetchHash($q);
}
function get($type, $id) {
$q = $this->db->query("SELECT points,ranking FROM ranking WHERE r_type=$type AND LOWER(id)='".addslashes(strtolower($id))."' ORDER BY ranking,id");
return dbFetchHash($q);
}
}
?>

View file

@ -0,0 +1,30 @@
<?php
class main_rankings_append {
function main_rankings_append($lib) {
$this->lib = $lib;
$this->db = $this->lib->game->db;
}
function run($type, $id, $additional = null) {
$q = $this->db->query("SELECT ranking FROM ranking WHERE r_type=$type AND points=0");
if ($q && dbCount($q)) {
list($rk) = dbFetchArray($q);
} else {
$q = $this->db->query("SELECT MAX(ranking) FROM ranking WHERE r_type=$type");
list($mrk) = dbFetchArray($q);
if (is_null($mrk)) {
$rk = 1;
} else {
$q = $this->db->query("SELECT COUNT(*) FROM ranking WHERE r_type=$type AND ranking=$mrk");
list($nrk) = dbFetchArray($q);
$rk = $mrk + $nrk;
}
}
$this->db->query("INSERT INTO ranking(r_type,id,additional,points,ranking) VALUES("
. "$type,'" . addslashes($id) . "'," . (is_null($additional) ? "NULL" : ("'" . addslashes($additional) . "'")) . ",0,$rk)");
}
}
?>

View file

@ -0,0 +1,20 @@
<?php
class main_rankings_delete {
function main_rankings_delete($lib) {
$this->lib = $lib;
$this->db = $this->lib->game->db;
}
function run($type,$id) {
$q = $this->db->query("SELECT ranking FROM ranking WHERE r_type=$type AND id='".addslashes($id)."'");
list($rk) = dbFetchArray($q);
if (!is_null($rk)) {
$this->db->query("DELETE FROM ranking WHERE r_type=$type AND id='".addslashes($id)."'");
$this->db->query("UPDATE ranking SET ranking=ranking-1 WHERE r_type=$type AND ranking>$rk");
}
}
}
?>

View file

@ -0,0 +1,27 @@
<?php
class main_rankings_getAll {
function main_rankings_getAll($lib) {
$this->lib = $lib;
$this->db = $this->lib->game->db;
}
function run($type, $top = null) {
if (is_null($top)) {
$qs = "";
} else {
$qs = "AND ranking<=$top";
}
$rs = array();
$q = $this->db->query("SELECT id,points,ranking FROM ranking WHERE r_type=$type $qs ORDER BY ranking ASC,id ASC");
while ($r = dbFetchHash($q)) {
array_push($rs, $r);
}
return $rs;
}
}
?>

View file

@ -0,0 +1,39 @@
<?php
class main_rankings_update {
function main_rankings_update($lib) {
$this->lib = $lib;
$this->db = $this->lib->game->db;
}
function run($id, $data) {
// $data = array($points => array($name));
$plist = array_keys($data);
sort($plist);
$plist = array_reverse($plist);
$a = array(); $cr = 1;
for ($i=0;$i<count($plist);$i++) {
$s = 0;
foreach ($data[$plist[$i]] as $pn) {
array_push($a, array(
'name' => $pn,
'points' => $plist[$i],
'ranking' => $cr
));
$s ++;
}
$cr += $s;
}
$this->db->query("DELETE FROM ranking WHERE r_type=$id");
foreach ($a as $entry) {
$this->db->query("INSERT INTO ranking(r_type,id,additional,points,ranking) VALUES("
. "$id, '" . addslashes($entry['name']) . "',NULL,".$entry['points'].",".$entry['ranking'].")");
}
}
}
?>