48 public function __construct($a_mode, $a_obj_type =
'', $a_obj_id =
'', $a_sub_type =
'', $a_sub_id =
'')
53 $this->mode = $a_mode;
54 $this->obj_type = $a_obj_type;
55 $this->obj_id = $a_obj_id;
56 $this->sub_type = $a_sub_type;
57 $this->sub_id = $a_sub_id;
61 $this->ref_id = end($refs);
72 $this->ref_id = $a_ref_id;
95 $this->search_values = $a_values;
120 switch ($this->mode) {
121 case self::MODE_EDITOR:
124 case self::MODE_SEARCH:
127 case self::MODE_INFO:
130 case self::MODE_APP_PRESENTATION:
133 case self::MODE_REC_SELECTION:
136 case self::MODE_FILTER:
139 case self::MODE_TABLE_HEAD:
142 case self::MODE_TABLE_CELLS:
146 die(
'Not implemented yet');
160 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
161 $this->editor_form =
array();
171 $record_id = $record_obj->getRecordId();
173 $values =
new ilAdvancedMDValues($record_id, $this->obj_id, $this->sub_type, $this->sub_id);
175 $defs = $values->getDefinitions();
178 if (!
sizeof($defs)) {
183 $adt_group_form->setForm($this->form);
184 $adt_group_form->setTitle($record_obj->getTitle());
185 $adt_group_form->setInfo($record_obj->getDescription());
187 foreach ($defs as
$def) {
188 $element = $adt_group_form->getElement($def->getFieldId());
189 $element->setTitle($def->getTitle());
190 $element->setInfo($def->getDescription());
193 $def->prepareElementForEditor($element);
195 if ($values->isDisabled($def->getFieldId())) {
196 $element->setDisabled(
true);
200 $adt_group_form->addToForm();
202 $this->editor_form[$record_id] =
array(
"values"=>$values,
"form"=>$adt_group_form);
214 if (!is_array($this->editor_form)) {
220 foreach ($this->editor_form as $item) {
221 $item[
"form"]->importFromPost();
222 if (!$item[
"form"]->validate()) {
239 if (!
sizeof($this->editor_form)) {
245 $this->obj_id = $a_obj_id;
248 $this->sub_id = $a_sub_id;
251 foreach ($this->editor_form as $item) {
252 if ($a_obj_id || $a_sub_id) {
254 $item[
"values"]->setActiveRecordPrimary($this->obj_id, $this->sub_type, $this->sub_id);
257 $item[
"values"]->write();
278 $this->lng->loadLanguageModule(
'search');
280 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
282 $this->search_form =
array();
287 if (!
sizeof($fields)) {
292 $section->setTitle($record->getTitle());
293 $section->setInfo($record->getDescription());
296 foreach ($fields as $field) {
297 $field_form =
ilADTFactory::getInstance()->getSearchBridgeForDefinitionInstance($field->getADTDefinition(),
true,
false);
298 $field_form->setForm($this->form);
299 $field_form->setElementId(
"advmd[" . $field->getFieldId() .
"]");
300 $field_form->setTitle($field->getTitle());
302 if (is_array($this->search_form_values) &&
303 isset($this->search_form_values[$field->getFieldId()])) {
304 $field->setSearchValueSerialized($field_form, $this->search_form_values[$field->getFieldId()]);
307 $field->prepareElementForSearch($field_form);
309 $field_form->addToForm();
311 $this->search_form[$field->getFieldId()] =
array(
"def"=>$field,
"value"=>$field_form);
323 if (!
sizeof($this->search_form)) {
330 foreach ($this->search_form as $field_id => $item) {
331 $item[
"value"]->importFromPost();
332 if (!$item[
"value"]->validate()) {
335 $value = $item[
"def"]->getSearchValueSerialized($item[
"value"]);
336 if ($value !== null) {
337 $res[$field_id] = $value;
348 $this->search_form_values = $a_values;
357 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
358 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
359 include_once(
'Services/ADT/classes/class.ilADTFactory.php');
367 $defs = $a_values->getDefinitions();
368 foreach ($a_values->getADTGroup()->getElements() as $element_id => $element) {
369 if (!$element->isNull()) {
370 $this->info->addProperty(
371 $defs[$element_id]->getTitle(),
388 $definitions = $sub->sortDefinitions($definitions);
390 $positions =
array();
391 foreach ($definitions as $position => $value) {
392 $positions[$value->getFieldId()] = $position;
395 $array_elements =
array();
400 $defs = $a_values->getDefinitions();
401 foreach ($a_values->getADTGroup()->getElements() as $element_id => $element) {
402 if (!$element->isNull()) {
405 if (get_class($element) ==
'ilADTLocation') {
406 $presentation_bridge->setSize(
"100%",
"200px");
408 $presentation_value = $presentation_bridge->getHTML();
409 $presentation_value .=
"<script>ilInitMaps();</script>";
412 $presentation_value = strip_tags($presentation_bridge->getHTML());
414 $array_elements[$positions[$element_id]] =
416 "title" => $defs[$element_id]->getTitle(),
417 "value" => $presentation_value
423 ksort($array_elements);
424 return $array_elements;
440 include_once(
'./Services/WebServices/ECS/classes/class.ilECSDataMappingSettings.php');
441 include_once(
'./Services/WebServices/ECS/classes/class.ilECSServerSettings.php');
444 ($this->obj_type !=
'crs' and $this->obj_type !=
'rcrs')
461 $this->lng->loadLanguageModule(
'ecs');
463 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDValue.php');
464 $value_start = ilAdvancedMDValue::_getInstance($this->obj_id,
$def->getFieldId());
466 $unixtime = $value_start->getValue() ? $value_start->getValue() : mktime(8, 0, 0,
date(
'm'),
date(
'd'),
date(
'Y'));
469 $time->setShowTime(
true);
476 $time->setDisabled($value_start->isDisabled());
479 if ($field_id = $mapping->getMappingByECSName(0,
'end')) {
480 $value_end = ilAdvancedMDValue::_getInstance($this->obj_id, $field_id);
482 list($hours, $minutes) = $this->
parseDuration($value_start->getValue(), $value_end->getValue());
486 $duration->setMinutes($minutes);
487 #$duration->setInfo($this->lng->txt('ecs_duration_info')); 488 $duration->setShowHours(
true);
489 $duration->setShowMinutes(
true);
490 $time->addSubItem($duration);
493 if ($field_id = $mapping->getMappingByECSName(0,
'cycle')) {
494 $value = ilAdvancedMDValue::_getInstance($this->obj_id, $field_id);
496 switch ($cycle_def->getFieldType()) {
498 $text =
new ilTextInputGUI($cycle_def->getTitle(),
'md[' . $cycle_def->getFieldId() .
']');
499 $text->setValue($value->getValue());
501 $text->setMaxLength(512);
502 $text->setDisabled($value->isDisabled());
507 $select =
new ilSelectInputGUI($cycle_def->getTitle(),
'md[' . $cycle_def->getFieldId() .
']');
508 $select->
setOptions($cycle_def->getFieldValuesForSelect());
509 $select->setValue($value->getValue());
510 $select->setDisabled($value->isDisabled());
511 $time->addSubItem($select);
515 if ($field_id = $mapping->getMappingByECSName(0,
'room')) {
516 $value = ilAdvancedMDValue::_getInstance($this->obj_id, $field_id);
518 switch ($room_def->getFieldType()) {
521 $text->setValue($value->getValue());
523 $text->setMaxLength(512);
524 $text->setDisabled($value->isDisabled());
529 $select =
new ilSelectInputGUI($room_def->getTitle(),
'md[' . $room_def->getFieldId() .
']');
530 $select->
setOptions($cycle_def->getFieldValuesForSelect());
531 $select->setValue($value->getValue());
532 $select->setDisabled($value->isDisabled());
533 $time->addSubItem($select);
537 $this->form->addItem(
$time);
549 if ($u_start >= $u_end) {
552 $diff = $u_end - $u_start;
553 $hours = (int) ($diff / (60 * 60));
554 $min = (int) (($diff % 3600) / 60);
555 return array($hours,$min);
573 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
580 $sec_tit = ($a_sec_head ==
"")
581 ? $this->lng->txt(
"meta_adv_records")
589 $cb->
setInfo($record_obj->getDescription());
590 $cb->setValue($record_obj->getRecordId());
591 if (in_array($record_obj->getRecordId(), $selected)) {
592 $cb->setChecked(
true);
594 $this->form->addItem($cb);
607 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
618 $this->table_gui = $a_val;
628 return $this->table_gui;
638 $this->row_data = $a_val;
648 return $this->row_data;
653 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
665 $this->adt_search =
array();
667 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
669 $record_id = $record_obj->getRecordId();
672 foreach ($defs as
$def) {
674 if (!$def->isFilterSupported()) {
685 $this->adt_search[$def->getFieldId()] =
ilADTFactory::getInstance()->getSearchBridgeForDefinitionInstance($def->getADTDefinition(),
true,
false);
686 $this->adt_search[$def->getFieldId()]->setTableGUI($this->table_gui);
687 $this->adt_search[$def->getFieldId()]->setTitle($def->getTitle());
688 $this->adt_search[$def->getFieldId()]->setElementId(
'md_' . $def->getFieldId());
690 $this->adt_search[$def->getFieldId()]->loadFilter();
691 $this->adt_search[$def->getFieldId()]->addToForm();
701 if (!is_array($this->adt_search)) {
705 foreach ($this->adt_search as $element) {
706 $element->importFromPost();
717 if (!is_array($this->adt_search)) {
723 foreach ($this->adt_search as $def_id => $element) {
724 if (!$element->isNull() ||
725 !(bool) $a_only_non_empty) {
726 $res[$def_id] = $element;
744 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
745 foreach (ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record_obj->getRecordId()) as
$def) {
750 $this->table_gui->addColumn($def->getTitle(),
'md_' . $def->getFieldId());
765 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
766 foreach (ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record_obj->getRecordId()) as
$def) {
771 $html.=
"<td class='std'>" .
$data[
'md_' . $def->getFieldId()] .
"</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)
static getInstancesByRecordId($a_record_id, $a_only_searchable=false)
Get definitions by record id.
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)
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
This class represents a text property in a property form.
setSearchValues($a_values)
Set values for search form.
static _lookupTitle($a_record_id)
Lookup title.
parseFilter()
Parse property for filter (table)
Create styles array
The data for the language used.
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.
parseAppointmentPresentation()
Presentation for calendar agenda list.
parseEditor()
Parse property form in editor mode.
static _getInstance()
Get Singleton instance.
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.