19declare(strict_types=1);
41 $query =
"SELECT * FROM tst_test_defaults WHERE user_fi = %s ";
43 if ($order ===
null) {
46 $query .= $order->join(
'ORDER BY', fn(...$o) => implode(
' ', $o));
49 $query .=
" LIMIT {$range->getLength()} OFFSET {$range->getStart()}";
55 while ($row = $this->db->fetchAssoc($stmt)) {
56 $templates[$row[
'test_defaults_id']] = $this->
factory->createTemplateFromDBRow($row);
63 $stmt = $this->db->queryF(
64 "SELECT COUNT(*) as cnt FROM tst_test_defaults WHERE user_fi = %s",
66 [$this->
user->getId()]
68 return (
int) $this->db->fetchAssoc($stmt)[
'cnt'];
77 $stmt = $this->db->query(
78 "SELECT * FROM tst_test_defaults WHERE {$this->db->in('test_defaults_id', $ids, false, \ilDBConstants::T_INTEGER)}",
82 while ($row = $this->db->fetchAssoc($stmt)) {
83 $templates[$row[
'test_defaults_id']] = $this->
factory->createTemplateFromDBRow($row);
90 $stmt = $this->db->queryF(
91 "SELECT * FROM tst_test_defaults WHERE test_defaults_id = %s",
96 if ($row = $this->db->fetchAssoc($stmt)) {
97 return $this->
factory->createTemplateFromDBRow($row);
109 $new_settings_id = $this->db->nextId(
'tst_test_settings');
119 $this->db->nextId(
'tst_test_defaults'),
120 $this->user->getId(),
124 $timestamp ?? \DateTimeImmutable::createFromFormat(
'U', (
string) time()),
147 $this->db->manipulateF(
148 "DELETE FROM tst_test_defaults WHERE test_defaults_id = %s",
153 $this->db->manipulateF(
154 "DELETE FROM tst_test_settings WHERE id = %s",
156 [$template->getSettingsId()]
165 $stmt = $this->db->queryF(
166 "SELECT mark_id FROM tst_defaults_marks WHERE tst_defaults_marks.defaults_id = %s",
170 return array_column($this->db->fetchAll($stmt),
'mark_id');
178 foreach ($mark_ids as $mark_id) {
180 'tst_defaults_marks',
195 $this->db->manipulate(
"DELETE FROM tst_defaults_marks WHERE {$in_marks} AND defaults_id = {$template_id}");
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
foreach($mandatory_scripts as $file) $timestamp
Both the subject and the direction need to be specified when expressing an order.
A simple class to express a naive range of whole positive numbers.
__construct(private readonly \ilDBInterface $db, private readonly \ilObjUser $user, private readonly SettingsFactory $factory,)
associateMarkSteps(int $template_id, array $mark_ids)
lookupMarkSteps(int $template_id)
create(string $name, string $description, string $author, ?\DateTimeImmutable $timestamp=null)
getForUser(?Range $range=null, ?Order $order=null)
detachMarkSteps(int $template_id, array $mark_ids)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...