39 if ($with_cleared_cache) {
42 $this->irss = $DIC->resourceStorage();
43 $this->db = $DIC->database();
57 return array_map(
'strtolower', explode(
' ', (
string) $settings->get(
'inline_file_extensions',
'')));
60 public function preloadData(array $ids,
bool $are_ref_ids =
false): void
63 $query =
"SELECT title, rid, file_id, page_count, on_click_mode 65 JOIN object_data ON object_data.obj_id = file_data.file_id 66 JOIN object_reference ON object_reference.obj_id = object_data.obj_id 67 WHERE rid IS NOT NULL AND " . $this->db->in(
74 $query =
"SELECT title, rid, file_id, page_count, on_click_mode FROM file_data JOIN object_data ON object_data.obj_id = file_data.file_id WHERE rid IS NOT NULL AND " . $this->db->in(
82 $res = $this->db->query(
90 while ($row = $this->db->fetchObject(
$res)) {
91 $rids[(
int) $row->file_id] = $row->rid;
92 $page_counts[(
int) $row->file_id] = $row->page_count;
93 $object_titles[(
int) $row->file_id] = $row->title;
96 $this->irss->preload($rids);
98 foreach ($rids as $file_id => $rid) {
99 if ((
$id = $this->irss->manage()->find($rid)) !==
null) {
100 $max = $this->irss->manage()->getResource(
$id)->getCurrentRevision();
103 $object_titles[$file_id] ?? $max->getTitle(),
105 $max->getInformation()->getTitle(),
106 $max->getInformation()->getSuffix(),
107 in_array(strtolower($max->getInformation()->getSuffix()), $this->inline_suffixes,
true),
109 $max->getVersionNumber(),
110 $max->getInformation()->getCreationDate(),
111 in_array(strtolower($max->getInformation()->getMimeType()), [
112 MimeType::APPLICATION__ZIP,
113 MimeType::APPLICATION__X_ZIP_COMPRESSED
115 $max->getInformation()->getMimeType(),
116 new DataSize($max->getInformation()->getSize() ?? 0, DataSize::Byte),
117 $page_counts[$file_id] ===
null ?
null : (
int) $page_counts[$file_id]
120 self::$cache[$file_id] =
$info;
127 if (isset(self::$cache[$object_id])) {
128 return self::$cache[$object_id];
This class provides the data size with additional information to remove the work to calculate the siz...
getByObjectId(int $object_id)
readonly ilDBInterface $db
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const CLICK_MODE_DOWNLOAD
static _lookupObjectId(int $ref_id)
preloadData(array $ids, bool $are_ref_ids=false)
__construct(bool $with_cleared_cache=false)
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins