19 declare(strict_types=1);
40 private \ilDBInterface
$db;
47 $this->db = $DIC->database();
48 $this->irss = $DIC->resourceStorage();
51 public function createIcon(
string $a_rid,
bool $a_active,
bool $a_is_default_icon, array $a_suffixes):
Icon 53 $icon =
new CustomIcon($a_rid, $a_active, $a_is_default_icon, $a_suffixes);
54 foreach ($icon->getSuffixes() as $suffix) {
56 self::SUFFIX_TABLE_NAME,
58 self::ICON_RESOURCE_IDENTIFICATION => [
'text', $icon->getRid()],
59 self::SUFFIX => [
'text', $suffix],
64 self::ICON_TABLE_NAME,
66 self::ICON_RESOURCE_IDENTIFICATION => [
'text', $icon->getRid()],
67 self::ICON_ACTIVE => [
'integer', $icon->isActive()],
68 self::IS_DEFAULT_ICON => [
'integer', $icon->isDefaultIcon()]
78 $query =
"SELECT i." . self::ICON_RESOURCE_IDENTIFICATION
79 .
", i." . self::ICON_ACTIVE
80 .
", i." . self::IS_DEFAULT_ICON
81 .
", GROUP_CONCAT(s." . self::SUFFIX .
") AS " . self::SUFFIXES
82 .
" FROM " . self::ICON_TABLE_NAME .
" AS i" 83 .
" JOIN " . self::SUFFIX_TABLE_NAME .
" AS s" 84 .
" ON " .
"i." . self::ICON_RESOURCE_IDENTIFICATION .
" = " .
"s." . self::ICON_RESOURCE_IDENTIFICATION;
87 $query .=
" WHERE true ";
88 if (($filter[
'active'] ?? null) !== null && $filter[
'active'] !==
'') {
89 $query .=
" AND i.active = " . $this->db->quote($filter[
'active'],
'integer');
92 if (($filter[
'suffixes'] ?? null) !== null && $filter[
'suffixes'] !==
'') {
93 $query .=
" AND s.suffix LIKE " . $this->db->quote(
'%' . $filter[
'suffixes'] .
'%',
'text');
96 if (($filter[
'is_default_icon'] ?? null) !== null && $filter[
'is_default_icon'] !==
'') {
97 $query .=
" AND i.is_default_icon = " . $this->db->quote($filter[
'is_default_icon'],
'integer');
101 $query .=
" GROUP BY i." . self::ICON_RESOURCE_IDENTIFICATION;
103 $result = $this->db->query($query);
105 while (
$data = $this->db->fetchAssoc($result)) {
107 $rid =
$data[self::ICON_RESOURCE_IDENTIFICATION],
108 (
bool)
$data[self::ICON_ACTIVE],
109 (
bool)
$data[self::IS_DEFAULT_ICON],
112 $icons[$rid] = $icon;
125 $query =
"SELECT i." . self::ICON_RESOURCE_IDENTIFICATION
126 .
", i." . self::ICON_ACTIVE
127 .
", i." . self::IS_DEFAULT_ICON
128 .
", GROUP_CONCAT(s." . self::SUFFIX .
") AS " . self::SUFFIXES
129 .
" FROM " . self::ICON_TABLE_NAME .
" AS i" 130 .
" INNER JOIN " . self::SUFFIX_TABLE_NAME .
" AS s" 131 .
" ON " .
"i." . self::ICON_RESOURCE_IDENTIFICATION .
" = " .
"s." . self::ICON_RESOURCE_IDENTIFICATION
132 .
" GROUP BY i." . self::ICON_RESOURCE_IDENTIFICATION;
134 $result = $this->db->query($query);
136 while (
$data = $this->db->fetchAssoc($result)) {
138 $rid =
$data[self::ICON_RESOURCE_IDENTIFICATION],
139 (
bool)
$data[self::ICON_ACTIVE],
140 (
bool)
$data[self::IS_DEFAULT_ICON],
143 $icons[$rid] = $icon;
153 $query =
"SELECT i." . self::ICON_RESOURCE_IDENTIFICATION
154 .
", i." . self::ICON_ACTIVE
155 .
", i." . self::IS_DEFAULT_ICON
156 .
", GROUP_CONCAT(s." . self::SUFFIX .
") AS " . self::SUFFIXES
157 .
" FROM " . self::ICON_TABLE_NAME .
" AS i" 158 .
" INNER JOIN " . self::SUFFIX_TABLE_NAME .
" AS s" 159 .
" ON " .
"i." . self::ICON_RESOURCE_IDENTIFICATION .
" = " .
"s." . self::ICON_RESOURCE_IDENTIFICATION
160 .
" WHERE i." . self::ICON_RESOURCE_IDENTIFICATION .
" = %s" 161 .
" GROUP BY i." . self::ICON_RESOURCE_IDENTIFICATION;
163 $result = $this->db->queryF(
169 while (
$data = $this->db->fetchAssoc($result)) {
171 $rid =
$data[self::ICON_RESOURCE_IDENTIFICATION],
172 (
bool)
$data[self::ICON_ACTIVE],
173 (
bool)
$data[self::IS_DEFAULT_ICON],
189 $query =
"SELECT s." . self::ICON_RESOURCE_IDENTIFICATION .
" FROM " . self::SUFFIX_TABLE_NAME .
" AS s" 190 .
" INNER JOIN " . self::ICON_TABLE_NAME .
" AS i" 191 .
" ON s." . self::ICON_RESOURCE_IDENTIFICATION .
" = i." . self::ICON_RESOURCE_IDENTIFICATION
192 .
" WHERE s." . self::SUFFIX .
" = %s AND i." . self::ICON_ACTIVE .
" = %s";
193 $result = $this->db->queryF(
198 while (
$data = $this->db->fetchAssoc($result)) {
199 $rid =
$data[self::ICON_RESOURCE_IDENTIFICATION];
211 if ($suffix !==
"") {
214 $resource_identification = $this->irss->manage()->find($icon->getRid());
217 return $this->irss->consume()->src($resource_identification)->getSrc(
229 public function updateIcon(
string $a_rid,
bool $a_active,
bool $a_is_default_icon, array $a_suffixes):
Icon 231 $icon =
new CustomIcon($a_rid, $a_active, $a_is_default_icon, $a_suffixes);
233 $this->db->manipulateF(
234 "DELETE FROM " . self::SUFFIX_TABLE_NAME .
" WHERE " . self::ICON_RESOURCE_IDENTIFICATION .
" = %s",
238 foreach ($icon->getSuffixes() as $suffix) {
240 self::SUFFIX_TABLE_NAME,
242 self::ICON_RESOURCE_IDENTIFICATION => [
'text', $icon->getRid()],
243 self::SUFFIX => [
'text', $suffix],
248 self::ICON_TABLE_NAME,
250 self::ICON_ACTIVE => [
'integer', $icon->isActive()],
251 self::IS_DEFAULT_ICON => [
'integer', $icon->isDefaultIcon()]
253 [self::ICON_RESOURCE_IDENTIFICATION => [
'text', $icon->getRid()]]
262 $this->db->manipulateF(
263 "DELETE FROM " . self::SUFFIX_TABLE_NAME .
" WHERE " . self::ICON_RESOURCE_IDENTIFICATION .
" = %s",
267 $this->db->manipulateF(
268 "DELETE FROM " . self::ICON_TABLE_NAME .
" WHERE " . self::ICON_RESOURCE_IDENTIFICATION .
" = %s",
deleteIconByRid(string $a_rid)
getIconFilePathBySuffix(string $suffix)
createIcon(string $a_rid, bool $a_active, bool $a_is_default_icon, array $a_suffixes)
updateIcon(string $a_rid, bool $a_active, bool $a_is_default_icon, array $a_suffixes)
static getImagePath(string $img, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
const ICON_RESOURCE_IDENTIFICATION
turnSuffixesStringIntoArray(string $a_suffixes)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getIconsForFilter(array $filter)
Class ResourceIdentification.
getIconByRid(string $a_rid)
getActiveIconForSuffix(string $a_suffix)