X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fbriskin5%2FObj%2Fplacing.phh;h=31b97a32bc3f83c677b346179ce3ef2628500112;hb=07070d61b51e6521b1a93ecedeb2e694467d9c60;hp=f0688999911c44998cd442f7c95169369b8ae2e1;hpb=920beeba1879c5b40e5527949d11536c6ec77f31;p=brisk.git diff --git a/web/briskin5/Obj/placing.phh b/web/briskin5/Obj/placing.phh index f068899..31b97a3 100644 --- a/web/briskin5/Obj/placing.phh +++ b/web/briskin5/Obj/placing.phh @@ -78,7 +78,7 @@ class Ptsgam { else return ($this->pts / $this->gam); } -} +} // class Ptsgam { function ptsgam_cmp($a, $b) { @@ -95,6 +95,16 @@ function ptsgam_cmp($a, $b) return (($norma < $normb) ? 1 : -1); } +/* types of placing based on delta time */ +define(TY_DTIME_TRI, 0); +define(TY_DTIME_MON, 1); +define(TY_DTIME_WEE, 2); + +/* subtypes of placing based on number of played games */ +define(SUBTY_FREQ_LO, 0); +define(SUBTY_FREQ_HI, 1); + + function placings_show(&$user) { $mtime = placing_time(); @@ -102,23 +112,23 @@ function placings_show(&$user) $ret = sprintf("

CLASSIFICHE

(aggiornate alle ore %s del %s)", $tm[0], $tm[1]); $tmwee = placing_date($mtime - WEE_LIMIT + (3600)); - $ret .= sprintf("", $tmwee[1], $tm[1], WEE_MAX_GAMES, placing_show($user, "wee_hi") ); - $ret .= sprintf("\n", $tmwee[1], $tm[1], WEE_MAX_GAMES, WEE_MIN_GAMES, placing_show($user, "wee_lo") ); + $ret .= sprintf("", $tmwee[1], $tm[1], WEE_MAX_GAMES, placing_show($user, TY_DTIME_WEE, SUBTY_FREQ_HI) ); + $ret .= sprintf("\n", $tmwee[1], $tm[1], WEE_MAX_GAMES, WEE_MIN_GAMES, placing_show($user, TY_DTIME_WEE, SUBTY_FREQ_LO) ); $tmmon = placing_date($mtime - MON_LIMIT + (3600)); - $ret .= sprintf("", $tmmon[1], $tm[1], MON_MAX_GAMES, placing_show($user, "mon_hi") ); - $ret .= sprintf("\n", $tmmon[1], $tm[1], MON_MAX_GAMES, MON_MIN_GAMES, placing_show($user, "mon_lo") ); + $ret .= sprintf("", $tmmon[1], $tm[1], MON_MAX_GAMES, placing_show($user, TY_DTIME_MON, SUBTY_FREQ_HI) ); + $ret .= sprintf("\n", $tmmon[1], $tm[1], MON_MAX_GAMES, MON_MIN_GAMES, placing_show($user, TY_DTIME_MON, SUBTY_FREQ_LO) ); $tmtri = placing_date($mtime - TRI_LIMIT + (3600)); - $ret .= sprintf("", $tmtri[1], $tm[1], TRI_MAX_GAMES, placing_show($user, "tri_hi")); - $ret .= sprintf("", $tmtri[1], $tm[1], TRI_MAX_GAMES, TRI_MIN_GAMES, placing_show($user, "tri_lo")); + $ret .= sprintf("", $tmtri[1], $tm[1], TRI_MAX_GAMES, placing_show($user, TY_DTIME_TRI, SUBTY_FREQ_HI)); + $ret .= sprintf("", $tmtri[1], $tm[1], TRI_MAX_GAMES, TRI_MIN_GAMES, placing_show($user, TY_DTIME_TRI, SUBTY_FREQ_LO)); $ret .= sprintf("

Settimanale
dal %s al %s
(non meno di %d partite)

%s

Settimanale
dal %s al %s
(meno di %d partite, più di %d)

%s

Settimanale
dal %s al %s
(non meno di %d partite)

%s

Settimanale
dal %s al %s
(meno di %d partite, più di %d)

%s

Mensile
dal %s al %s
(non meno di %d partite)

%s

Mensile
dal %s al %s
(meno di %d partite, più di %d)

%s

Mensile
dal %s al %s
(non meno di %d partite)

%s

Mensile
dal %s al %s
(meno di %d partite, più di %d)

%s

Trimestrale
dal %s al %s
(non meno di %d partite)

%s

Trimestrale
dal %s al %s
(meno di %d partite, più di %d)

%s

Trimestrale
dal %s al %s
(non meno di %d partite)

%s

Trimestrale
dal %s al %s
(meno di %d partite, più di %d)

%s
"); return ($ret); } -function placing_time() +function placing_time_file() { if (($fp = @fopen(LEGAL_PATH."/class_wee_lo.log", 'r')) == FALSE) { return (FALSE); @@ -129,15 +139,65 @@ function placing_time() return ( $st['mtime'] ); } +function placing_time_pgsql() +{ + GLOBAL $G_dbpfx; + $bdb = new BriskDB(); + + $mti_sql = sprintf("SELECT CAST(EXTRACT(EPOCH FROM mtime) AS INTEGER) as mtime + FROM %sbin5_places_mtime WHERE code = 0;", $G_dbpfx); + + if (($mti_pg = pg_query($bdb->dbconn->db(), $mti_sql)) == FALSE || pg_numrows($mti_pg) == 0) { + // no point found, abort + log_crit("placing: get placing mtime failed [$mti_sql]"); + return (FALSE); + } + + $mti_pg = pg_fetch_object($mti_pg, 0); + + return ($mti_pg->mtime); +} + +function placing_time() +{ + GLOBAL $G_dbasetype; + + $fun_name = "placing_time_${G_dbasetype}"; + + return ($fun_name()); +} + function placing_date($mtime) { return array( date('G:i', $mtime), date('j/n/y', $mtime) ); } -function placing_show(&$user, $suff) +function placing_show_file(&$user, $ty, $subty) { $tail = FALSE; + + $suff = ""; + switch($ty) { + case TY_DTIME_TRI: + $suff = "tri_"; + break; + case TY_DTIME_MON: + $suff = "mon_"; + break; + case TY_DTIME_WEE: + $suff = "wee_"; + break; + } + + switch($subty) { + case TY_FREQ_LO: + $suff .= "lo"; + break; + case TY_FREQ_HI: + $suff .= "hi"; + break; + } if (($fp = @fopen(LEGAL_PATH."/class_".$suff.".log", 'r')) == FALSE) { return (FALSE); @@ -184,3 +244,66 @@ function placing_show(&$user, $suff) return ($ret); } +// +// + +function placing_show_pgsql(&$user, $ty, $subty) +{ + GLOBAL $G_dbpfx; + + $bdb = new BriskDB(); + + if ($user != FALSE) { + $pla_sql = sprintf("SELECT * from %sbin5_places where type = %d AND (rank <= %d OR ucode = '%s');", + $G_dbpfx, ($ty * 2) + $subty, TOP_NUM, escsql($user->code)); + } + else { + $pla_sql = sprintf("SELECT * from %sbin5_places where type = %d AND rank <= %d;", + $G_dbpfx, ($ty * 2) + $subty, TOP_NUM); + } + + if (($pla_pg = pg_query($bdb->dbconn->db(), $pla_sql)) == FALSE || pg_numrows($pla_pg) == 0) { + // no point found, abort + log_crit("placing: get placing list failed [$pla_sql]"); + return (""); + } + + // MLANG + $ret = sprintf(""); + + for ($i = 0 ; $i < pg_numrows($pla_pg) ; $i++) { + $pla_obj = pg_fetch_object($pla_pg,$i); + + $ein = ""; + $eou = ""; + if ($user != FALSE) { + if ($user->code == $pla_obj->ucode) { + $ein = ""; + $eou = ""; + } + } + + /* when the user is far from the top-ten we place a ... separator before it */ + if ($pla_obj->rank > TOP_NUM) { + $ret .= sprintf(""); + } + $ret .= sprintf("", $pla_obj->rank, + $ein, xcape($pla_obj->login), $eou, + $ein, $pla_obj->score, $eou, + $ein, $pla_obj->pts, $pla_obj->games, $eou); + } + $ret .= "
Pos.UtenteScore(Punti/Partite)
. . . . . . . . . .
%d%s%s%s%s%12.3f%s%s(%d/%d)%s
"; + + return ($ret); +} + +function placing_show(&$user, $ty, $subty) +{ + GLOBAL $G_dbasetype; + + $fun_name = "placing_show_${G_dbasetype}"; + + return ($fun_name($user, $ty, $subty)); +} + +?> \ No newline at end of file