From: Leandro Lucarella Date: Wed, 4 May 2005 21:55:47 +0000 (+0000) Subject: Se optimiza file_creditos_evaluar() para que también grabe el archivo sólo de ser... X-Git-Tag: svn_import~92 X-Git-Url: https://git.llucax.com/z.facultad/75.43/tp1.git/commitdiff_plain/75573420ee5b9fc36505b058a19ea4642e8138d4 Se optimiza file_creditos_evaluar() para que también grabe el archivo sólo de ser necesario. --- diff --git a/src/lib/file.creditos.php b/src/lib/file.creditos.php index c07370b..e4a9f6e 100644 --- a/src/lib/file.creditos.php +++ b/src/lib/file.creditos.php @@ -14,6 +14,11 @@ require_once 'lib/file.php'; * Actualiza el archivo de créditos al loguearse. * Calcula si hay que restar créditos por días sin preguntar. * + * TODO ver si anda por el tema de las preguntas, que se pueden actualizar los + * creditos sin que pregunte. Probablemente haya que agregar una fecha de + * último chequeo para diferenciar entragas por login de entradas por + * evaluar o preguntas (me parece que con 'dias' no alcanza). + * * @return false si hay error */ function file_creditos_login($user) @@ -39,8 +44,7 @@ function file_creditos_login($user) */ function file_creditos_preguntar($user) { - $row = file_creditos_get($user); - if (!$row) return false; + if (!($row = file_creditos_get($user))) return false; list($fecha, $creditos, $bonus, $dias) = $row; return file_creditos_write($user, $creditos - 1, $bonus, 0); } @@ -53,16 +57,21 @@ function file_creditos_preguntar($user) */ function file_creditos_evaluar($user, $es_bonus = false, $bonus_cant = 5) { - $row = file_creditos_get($user); - if (!$row) return false; + if (!($row = file_creditos_get($user))) return false; list($fecha, $creditos, $bonus, $dias) = $row; - if ($es_bonus) $bonus++; - if ($bonus >= $bonus_cant) + $bonus2 = $bonus; + $creditos2 = $creditos; + if ($es_bonus) $bonus2++; + if ($bonus2 >= $bonus_cant) { - $creditos += intval($bonus / $bonus_cant) * $bonus_cant; - $bonus %= $bonus_cant; + $creditos2 += intval($bonus2 / $bonus_cant) * $bonus_cant; + $bonus2 %= $bonus_cant; } - return file_creditos_write($user, $creditos, $bonus, $dias); + if ($bonus2 != $bonus or $creditos2 != $creditos) + { + return (bool)file_creditos_write($user, $creditos2, $bonus2, $dias); + } + return true; } /**