New attributes and features in Testtool Administration

- Add new Gebiet
- Edit Ablauf
- Bezeichnung mehrsprachig für Gebiete
- Aktiv Attribute für Fragen und Vorschläge (Noch nicht in Testtool
selbst implementiert)
This commit is contained in:
kindlm
2016-09-07 18:22:56 +02:00
parent 89744f36f5
commit 839cdf3998
7 changed files with 1568 additions and 44 deletions
+48 -5
View File
@@ -36,6 +36,7 @@ class frage extends basis_db
public $demo;
public $level;
public $kategorie_kurzbz;
public $aktiv;
public $sprache;
public $audio;
@@ -96,6 +97,7 @@ class frage extends basis_db
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->level = $row->level;
$this->aktiv = $row->aktiv;
return true;
}
@@ -137,7 +139,7 @@ class frage extends basis_db
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
{
$qry = 'BEGIN;INSERT INTO testtool.tbl_frage (kategorie_kurzbz, gebiet_id, level, nummer, demo,
insertamum, insertvon, updateamum, updatevon) VALUES('.
insertamum, insertvon, aktiv, updateamum, updatevon) VALUES('.
$this->db_add_param($this->kategorie_kurzbz).','.
$this->db_add_param($this->gebiet_id, FHC_INTEGER).','.
$this->db_add_param($this->level).','.
@@ -145,6 +147,7 @@ class frage extends basis_db
$this->db_add_param($this->demo, FHC_BOOLEAN).','.
$this->db_add_param($this->insertamum).','.
$this->db_add_param($this->insertvon).','.
$this->db_add_param($this->aktiv, FHC_BOOLEAN).','.
'null,null);';
}
else
@@ -156,7 +159,8 @@ class frage extends basis_db
' nummer='.$this->db_add_param($this->nummer).','.
' demo='.$this->db_add_param($this->demo, FHC_BOOLEAN).','.
' updateamum='.$this->db_add_param($this->updateamum).','.
' updatevon='.$this->db_add_param($this->updatevon).
' updatevon='.$this->db_add_param($this->updatevon).','.
' aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).
" WHERE frage_id=".$this->db_add_param($this->frage_id, FHC_INTEGER, false).";";
}
@@ -265,6 +269,7 @@ class frage extends basis_db
$obj->level = $row->level;
$obj->nummer = $row->nummer;
$obj->demo = $this->db_parse_bool($row->demo);
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$this->result[] = $obj;
}
@@ -301,6 +306,7 @@ class frage extends basis_db
$obj->level = $row->level;
$obj->nummer = $row->nummer;
$obj->demo = $this->db_parse_bool($row->demo);
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$this->result[] = $obj;
}
@@ -346,9 +352,9 @@ class frage extends basis_db
if(!is_null($frage_id))
$qry.=" AND tbl_pruefling_frage.nummer>(SELECT nummer FROM testtool.tbl_pruefling_frage WHERE pruefling_id=".$this->db_add_param($pruefling_id, FHC_INTEGER)." AND frage_id=".$this->db_add_param($frage_id, FHC_INTEGER)." LIMIT 1)";
elseif(is_null($frage_id) && $levelgebiet)
$qry.=" AND tbl_pruefling_frage.endtime is null ";
$qry.=" AND tbl_pruefling_frage.endtime is null";
$qry.="ORDER BY tbl_pruefling_frage.nummer ASC LIMIT 1";
$qry.=" ORDER BY tbl_pruefling_frage.nummer ASC LIMIT 1";
}
if($this->db_query($qry))
@@ -367,12 +373,16 @@ class frage extends basis_db
*
* @param $frage_id
* @param $sprache
* @param $aktiv Default: null
* @return true wenn ok, false im Fehlerfall
*/
public function getFrageSprache($frage_id, $sprache)
public function getFrageSprache($frage_id, $sprache, $aktiv=null)
{
$qry = "SELECT * FROM testtool.tbl_frage_sprache JOIN testtool.tbl_frage USING(frage_id)
WHERE frage_id=".$this->db_add_param($frage_id, FHC_INTEGER)." AND sprache=".$this->db_add_param($sprache);
if (!is_null($aktiv))
$qry .= " AND aktiv=".$aktiv;
if($this->db_query($qry))
{
@@ -819,5 +829,38 @@ class frage extends basis_db
return false;
}
}
/**
* Gibt die Nummer der naechsten Frage zurueck (nicht fuer den test sondern fuer die testtool-administrationsseite)
*
* @param $frage_nummer Nummer der aktuellen Frage
* @param $gebiet_id Gebiet der Fragen
* @param $aktiv true wenn nur aktiv, false wenn nur inaktiv, null wenn beides
*/
public function getNextFrageNummer($frage_nummer, $gebiet_id, $aktiv=null)
{
$erg = '';
$qry = "SELECT nummer FROM testtool.tbl_frage
WHERE gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER)."
AND nummer>".$this->db_add_param($frage_nummer, FHC_INTEGER);
if (!is_null($aktiv) && $aktiv)
$qry .= " AND aktiv";
if (!is_null($aktiv) && !$aktiv)
$qry .= " AND NOT aktiv";
$qry .= " ORDER BY nummer ASC LIMIT 1"; //Es wird immer nur ein Maximum geben, deswegen kein max()
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$erg .= $row->nummer;
}
return $erg;
} else {
return false;
}
}
}
?>