19 declare(strict_types=1);
74 foreach ($sub_object_ids as $sub_object_id) {
75 $ids[$sub_object_id->subtype()][$sub_object_id->objID()][] = [
76 'obj_id' => $sub_object_id->objID(),
77 'sub_id' => $sub_object_id->subID()
82 foreach ($ids as $sub_type =>
$id) {
84 foreach (
$id as $obj_id => $records) {
99 foreach ($defs as $def) {
101 foreach ($values as $value) {
102 $obj_id = $value[
'obj_id'];
103 $sub_id = $value[
'sub_id'];
104 $presentation = $value[
'md_' . $def->getFieldId() .
'_presentation'] ??
null;
105 if (!$presentation) {
108 $data_array[$sub_type][$obj_id][$sub_id][$key] = $this->
initData($def, $presentation);
114 return new Data($data_array);
120 foreach ($sub_types as $sub_type) {
121 foreach ($this->
getRecordIds($sub_type) as $record_id) {
124 foreach ($defs as $def) {
126 $this->columns[$key] = $this->
initColumn($translations, $def);
136 $f = $this->ui_factory->table()->column();
141 case \ilAdvancedMDFieldDefinition::TYPE_INTEGER:
142 $column =
$f->number($title)
143 ->withUnit($adt_def->getSuffix());
146 case \ilAdvancedMDFieldDefinition::TYPE_FLOAT:
147 $column =
$f->number($title)
148 ->withDecimals($adt_def->getDecimals())
149 ->withUnit($adt_def->getSuffix());
152 case \ilAdvancedMDFieldDefinition::TYPE_DATE:
155 $this->
user->getDateFormat()
159 case \ilAdvancedMDFieldDefinition::TYPE_DATETIME:
161 $format = $this->data_factory->dateFormat()->withTime12($this->
user->getDateFormat());
163 $format = $this->data_factory->dateFormat()->withTime24($this->
user->getDateFormat());
165 $column =
$f->date($title, $format);
168 case \ilAdvancedMDFieldDefinition::TYPE_INTERNAL_LINK:
169 case \ilAdvancedMDFieldDefinition::TYPE_EXTERNAL_LINK:
170 $column =
$f->link($title);
173 case \ilAdvancedMDFieldDefinition::TYPE_SELECT:
174 case \ilAdvancedMDFieldDefinition::TYPE_TEXT:
175 case \ilAdvancedMDFieldDefinition::TYPE_LOCATION:
176 case \ilAdvancedMDFieldDefinition::TYPE_SELECT_MULTI:
177 case \ilAdvancedMDFieldDefinition::TYPE_ADDRESS:
179 $column =
$f->text($title);
189 $adt = $presentation->
getADT();
192 case \ilAdvancedMDFieldDefinition::TYPE_INTEGER:
193 case \ilAdvancedMDFieldDefinition::TYPE_FLOAT:
194 $val = $adt->getNumber();
197 case \ilAdvancedMDFieldDefinition::TYPE_DATE:
198 case \ilAdvancedMDFieldDefinition::TYPE_DATETIME:
200 $val = (new \DateTimeImmutable())->setTimestamp(
$timestamp);
203 case \ilAdvancedMDFieldDefinition::TYPE_INTERNAL_LINK:
204 $target_ref_id = $adt->getTargetRefId();
208 $uri = $this->static_url->builder()->build(
210 $this->data_factory->refId($target_ref_id)
212 $val = $this->ui_factory->link()->standard($target_title, (
string) $uri);
215 case \ilAdvancedMDFieldDefinition::TYPE_EXTERNAL_LINK:
216 $title = $adt->getTitle();
217 $url = $adt->getUrl();
218 $val = $this->ui_factory->link()->standard($title,
$url);
221 case \ilAdvancedMDFieldDefinition::TYPE_SELECT:
222 case \ilAdvancedMDFieldDefinition::TYPE_TEXT:
223 case \ilAdvancedMDFieldDefinition::TYPE_LOCATION:
224 case \ilAdvancedMDFieldDefinition::TYPE_SELECT_MULTI:
225 case \ilAdvancedMDFieldDefinition::TYPE_ADDRESS:
227 $val = $presentation->
getList();
245 $ids[] = $record_obj->getRecordId();
Class ilAdvancedMDFieldTranslations.
getADTDefinition()
Get ADT definition instance.
AMD field abstract base class.
static _getSelectedRecordsByObject(string $a_obj_type, int $a_id, string $a_sub_type="", bool $is_ref_id=true)
static getInstancesByRecordId( $a_record_id, $a_only_searchable=false, string $language='')
Get definitions by record id.
static _lookupObjId(int $ref_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static queryForRecords(int $adv_rec_obj_ref_id, string $adv_rec_obj_type, string $adv_rec_obj_subtype, array $a_obj_id, string $a_subtype, array $a_records, string $a_obj_id_key, string $a_obj_subid_key, ?array $a_amet_filter=null)
static _lookupTitle(int $obj_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getTitleForLanguage(int $field_id, string $language)
static getInstanceByRecordId(int $record_id)
foreach($mandatory_scripts as $file) $timestamp
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
ADT presentation bridge base class.
static _lookupType(int $id, bool $reference=false)
getFieldId()
Get field_id.