70 public function __construct($a_mode, $a_obj_type =
'', $a_obj_id =
'', $a_sub_type =
'', $a_sub_id =
'')
76 $this->
user = $DIC->user();
78 $this->mode = $a_mode;
79 $this->obj_type = $a_obj_type;
80 $this->obj_id = $a_obj_id;
81 $this->sub_type = $a_sub_type;
82 $this->sub_id = $a_sub_id;
86 $this->ref_id = end($refs);
98 $this->adv_ref_id = $a_adv_ref_id;
99 $this->adv_type = $a_adv_type;
100 $this->adv_subtype = $a_adv_subtype;
110 if ($this->adv_type == null) {
124 $this->ref_id = $a_ref_id;
147 $this->search_values = $a_values;
172 switch ($this->mode) {
173 case self::MODE_EDITOR:
176 case self::MODE_SEARCH:
179 case self::MODE_INFO:
182 case self::MODE_APP_PRESENTATION:
185 case self::MODE_REC_SELECTION:
188 case self::MODE_FILTER:
191 case self::MODE_TABLE_HEAD:
194 case self::MODE_TABLE_CELLS:
198 die(
'Not implemented yet');
212 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
213 $this->editor_form = array();
216 $record_id = $record_obj->getRecordId();
218 $values =
new ilAdvancedMDValues($record_id, $this->obj_id, $this->sub_type, $this->sub_id);
220 $defs = $values->getDefinitions();
223 if (!
sizeof($defs)) {
231 $adt_group_form->setForm($this->form);
233 $adt_group_form->setTitle($translations->getTitleForLanguage($this->user->getLanguage()));
234 $adt_group_form->setInfo($translations->getDescriptionForLanguage($this->user->getLanguage()));
236 foreach ($defs as $def) {
237 $element = $adt_group_form->getElement($def->getFieldId());
238 $element->setTitle($field_translations->getTitleForLanguage($def->getFieldId(), $this->
user->getLanguage()));
239 $element->setInfo($field_translations->getDescriptionForLanguage($def->getFieldId(), $this->
user->getLanguage()));
242 $def->prepareElementForEditor($element);
244 if ($values->isDisabled($def->getFieldId())) {
245 $element->setDisabled(
true);
249 $adt_group_form->addToForm();
251 $this->editor_form[$record_id] = array(
"values" => $values,
"form" => $adt_group_form);
263 if (!is_array($this->editor_form)) {
269 foreach ($this->editor_form as $item) {
270 $item[
"form"]->importFromPost();
271 if (!$item[
"form"]->validate()) {
288 if (!
sizeof($this->editor_form)) {
294 $this->obj_id = $a_obj_id;
297 $this->sub_id = $a_sub_id;
300 foreach ($this->editor_form as $item) {
301 if ($a_obj_id || $a_sub_id) {
303 $item[
"values"]->setActiveRecordPrimary($this->obj_id, $this->sub_type, $this->sub_id);
306 $item[
"values"]->write();
327 $this->lng->loadLanguageModule(
'search');
329 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
331 $this->search_form = array();
336 if (!
sizeof($fields)) {
342 $section->setTitle($record_translations->getTitleForLanguage($this->user->getLanguage()));
343 $section->setInfo($record_translations->getDescriptionForLanguage($this->user->getLanguage()));
344 $this->form->addItem($section);
346 foreach ($fields as $field) {
349 $field_form =
ilADTFactory::getInstance()->getSearchBridgeForDefinitionInstance($field->getADTDefinition(),
true,
false);
350 $field_form->setForm($this->form);
351 $field_form->setElementId(
"advmd[" . $field->getFieldId() .
"]");
352 $field_form->setTitle($field_translations->getTitleForLanguage($field->getFieldId(), $this->
user->getLanguage()));
354 if (is_array($this->search_form_values) &&
355 isset($this->search_form_values[$field->getFieldId()])) {
356 $field->setSearchValueSerialized($field_form, $this->search_form_values[$field->getFieldId()]);
359 $field->prepareElementForSearch($field_form);
361 $field_form->addToForm();
363 $this->search_form[$field->getFieldId()] = array(
"def" => $field,
"value" => $field_form);
375 if (!
sizeof($this->search_form)) {
382 foreach ($this->search_form as $field_id => $item) {
383 $item[
"value"]->importFromPost();
384 if (!$item[
"value"]->validate()) {
387 $value = $item[
"def"]->getSearchValueSerialized($item[
"value"]);
388 if ($value !== null) {
389 $res[$field_id] = $value;
400 $this->search_form_values = $a_values;
409 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
410 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
411 include_once(
'Services/ADT/classes/class.ilADTFactory.php');
418 $this->
info->addSection($record_translations->getTitleForLanguage($this->user->getLanguage()));
420 $defs = $a_values->getDefinitions();
421 foreach ($a_values->getADTGroup()->getElements() as $element_id => $element) {
422 if (!$element->isNull()) {
424 $title = $field_translations->getTitleForLanguage($element_id, $this->
user->getLanguage());
426 $this->
info->addProperty(
444 $definitions = $sub->sortDefinitions($definitions);
446 $positions = array();
447 foreach ($definitions as $position => $value) {
448 $positions[$value->getFieldId()] = $position;
451 $array_elements = array();
458 $defs = $a_values->getDefinitions();
459 foreach ($a_values->getADTGroup()->getElements() as $element_id => $element) {
460 if (!$element->isNull()) {
463 if (get_class($element) ==
'ilADTLocation') {
464 $presentation_bridge->setSize(
"100%",
"200px");
466 $presentation_value = $presentation_bridge->getHTML();
467 $presentation_value .=
"<script>ilInitMaps();</script>";
468 } elseif (get_class($element) ==
'ilADTExternalLink' || get_class($element) ==
'ilADTInternalLink') {
470 $presentation_value = $presentation_bridge->getHTML();
472 $presentation_value = strip_tags($presentation_bridge->getHTML());
474 $array_elements[$positions[$element_id]] =
476 "title" => $field_translations->getTitleForLanguage($element_id, $this->
user->getLanguage()),
477 "value" => $presentation_value
484 return $array_elements;
500 include_once(
'./Services/WebServices/ECS/classes/class.ilECSDataMappingSettings.php');
501 include_once(
'./Services/WebServices/ECS/classes/class.ilECSServerSettings.php');
504 ($this->obj_type !=
'crs' and $this->obj_type !=
'rcrs')
523 $this->lng->loadLanguageModule(
'ecs');
525 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDValue.php');
526 $value_start = ilAdvancedMDValue::_getInstance($this->obj_id, $def->getFieldId());
528 $unixtime = $value_start->getValue() ? $value_start->getValue() : mktime(8, 0, 0, date(
'm'), date(
'd'), date(
'Y'));
530 $time =
new ilDateTimeInputGUI($this->lng->txt(
'ecs_event_appointment'),
'md[' . $def->getFieldId() .
']');
538 $time->setDisabled($value_start->isDisabled());
541 if ($field_id = $mapping->getMappingByECSName(0,
'end')) {
542 $value_end = ilAdvancedMDValue::_getInstance($this->obj_id, $field_id);
544 list($hours, $minutes) = $this->
parseDuration($value_start->getValue(), $value_end->getValue());
548 $duration->setMinutes($minutes);
549 #$duration->setInfo($this->lng->txt('ecs_duration_info')); 550 $duration->setShowHours(
true);
551 $duration->setShowMinutes(
true);
552 $time->addSubItem($duration);
555 if ($field_id = $mapping->getMappingByECSName(0,
'cycle')) {
556 $value = ilAdvancedMDValue::_getInstance($this->obj_id, $field_id);
558 switch ($cycle_def->getFieldType()) {
560 $text =
new ilTextInputGUI($cycle_def->getTitle(),
'md[' . $cycle_def->getFieldId() .
']');
561 $text->setValue($value->getValue());
563 $text->setMaxLength(512);
564 $text->setDisabled($value->isDisabled());
565 $time->addSubItem($text);
569 $select =
new ilSelectInputGUI($cycle_def->getTitle(),
'md[' . $cycle_def->getFieldId() .
']');
570 $select->setOptions($cycle_def->getFieldValuesForSelect());
571 $select->setValue($value->getValue());
572 $select->setDisabled($value->isDisabled());
573 $time->addSubItem($select);
577 if ($field_id = $mapping->getMappingByECSName(0,
'room')) {
578 $value = ilAdvancedMDValue::_getInstance($this->obj_id, $field_id);
580 switch ($room_def->getFieldType()) {
582 $text =
new ilTextInputGUI($room_def->getTitle(),
'md[' . $room_def->getFieldId() .
']');
583 $text->setValue($value->getValue());
585 $text->setMaxLength(512);
586 $text->setDisabled($value->isDisabled());
587 $time->addSubItem($text);
591 $select =
new ilSelectInputGUI($room_def->getTitle(),
'md[' . $room_def->getFieldId() .
']');
592 $select->setOptions($cycle_def->getFieldValuesForSelect());
593 $select->setValue($value->getValue());
594 $select->setDisabled($value->isDisabled());
595 $time->addSubItem($select);
599 $this->form->addItem($time);
611 if ($u_start >= $u_end) {
614 $diff = $u_end - $u_start;
615 $hours = (int) ($diff / (60 * 60));
616 $min = (int) (($diff % 3600) / 60);
617 return array($hours,$min);
637 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
644 $sec_tit = ($a_sec_head ==
"")
645 ? $this->lng->txt(
"meta_adv_records")
653 $cb->
setInfo($record_obj->getDescription());
654 $cb->setValue($record_obj->getRecordId());
655 if (in_array($record_obj->getRecordId(), $selected)) {
656 $cb->setChecked(
true);
658 $this->form->addItem($cb);
671 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
682 $this->table_gui = $a_val;
692 return $this->table_gui;
702 $this->row_data = $a_val;
712 return $this->row_data;
717 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
730 $this->adt_search = array();
732 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
734 $record_id = $record_obj->getRecordId();
739 foreach ($defs as $def) {
741 if (!$def->isFilterSupported()) {
745 $this->adt_search[$def->getFieldId()] =
ilADTFactory::getInstance()->getSearchBridgeForDefinitionInstance($def->getADTDefinition(),
true,
false);
746 $this->adt_search[$def->getFieldId()]->setTableGUI($this->table_gui);
747 $this->adt_search[$def->getFieldId()]->setTitle(
748 $field_translations->getTitleForLanguage($def->getFieldId(), $this->
user->getLanguage())
750 $this->adt_search[$def->getFieldId()]->setElementId(
'md_' . $def->getFieldId());
752 $this->adt_search[$def->getFieldId()]->loadFilter();
753 $this->adt_search[$def->getFieldId()]->addToForm();
763 if (!is_array($this->adt_search)) {
767 foreach ($this->adt_search as $element) {
768 $element->importFromPost();
779 if (!is_array($this->adt_search)) {
785 foreach ($this->adt_search as $def_id => $element) {
786 if (!$element->isNull() ||
787 !(bool) $a_only_non_empty) {
788 $res[$def_id] = $element;
804 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
806 $record_id = $record_obj->getRecordId();
811 foreach ($defs as $def) {
816 $this->table_gui->addColumn(
817 $field_translations->getTitleForLanguage($def->getFieldId(), $this->
user->getLanguage()),
818 'md_' . $def->getFieldId()
832 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
834 $record_id = $record_obj->getRecordId();
837 foreach ($defs as $def) {
843 $res_raw =
$data[
'md_' . $def->getFieldId()] ?? null;
844 $res_presentation =
$data[
'md_' . $def->getFieldId() .
'_presentation'] ?? null;
852 $res = $res_presentation->getHTML();
855 $html .=
"<td class='std'>" .
$res .
"</td>";
parseDuration($u_start, $u_end)
parse hours and minutes from duration
setTableGUI($a_val)
Set table.
static getInstancesForObjectId($a_obj_id, $a_obj_type=null, $a_sub_type="-", $a_sub_id=0)
Get instances for given object id.
importSearchForm()
Load edit form values from post.
parseTableCells()
Parse table cells.
const MODE_APP_PRESENTATION
setRefId($a_ref_id)
Set ref_id for context.
setPropertyForm($form)
set property form object
importEditFormPostValues()
Load edit form values from post.
static getInstance()
Get singleton instance.
handleECSDefinitions($a_definition)
handle ecs definitions
getRowData()
Get row data.
parseRecordSelection($a_sec_head="")
Parse property form in editor mode.
parseTableHead()
Parse property for table head.
static getInstance()
Get singleton.
setSearchFormValues(array $a_values)
static saveObjRecSelection($a_obj_id, $a_sub_type="", array $a_records=null, $a_delete_before=true)
Save repository object record selection.
static _getAllReferences($a_id)
get all reference ids of object
static _getInstanceByObjectType($a_type)
Singleton: use this method to get an instance.
static _getSelectedRecordsByObject($a_obj_type, $a_ref_id, $a_sub_type="")
Get selected records by object.
writeEditForm($a_obj_id=null, $a_sub_id=null)
Write edit form values to db.
getFilterElements($a_only_non_empty=true)
Get SQL conditions for current filter value(s)
foreach($_POST as $key=> $value) $res
setInfoObject($info)
get info sections
__construct($a_mode, $a_obj_type='', $a_obj_id='', $a_sub_type='', $a_sub_id='')
Constructor.
static getInstancesByObjType($a_obj_type, $a_active_only=true)
setSearchValues($a_values)
Set values for search form.
parseFilter()
Parse property for filter (table)
static getInstanceByRecordId(int $record_id)
static _getActivatedRecordsByObjectType($a_obj_type, $a_sub_type="", $a_only_optional=false)
Get activated records by object type.
static stripSlashesArray($a_arr, $a_strip_html=true, $a_allow="")
Strip slashes from array.
showECSStart($def)
Show special form for ecs start.
setRowData($a_val)
Set row data.
getAdvMdRecordObject()
Get adv md record type.
setAdvMdRecordObject($a_adv_ref_id, $a_adv_type, $a_adv_subtype="-")
Set object, that defines the adv md records being used.
parseAppointmentPresentation()
Presentation for calendar agenda list.
static getInstance($a_field_id, $a_type=null, string $language='')
Get definition instance by type.
ADT presentation bridge base class.
parseEditor()
Parse property form in editor mode.
static _getInstance()
Get Singleton instance.
static getInstancesByRecordId($a_record_id, $a_only_searchable=false, string $language='')
Get definitions by record id.
parseSearch()
Parse search.
parseInfoPage()
Presentation for info page.
saveSelection()
Save selection per object.
static getObjRecSelection($a_obj_id, $a_sub_type="")
Get repository object record selection.
importFilter()
Import filter (post) values.
static getInstanceByRecordId(int $record_id)