2019-09-20 12:57:06 +00:00
< ? php
class Question
{
private $id ;
private $from ;
private $to ;
private $problem ;
2019-09-21 12:31:31 +00:00
private $number ;
2019-09-20 12:57:06 +00:00
private $question ;
2019-09-21 11:37:48 +00:00
private $attached_file ;
2019-09-20 12:57:06 +00:00
private function __construct ()
{
}
public static function fromId ( $id )
{
global $DB ;
$req = $DB -> prepare ( " SELECT * FROM `questions` WHERE `id` = ?; " );
$req -> execute ( htmlspecialchars ( $id ));
$data = $req -> fetch ();
if ( $data === false )
return null ;
$question = new Question ();
$question -> fill ( $data );
return $question ;
}
2019-09-21 11:37:48 +00:00
public static function fromAttachedFile ( $attached_file )
{
global $DB ;
$req = $DB -> prepare ( " SELECT * FROM `questions` WHERE `attached_file` = ?; " );
$req -> execute ([ htmlspecialchars ( $attached_file )]);
$data = $req -> fetch ();
if ( $data === false )
return null ;
$question = new Question ();
$question -> fill ( $data );
return $question ;
}
2019-09-20 12:57:06 +00:00
public function fill ( $data )
{
foreach ( $data as $key => $value )
$this -> $key = $value ;
}
public static function getQuestions ( Team $from , Team $to )
{
global $DB ;
ensure ( $from -> getProblem () == $to -> getProblem (), " Les deux équipes doivent travailler sur le même problème. " );
$req = $DB -> prepare ( " SELECT * FROM `questions` WHERE `from` = ? AND `to` = ?; " );
$req -> execute ([ $from -> getId (), $to -> getId ()]);
$questions = [];
while (( $data = $req -> fetch ()) !== false ) {
$question = new Question ();
$question -> fill ( $data );
$questions [] = $question ;
}
if ( sizeof ( $questions ) == 0 ) {
$default_questions = [ " Slogan ? " , " Est-ce que les blagues de R-ev sont drôles ? " , " C'est où le WEI ? " , " Qui est le plus lourd ? " , " Quelle est la réponse à la vie, à l'univers et à tout le reste ? " , " Que préférez-vous entre la pratique et la théorie ? " ];
for ( $_ = 0 ; $_ < 6 ; ++ $_ ) {
$req = $DB -> prepare ( " INSERT INTO `questions`(`from`, `to`, `problem`, `question`) VALUES (?, ?, ?, ?); " );
$req -> execute ([ $from -> getId (), $to -> getId (), $from -> getProblem (), $default_questions [ $_ ]]);
}
return self :: getQuestions ( $from , $to );
}
return $questions ;
}
public function getId ()
{
return $this -> id ;
}
public function getFrom ()
{
return $this -> from ;
}
public function getTo ()
{
return $this -> to ;
}
public function getProblem ()
{
return $this -> problem ;
}
2019-09-21 12:31:31 +00:00
public function getNumber ()
{
return $this -> number ;
}
2019-09-20 12:57:06 +00:00
public function getQuestion ()
{
return $this -> question ;
}
2019-09-21 11:37:48 +00:00
2019-09-21 12:31:31 +00:00
public function setQuestion ( $question )
{
global $DB ;
$this -> question = $question ;
$req = $DB -> prepare ( " UPDATE `questions` SET `question` = ? WHERE `id` = ?; " );
$req -> execute ([ $question , $this -> id ]);
}
2019-09-21 11:37:48 +00:00
public function getAttachedFile ()
{
return $this -> attached_file ;
}
2019-09-21 12:31:31 +00:00
public function setAttachedFile ( $attached_file )
{
global $DB ;
$this -> attached_file = $attached_file ;
$req = $DB -> prepare ( " UPDATE `questions` SET `attached_file` = ? WHERE `id` = ?; " );
$req -> execute ([ $attached_file , $this -> id ]);
}
2019-09-20 12:57:06 +00:00
}