aboutsummaryrefslogtreecommitdiff
path: root/src/fanswer.php
diff options
context:
space:
mode:
authorRodrigo Laiola GuimarĂ£es <rlaiola@users.noreply.github.com>2024-03-21 11:04:04 +0000
committerGitHub <noreply@github.com>2024-03-21 11:04:04 +0000
commit4fbfe476f66cb81b56092312ba1238dffb375c92 (patch)
treebbcd7d71f36cf18448a753c8c20695f54712bccb /src/fanswer.php
parent9dc160c02e1ccc723adc84048427b1564302ca44 (diff)
parentd712c818ac131caf357363ffc52517d6f56fe754 (diff)
downloadboca-4fbfe476f66cb81b56092312ba1238dffb375c92.tar.gz
boca-4fbfe476f66cb81b56092312ba1238dffb375c92.zip
Merge branch 'cassiopc:master' into fix_username_header
Diffstat (limited to 'src/fanswer.php')
-rw-r--r--src/fanswer.php24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/fanswer.php b/src/fanswer.php
index 8f2c95b..17f42a0 100644
--- a/src/fanswer.php
+++ b/src/fanswer.php
@@ -30,6 +30,7 @@ CREATE TABLE \"answertable\" (
\"contestnumber\" int4 NOT NULL, -- (id do concurso)
\"answernumber\" int4 NOT NULL, -- (id da reposta)
\"runanswer\" varchar(50) NOT NULL, -- (reposta dada no julgamento)
+\"shortname\" varchar(50) DEFAULT '' NOT NULL, -- ()
\"yes\" bool DEFAULT 'f' NOT NULL, -- (flag para indicar se conta ponto)
\"fake\" bool DEFAULT 'f' NOT NULL, -- (flag para indicar se eh resposta valida)
\"updatetime\" int4 DEFAULT EXTRACT(EPOCH FROM now()) NOT NULL, -- (indica a ultima atualizacao no registro)
@@ -49,7 +50,7 @@ CONSTRAINT \"contest_fk\" FOREIGN KEY (\"contestnumber\") REFERENCES \"contestta
//devolve um array, onde cada linha tem os atributos number (numero da resposta) e desc (descricao da resposta)
function DBGetAnswers($contest) {
$c = DBConnect();
- $r = DBExec($c, "select distinct a.answernumber as number, a.runanswer as desc, a.yes as yes, a.fake as fake ".
+ $r = DBExec($c, "select distinct a.answernumber as number, a.runanswer as desc, a.shortname as short, a.yes as yes, a.fake as fake ".
"from answertable as a where a.contestnumber=$contest and a.runanswer !~ '(DEL)' order by a.answernumber", "DBGetAnswers(get answers)");
$n = DBnlines($r);
$a = array();
@@ -58,6 +59,18 @@ function DBGetAnswers($contest) {
return $a;
}
+function DBGetAnswer($contest, $number) {
+ $c = DBConnect();
+ $r = DBExec($c, "select distinct a.answernumber as number, a.runanswer as desc, a.shortname as short, a.yes as yes, a.fake as fake ".
+ "from answertable as a where a.contestnumber=$contest and a.runanswer !~ '(DEL)' order by a.answernumber", "DBGetAnswer(only 1 answer)");
+ $n = DBnlines($r);
+ if ($n != 1) {
+ return null;
+ }
+ $a = DBRow($r,0);
+ return $a;
+}
+
//recebe o numero do contest e o numero da resposta e remove-a caso seu tipo nao seja fake
function DBDeleteAnswer($contest,$param,$c=null) {
$ac=array('number');
@@ -98,8 +111,9 @@ function DBNewAnswer($contest, $param, $c=null) {
}
if(isset($param['answernumber']) && !isset($param['number'])) $param['number']=$param['answernumber'];
if(isset($param['runanswer']) && !isset($param['name'])) $param['name']=$param['runanswer'];
+ if(isset($param['shortname']) && !isset($param['short'])) $param['short']=$param['shortname'];
- $ac=array('number','name','yes');
+ $ac=array('number','name','yes', 'short');
$type['number']=1;
foreach($ac as $key) {
if(!isset($param[$key])) {
@@ -131,15 +145,15 @@ function DBNewAnswer($contest, $param, $c=null) {
$ret=1;
if ($n == 0) {
$ret=2;
- DBExec($c, "insert into answertable (contestnumber, answernumber, runanswer, yes, updatetime) values " .
- "($contest, $number, '$name', '$y', $t)", "DBNewAnswer(insert answer)");
+ DBExec($c, "insert into answertable (contestnumber, answernumber, runanswer, shortname, yes, updatetime) values " .
+ "($contest, $number, '$name', '$short', '$y', $t)", "DBNewAnswer(insert answer)");
if($cw) DBExec($c, "commit work", "DBNewAnswer(commit)");
LOGLevel("Answer $number inserted (contest=$contest,user=".$_SESSION["usertable"]["username"]."/".$_SESSION["usertable"]["usersitenumber"].")", 2);
} else {
$lr = DBRow($r,0);
if($updatetime > $lr['updatetime']) {
$ret=2;
- DBExec($c, "update answertable set runanswer='$name', yes='$y', updatetime=". $updatetime . " where ".
+ DBExec($c, "update answertable set runanswer='$name', yes='$y', shortname='$short', updatetime=". $updatetime . " where ".
"contestnumber=$contest and answernumber=$number and fake='f'", "DBNewAnswer(update answer)");
if($cw) DBExec($c, "commit work", "DBNewAnswer(commit)");
LOGLevel("Answer $number updated (contest=$contest,user=".$_SESSION["usertable"]["username"]."/".$_SESSION["usertable"]["usersitenumber"].")", 2);