ILIAS  trunk Revision v11.0_alpha-1811-gd2d5443e411
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\UI\Component\Legacy\Content\ItemSetManager Class Reference

Manages container subitems set. More...

+ Collaboration diagram for ILIAS\UI\Component\Legacy\Content\ItemSetManager:

Public Member Functions

 __construct (InternalDomainService $domain, int $mode, int $parent_ref_id, ?\ilContainerUserFilter $user_filter=null, int $single_ref_id=0, bool $admin_mode=false)
 
 setHiddenFilesFound (bool $a_hiddenfilesfound)
 
 getHiddenFilesFound ()
 
 hasItems ()
 
 getRefIdsOfType (string $type)
 
 getAllRefIds ()
 
 getRawDataByRefId (int $ref_id)
 
 isSideBlockItem (int $ref_id)
 
 isClassificationFilterActive ()
 

Data Fields

const FLAT = 0
 
const TREE = 1
 
const SINGLE = 2
 

Protected Member Functions

 init ()
 
 applySorting ()
 
 groupItems ()
 Internally group all items. More...
 
 sortSessions ()
 
 getAdditionalSubItemInformation ()
 
 addAdditionalSubItemInformationToObject (array &$object)
 
 applyUserFilter ()
 Apply container user filter on objects. More...
 
 getCompleteDescriptions ()
 From ilContainer. More...
 
 applyClassificationFilter ()
 From ilContainer. More...
 
 preloadAdvancedMDValues ()
 

Protected Attributes

bool $admin_mode
 
bool $hiddenfilesfound = false
 
string $parent_type
 
int $parent_obj_id
 
int $parent_ref_id = 0
 
int $single_ref_id = 0
 
InternalDomainService $domain
 
array $raw = []
 
array $raw_by_type = []
 
array $rendered = []
 
int $mode = self::FLAT
 
ilContainerUserFilter $user_filter = null
 
bool $initialised = false
 

Detailed Description

Manages container subitems set.

Author
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

Definition at line 29 of file class.ItemSetManager.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::__construct ( InternalDomainService  $domain,
int  $mode,
int  $parent_ref_id,
?\ilContainerUserFilter  $user_filter = null,
int  $single_ref_id = 0,
bool  $admin_mode = false 
)
Parameters
int$modeself::TREE|self::FLAT|self::SINGLE

Definition at line 53 of file class.ItemSetManager.php.

References ILIAS\UI\Component\Legacy\Content\ItemSetManager\$admin_mode, ILIAS\UI\Component\Legacy\Content\ItemSetManager\$domain, ILIAS\UI\Component\Legacy\Content\ItemSetManager\$mode, ILIAS\UI\Component\Legacy\Content\ItemSetManager\$parent_ref_id, ILIAS\UI\Component\Legacy\Content\ItemSetManager\$single_ref_id, ILIAS\UI\Component\Legacy\Content\ItemSetManager\$user_filter, ilObject\_lookupObjId(), ilObject\_lookupType(), and ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

60  {
61  $this->parent_ref_id = $parent_ref_id;
62  $this->parent_obj_id = \ilObject::_lookupObjId($this->parent_ref_id);
63  $this->parent_type = \ilObject::_lookupType($this->parent_obj_id);
64  $this->user_filter = $user_filter;
65 
66  $this->single_ref_id = $single_ref_id;
67  $this->domain = $domain;
68  $this->mode = $mode; // might be refactored as subclasses
69  $this->admin_mode = $admin_mode;
70  $this->init();
71  }
static _lookupObjId(int $ref_id)
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:

Member Function Documentation

◆ addAdditionalSubItemInformationToObject()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::addAdditionalSubItemInformationToObject ( array &  $object)
protected

Definition at line 221 of file class.ItemSetManager.php.

References ilObjectActivation\addAdditionalSubItemInformation().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\getAdditionalSubItemInformation().

221  : void
222  {
224  }
static addAdditionalSubItemInformation(array &$item)
Parse item data for list entries.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ applyClassificationFilter()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::applyClassificationFilter ( )
protected

From ilContainer.

Todo:
remove there

Definition at line 321 of file class.ItemSetManager.php.

References $classification, $id, ilClassificationProvider\getValidProviders(), and ILIAS\Repository\raw().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

321  : void
322  {
323  // apply container classification filters
324  $classification = $this->domain->classification($this->parent_ref_id);
326  $this->parent_ref_id,
327  $this->parent_obj_id,
328  $this->parent_type
329  ) as $class_provider) {
330  $id = get_class($class_provider);
331  $current = $classification->getSelectionOfProvider($id);
332  if ($current) {
333  $class_provider->setSelection($current);
334  $filtered = $class_provider->getFilteredObjects();
335  $this->raw = array_filter($this->raw, static function ($i) use ($filtered) {
336  return (is_array($filtered) && in_array($i["obj_id"], $filtered));
337  });
338  }
339  }
340  }
$classification
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
static getValidProviders(int $a_parent_ref_id, int $a_parent_obj_id, string $a_parent_obj_type)
Get all valid providers (for parent container)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ applySorting()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::applySorting ( )
protected

Definition at line 150 of file class.ItemSetManager.php.

References ilContainerSorting\_getInstance(), and ILIAS\Repository\raw().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

150  : void
151  {
152  $sort = \ilContainerSorting::_getInstance($this->parent_obj_id);
153  $all = $sort->sortItems(["all" => $this->raw]);
154  $this->raw = $all["all"];
155  //$this->raw_by_type = $sort->sortItems($this->raw_by_type);
156  }
static _getInstance(int $a_obj_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ applyUserFilter()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::applyUserFilter ( )
protected

Apply container user filter on objects.

Exceptions

Definition at line 252 of file class.ItemSetManager.php.

References ilContainer\_lookupContainerSetting(), and ILIAS\Repository\raw().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

252  : void
253  {
254  if (is_null($this->user_filter)) {
255  return;
256  }
257  $filter = $this->domain->content()->filter(
258  $this->raw,
259  $this->user_filter,
261  $this->parent_obj_id,
262  "filter_show_empty",
263  "0"
264  )
265  );
266  $this->raw = $filter->apply();
267  }
static _lookupContainerSetting(int $a_id, string $a_keyword, ?string $a_default_value=null)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAdditionalSubItemInformation()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::getAdditionalSubItemInformation ( )
protected

Definition at line 214 of file class.ItemSetManager.php.

References ILIAS\UI\Component\Legacy\Content\ItemSetManager\addAdditionalSubItemInformationToObject(), and ILIAS\Repository\raw().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

214  : void
215  {
216  foreach ($this->raw as $key => $object) {
217  $this->addAdditionalSubItemInformationToObject($this->raw[$key]);
218  }
219  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAllRefIds()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::getAllRefIds ( )

Definition at line 130 of file class.ItemSetManager.php.

References ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

130  : array
131  {
132  $this->init();
133  return array_keys($this->raw_by_type["_all"]);
134  }
+ Here is the call graph for this function:

◆ getCompleteDescriptions()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::getCompleteDescriptions ( )
protected

From ilContainer.

Todo:
remove there

Definition at line 272 of file class.ItemSetManager.php.

References $ilSetting, ilObject\DESC_LENGTH, ilObject\getLongDescriptions(), ILIAS\Repository\int(), ILIAS\Repository\raw(), and ilStr\shortenTextExtended().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

272  : void
273  {
274  $ilSetting = $this->domain->settings();
275  $ilObjDataCache = $this->domain->objectDataCache();
276 
277  // using long descriptions?
278  $short_desc = $ilSetting->get("rep_shorten_description");
279  $short_desc_max_length = (int) $ilSetting->get("rep_shorten_description_length");
280  if (!$short_desc || $short_desc_max_length != \ilObject::DESC_LENGTH) {
281  // using (part of) shortened description
282  if ($short_desc && $short_desc_max_length && $short_desc_max_length < \ilObject::DESC_LENGTH) {
283  foreach ($this->raw as $key => $object) {
284  $this->raw[$key]["description"] = \ilStr::shortenTextExtended(
285  $object["description"],
286  $short_desc_max_length,
287  true
288  );
289  }
290  }
291  // using (part of) long description
292  else {
293  $obj_ids = array();
294  foreach ($this->raw as $key => $object) {
295  $obj_ids[] = $object["obj_id"];
296  }
297  if (count($obj_ids) > 0) {
298  $long_desc = \ilObject::getLongDescriptions($obj_ids);
299  foreach ($this->raw as $key => $object) {
300  // #12166 - keep translation, ignore long description
301  if ($ilObjDataCache->isTranslatedDescription((int) $object["obj_id"])) {
302  $long_desc[$object["obj_id"]] = $object["description"];
303  }
304  if ($short_desc && $short_desc_max_length) {
305  $long_desc[$object["obj_id"]] = \ilStr::shortenTextExtended(
306  (string) ($long_desc[$object["obj_id"]] ?? ""),
307  $short_desc_max_length,
308  true
309  );
310  }
311  $this->raw[$key]["description"] = $long_desc[$object["obj_id"]] ?? '';
312  }
313  }
314  }
315  }
316  }
const DESC_LENGTH
static getLongDescriptions(array $obj_ids)
global $ilSetting
Definition: privfeed.php:31
static shortenTextExtended(string $a_str, int $a_len, bool $a_dots=false, bool $a_next_blank=false, bool $a_keep_extension=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getHiddenFilesFound()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::getHiddenFilesFound ( )

◆ getRawDataByRefId()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::getRawDataByRefId ( int  $ref_id)

Definition at line 136 of file class.ItemSetManager.php.

References $ref_id, ILIAS\UI\Component\Legacy\Content\ItemSetManager\init(), and null.

136  : ?array
137  {
138  $this->init();
139  return $this->raw_by_type["_all"][$ref_id] ?? null;
140  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$ref_id
Definition: ltiauth.php:65
+ Here is the call graph for this function:

◆ getRefIdsOfType()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::getRefIdsOfType ( string  $type)

Definition at line 119 of file class.ItemSetManager.php.

References ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

119  : array
120  {
121  $this->init();
122  if (isset($this->raw_by_type[$type])) {
123  return array_map(static function ($item) {
124  return (int) $item["child"];
125  }, $this->raw_by_type[$type]);
126  }
127  return [];
128  }
+ Here is the call graph for this function:

◆ groupItems()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::groupItems ( )
protected

Internally group all items.

Definition at line 161 of file class.ItemSetManager.php.

References ilObjFileAccess\_isFileHidden(), ILIAS\Repository\int(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\isClassificationFilterActive(), ILIAS\Repository\raw(), and ILIAS\UI\Component\Legacy\Content\ItemSetManager\setHiddenFilesFound().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

161  : void
162  {
163  $obj_definition = $this->domain->objectDefinition();
164  $classification_filter_active = $this->isClassificationFilterActive();
165  $this->raw_by_type["_all"] = [];
166  foreach ($this->raw as $key => $object) {
167 
168  // hide object types in devmode
169  if ($object["type"] === "adm" || $object["type"] === "rolf" ||
170  $obj_definition->getDevMode($object["type"])) {
171  continue;
172  }
173 
174  // remove inactive plugins
175  if ($obj_definition->isInactivePlugin($object["type"])) {
176  continue;
177  }
178 
179  // BEGIN WebDAV: Don't display hidden Files, Folders and Categories
180  if (in_array($object['type'], array('file','fold','cat'))) {
181  if (\ilObjFileAccess::_isFileHidden($object['title'])) {
182  $this->setHiddenFilesFound(true);
183  if (!$this->admin_mode) {
184  continue;
185  }
186  }
187  }
188  // END WebDAV: Don't display hidden Files, Folders and Categories
189 
190  // group object type groups together (e.g. learning resources)
191  $type = $obj_definition->getGroupOfObj($object["type"]);
192  if ($type == "") {
193  $type = $object["type"];
194  }
195 
196  $new_key = (int) $object["child"];
197  $this->rendered[$new_key] = false;
198  $this->raw_by_type[$type][$new_key] = $object;
199 
200  $this->raw_by_type["_all"][$new_key] = $object;
201  if ($object["type"] !== "sess") {
202  $this->raw_by_type["_non_sess"][$new_key] = $object;
203  }
204  }
205  }
static _isFileHidden(string $a_file_name)
Returns true, if a file with the specified name, is usually hidden from the user. ...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hasItems()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::hasItems ( )
Todo:
from ilContainer, should be removed there

Definition at line 113 of file class.ItemSetManager.php.

References ILIAS\UI\Component\Legacy\Content\ItemSetManager\init(), and ILIAS\Repository\raw().

113  : bool
114  {
115  $this->init();
116  return count($this->raw) > 0;
117  }
+ Here is the call graph for this function:

◆ init()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::init ( )
protected
Todo:
from ilContainer, should be removed there

Definition at line 86 of file class.ItemSetManager.php.

References ILIAS\UI\Component\Legacy\Content\ItemSetManager\applyClassificationFilter(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\applySorting(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\applyUserFilter(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\getAdditionalSubItemInformation(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\getCompleteDescriptions(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\groupItems(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\preloadAdvancedMDValues(), ILIAS\Repository\raw(), and ILIAS\UI\Component\Legacy\Content\ItemSetManager\sortSessions().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\__construct(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\getAllRefIds(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\getRawDataByRefId(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\getRefIdsOfType(), ILIAS\UI\Component\Legacy\Content\ItemSetManager\hasItems(), and ILIAS\UI\Component\Legacy\Content\ItemSetManager\isSideBlockItem().

86  : void
87  {
88  if ($this->initialised) {
89  return;
90  }
91  $tree = $this->domain->repositoryTree();
92  if ($this->mode === self::TREE) {
93  $this->raw = $tree->getSubTree($tree->getNodeData($this->parent_ref_id));
94  } elseif ($this->mode === self::FLAT) {
95  $this->raw = $tree->getChilds($this->parent_ref_id, "title");
96  } else {
97  $this->raw[] = $tree->getNodeData($this->single_ref_id);
98  }
99  $this->applyUserFilter();
100  $this->getCompleteDescriptions();
101  $this->applyClassificationFilter();
103  $this->applySorting();
104  $this->groupItems();
105  $this->sortSessions();
106  $this->preloadAdvancedMDValues();
107  $this->initialised = true;
108  }
applyUserFilter()
Apply container user filter on objects.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isClassificationFilterActive()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::isClassificationFilterActive ( )
Todo:
from ilContainer, remove there

Definition at line 229 of file class.ItemSetManager.php.

References $classification, $id, and ilClassificationProvider\getValidProviders().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\groupItems().

229  : bool
230  {
231  // apply container classification filters
232  $classification = $this->domain->classification($this->parent_ref_id);
234  $this->parent_ref_id,
235  $this->parent_obj_id,
236  $this->parent_type
237  ) as $class_provider) {
238  $id = get_class($class_provider);
239  $current = $classification->getSelectionOfProvider($id);
240  if ($current) {
241  return true;
242  }
243  }
244  return false;
245  }
$classification
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
static getValidProviders(int $a_parent_ref_id, int $a_parent_obj_id, string $a_parent_obj_type)
Get all valid providers (for parent container)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isSideBlockItem()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::isSideBlockItem ( int  $ref_id)

Definition at line 142 of file class.ItemSetManager.php.

References $ref_id, and ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

142  : bool
143  {
144  $this->init();
145  $type = $this->raw_by_type["_all"][$ref_id]["type"] ?? "";
146  $obj_definition = $this->domain->objectDefinition();
147  return $obj_definition->isSideBlock($type);
148  }
$ref_id
Definition: ltiauth.php:65
+ Here is the call graph for this function:

◆ preloadAdvancedMDValues()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::preloadAdvancedMDValues ( )
protected

Definition at line 342 of file class.ItemSetManager.php.

References ilAdvancedMDValues\preloadByObjIds().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

342  : void
343  {
344  $obj_ids = [];
345  foreach ($this->raw_by_type["_all"] as $object) {
346  $obj_ids[] = $object["obj_id"];
347  }
349  }
static preloadByObjIds(array $a_obj_ids)
Preload list gui data.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setHiddenFilesFound()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::setHiddenFilesFound ( bool  $a_hiddenfilesfound)

Definition at line 73 of file class.ItemSetManager.php.

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\groupItems().

73  : void
74  {
75  $this->hiddenfilesfound = $a_hiddenfilesfound;
76  }
+ Here is the caller graph for this function:

◆ sortSessions()

ILIAS\UI\Component\Legacy\Content\ItemSetManager::sortSessions ( )
protected

Definition at line 207 of file class.ItemSetManager.php.

References ilArrayUtil\sortArray().

Referenced by ILIAS\UI\Component\Legacy\Content\ItemSetManager\init().

207  : void
208  {
209  if (isset($this->raw_by_type["sess"]) && count($this->raw_by_type["sess"]) > 0) {
210  $this->raw_by_type["sess"] = \ilArrayUtil::sortArray($this->raw_by_type["sess"], 'start', 'ASC', true, true);
211  }
212  }
static sortArray(array $array, string $a_array_sortby_key, string $a_array_sortorder="asc", bool $a_numeric=false, bool $a_keep_keys=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $admin_mode

bool ILIAS\UI\Component\Legacy\Content\ItemSetManager::$admin_mode
protected

◆ $domain

InternalDomainService ILIAS\UI\Component\Legacy\Content\ItemSetManager::$domain
protected

◆ $hiddenfilesfound

bool ILIAS\UI\Component\Legacy\Content\ItemSetManager::$hiddenfilesfound = false
protected

◆ $initialised

bool ILIAS\UI\Component\Legacy\Content\ItemSetManager::$initialised = false
protected

Definition at line 48 of file class.ItemSetManager.php.

◆ $mode

int ILIAS\UI\Component\Legacy\Content\ItemSetManager::$mode = self::FLAT
protected

◆ $parent_obj_id

int ILIAS\UI\Component\Legacy\Content\ItemSetManager::$parent_obj_id
protected

Definition at line 37 of file class.ItemSetManager.php.

◆ $parent_ref_id

int ILIAS\UI\Component\Legacy\Content\ItemSetManager::$parent_ref_id = 0
protected

◆ $parent_type

string ILIAS\UI\Component\Legacy\Content\ItemSetManager::$parent_type
protected

Definition at line 36 of file class.ItemSetManager.php.

◆ $raw

array ILIAS\UI\Component\Legacy\Content\ItemSetManager::$raw = []
protected

Definition at line 42 of file class.ItemSetManager.php.

◆ $raw_by_type

array ILIAS\UI\Component\Legacy\Content\ItemSetManager::$raw_by_type = []
protected

Definition at line 43 of file class.ItemSetManager.php.

◆ $rendered

array ILIAS\UI\Component\Legacy\Content\ItemSetManager::$rendered = []
protected

Definition at line 45 of file class.ItemSetManager.php.

◆ $single_ref_id

int ILIAS\UI\Component\Legacy\Content\ItemSetManager::$single_ref_id = 0
protected

◆ $user_filter

ilContainerUserFilter ILIAS\UI\Component\Legacy\Content\ItemSetManager::$user_filter = null
protected

◆ FLAT

const ILIAS\UI\Component\Legacy\Content\ItemSetManager::FLAT = 0

◆ SINGLE

const ILIAS\UI\Component\Legacy\Content\ItemSetManager::SINGLE = 2

◆ TREE

const ILIAS\UI\Component\Legacy\Content\ItemSetManager::TREE = 1

The documentation for this class was generated from the following file: