19 declare(strict_types=0);
42 $this->db = $DIC->database();
44 $this->container_id = $a_container_id;
51 if (isset(self::$instances[$a_container_id])) {
52 return self::$instances[$a_container_id];
54 return self::$instances[$a_container_id] =
new self($a_container_id);
63 $query =
'SELECT container_id FROM loc_tst_assignments ' .
64 'WHERE tst_ref_id = ' .
$ilDB->quote($a_test_ref_id,
'integer');
67 return $row->container_id;
95 $ilDB = $DIC->database();
96 $query =
'DELETE FROM loc_tst_assignments ' .
97 'WHERE container_id = ' .
$ilDB->quote($a_container_id,
'integer');
98 $ilDB->manipulate($query);
108 foreach ($this->assignments as $assignment) {
109 if ($assignment->getAssignmentType() === $a_type) {
110 $by_type[] = $assignment;
126 $tests[] = $this->
getSettings()->getQualifiedTest();
128 foreach ($this->assignments as $assignment) {
129 $tests[] = $assignment->getTestRefId();
138 if (!$this->
getSettings()->hasSeparateInitialTests()) {
144 if (!$this->
getSettings()->hasSeparateQualifiedTests()) {
152 return $assignment->getTestRefId();
159 if (!$this->
getSettings()->hasSeparateInitialTests()) {
160 if ($this->
getSettings()->getInitialTest() == $a_test_ref_id) {
164 if (!$this->
getSettings()->hasSeparateQualifiedTests()) {
165 if ($this->
getSettings()->getQualifiedTest() == $a_test_ref_id) {
175 if ($this->
getSettings()->getInitialTest() == $a_test_ref_id) {
178 } elseif ($this->
getSettings()->worksWithInitialTest()) {
179 foreach ($this->assignments as $assignment) {
185 if (!$this->
getSettings()->hasSeparateQualifiedTests()) {
186 if ($this->
getSettings()->getQualifiedTest() == $a_test_ref_id) {
190 foreach ($this->assignments as $assignment) {
201 foreach ($this->assignments as $assignment) {
203 ($assignment->getObjectiveId() === $a_objective_id) &&
204 ($assignment->getAssignmentType() === $a_type)
214 $query =
'SELECT assignment_id FROM loc_tst_assignments ' .
215 'WHERE container_id = ' . $this->db->quote($this->
getContainerId(),
'integer');
216 $res = $this->db->query($query);
220 $this->assignments[] = $assignment;
227 if ($assignment->getObjectiveId() != $a_objective_id) {
234 'refId' => $assignment->getTestRefId(),
235 'testType' => $assignment->getAssignmentType()
245 $ilDB = $DIC->database();
247 $query =
'SELECT objective_id FROM loc_tst_assignments ' .
248 'WHERE tst_ref_id = ' .
$ilDB->quote($a_test_ref_id,
'integer');
static deleteByContainer(int $a_container_id)
getAssignmentsByType(int $a_type)
Get assignments by type.
toXml(ilXmlWriter $writer, int $a_objective_id)
__construct(int $a_container_id)
isSeparateTest(int $a_test_ref_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
getTypeByTest(int $a_test_ref_id)
static lookupObjectivesForTest(int $a_test_ref_id)
getAssignments()
Get assignments.
static getInstanceByObjId(int $a_obj_id)
getAssignmentByObjective(int $a_objective_id, int $a_type)
static getInstance(int $a_container_id)
const TYPE_TEST_QUALIFIED
static lookupContainerForTest(int $a_test_ref_id)
xmlElement(string $tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
const TYPE_TEST_UNDEFINED
getTestByObjective(int $a_objective_id, int $a_type)