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)