19 declare(strict_types=1);
40 $query =
'SELECT * FROM ' . self::TABLE_NAME;
41 $result = $this->db->query($query);
42 while ($row = $this->db->fetchAssoc($result)) {
43 $apps[] = $this->
fromDBRow($row, $action_repository);
53 (
string) $row[
'name'],
54 $action_repository->getActionsForApp($row[
'id']),
55 $row[
'favicon'] ?
new URI($row[
'favicon']) :
null 62 foreach ($apps->
getApps() as $app) {
63 $actions = array_merge($actions, $app->getActions());
64 $this->
store($app, $action_repository);
65 $actions += $app->getActions();
72 $query =
'DELETE FROM ' . self::TABLE_NAME;
73 $this->db->manipulate($query);
74 $action_repository->
clear();
79 if ($app->
getId() === 0) {
81 $query =
'SELECT * FROM ' . self::TABLE_NAME .
' WHERE name = %s';
82 $result = $this->db->queryF($query, [
'text'], [$app->
getName()]);
83 if ($this->db->numRows($result) > 0) {
84 $row = $this->db->fetchAssoc($result);
94 if ($app->
getId() === 0 || $this->db->queryF(
95 'SELECT * FROM ' . self::TABLE_NAME .
' WHERE id = %s',
100 $this->db->nextId(self::TABLE_NAME),
106 $query =
'INSERT INTO ' . self::TABLE_NAME .
' (id, name, favicon) VALUES (%s, %s, %s)';
107 $this->db->manipulateF(
109 [
'integer',
'text',
'text'],
113 $query =
'UPDATE ' . self::TABLE_NAME .
' SET name = %s, favicon = %s WHERE id = %s';
114 $this->db->manipulateF(
116 [
'text',
'text',
'integer'],
122 $action_repository->
store($action, $app);
clearSuperfluous(Action ... $actions)
storeCollection(Apps $apps, ActionRepository $action_repository)
__construct(private \ilDBInterface $db)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
fromDBRow(array $row, ActionRepository $action_repository)
store(App $app, ActionRepository $action_repository)
getApps(ActionRepository $action_repository)
store(Action $action, App $for_app)
clear(ActionRepository $action_repository)