ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilAdvancedMDSettingsGUI Class Reference
+ Collaboration diagram for ilAdvancedMDSettingsGUI:

Public Member Functions

 __construct ($a_ref_id=null, $a_obj_type=null, $a_sub_type=null)
 Constructor. More...
 
 executeCommand ()
 Execute command. More...
 
 showRecords ()
 show record list More...
 
 showPresentation ()
 
 updateSubstitutions ()
 Update substitution. More...
 
 exportRecords ()
 Export records. More...
 
 showFiles ()
 show export files More...
 
 downloadFile ()
 Download XML file. More...
 
 confirmDeleteFiles ()
 confirm delete files More...
 
 deleteFiles ()
 Delete files. More...
 
 confirmDeleteRecords ()
 Confirm delete. More...
 
 deleteRecords ()
 Permanently delete records. More...
 
 updateRecords ()
 Save records (assigned object typed) More...
 
 confirmDeleteFields ()
 show delete fields confirmation screen More...
 
 deleteFields ()
 delete fields More...
 
 editRecord ()
 Edit one record. More...
 
 editFields ()
 
 updateFields ()
 Update fields. More...
 
 updateRecord ()
 Update record. More...
 
 createRecord ()
 Show. More...
 
 importRecords ()
 
 importRecord ()
 import xml file More...
 
 saveRecord ()
 Save record. More...
 
 editField (ilPropertyFormGUI $a_form=null)
 Edit field. More...
 
 updateField ()
 Update field. More...
 
 createField (ilPropertyFormGUI $a_form=null)
 Show field type selection. More...
 
 saveField ()
 create field More...
 
 editComplexOption (ilPropertyFormGUI $a_form=null)
 
 updateComplexOption ()
 

Data Fields

const MODE_ADMINISTRATION = 1
 
const MODE_OBJECT = 2
 

Protected Member Functions

 getPermissions ()
 
 initImportForm ()
 show import form More...
 
 initFieldForm (ilAdvancedMDFieldDefinition $a_definition)
 init field form More...
 
 initForm ($a_mode)
 Init Form. More...
 
 getSubstitutionFieldPermissions ($a_obj_type, $a_field_id)
 
 initFormSubstitutions ()
 init form table 'substitutions' More...
 
 loadRecordFormData ()
 load record form data More...
 
 initRecordObject ()
 Init record object. More...
 
 setSubTabs ()
 Set sub tabs. More...
 
 getParsedRecordObjects ()
 Get and cache record objects. More...
 
 initComplexOptionForm (ilAdvancedMDFieldDefinition $a_def)
 

Protected Attributes

 $lng
 
 $tpl
 
 $ctrl
 
 $tabs
 
 $permissions
 
 $ref_id = null
 
 $obj_id = null
 
 $obj_type = null
 
 $sub_type = null
 

Private Attributes

 $mode = null
 
 $logger = null
 

Detailed Description

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

@ilCtrl_Calls ilAdvancedMDSettingsGUI: ilPropertyFormGUI

Definition at line 16 of file class.ilAdvancedMDSettingsGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilAdvancedMDSettingsGUI::__construct (   $a_ref_id = null,
  $a_obj_type = null,
  $a_sub_type = null 
)

Constructor.

@access public

Definition at line 49 of file class.ilAdvancedMDSettingsGUI.php.

50 {
51 global $DIC;
52
53 $tpl = $DIC['tpl'];
54 $lng = $DIC['lng'];
55 $ilCtrl = $DIC['ilCtrl'];
56 $ilTabs = $DIC['ilTabs'];
57
58 $this->ctrl = $ilCtrl;
59 $this->lng = $lng;
60 $this->lng->loadLanguageModule('meta');
61 $this->tpl = $tpl;
62 $this->tabs_gui = $ilTabs;
63
64 $this->logger = $GLOBALS['DIC']->logger()->amet();
65
66 $this->ref_id = $a_ref_id;
67 if ($this->ref_id) {
68 $this->obj_id = ilObject::_lookupObjId($a_ref_id);
69 }
70
71 if (!$this->ref_id) {
72 $this->mode = self::MODE_ADMINISTRATION;
73 } else {
74 $this->mode = self::MODE_OBJECT;
75 }
76
77
78 $this->obj_type = $a_obj_type;
79 $this->sub_type = $a_sub_type
80 ? $a_sub_type
81 : "-";
82
83 if (
84 $this->obj_id &&
85 !$this->obj_type) {
86 $this->obj_type = ilObject::_lookupType($this->obj_id);
87 }
88
89 $this->permissions = ilAdvancedMDPermissionHelper::getInstance();
90 }
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
static getInstance($a_user_id=null, $a_ref_id=null)
Factory.
static _lookupObjId($a_id)
static _lookupType($a_id, $a_reference=false)
lookup object type
global $ilCtrl
Definition: ilias.php:18
$DIC
Definition: xapitoken.php:46

References $DIC, $GLOBALS, $ilCtrl, $lng, $tpl, ilObject\_lookupObjId(), ilObject\_lookupType(), ilClaimingPermissionHelper\getInstance(), MODE_ADMINISTRATION, and MODE_OBJECT.

+ Here is the call graph for this function:

Member Function Documentation

◆ confirmDeleteFields()

ilAdvancedMDSettingsGUI::confirmDeleteFields ( )

show delete fields confirmation screen

@access public

Definition at line 639 of file class.ilAdvancedMDSettingsGUI.php.

640 {
641 if (!isset($_POST['field_id'])) {
642 ilUtil::sendFailure($this->lng->txt('select_one'));
643 $this->editFields();
644 return false;
645 }
646
647 $this->ctrl->saveParameter($this, 'record_id');
648
649 include_once("Services/Utilities/classes/class.ilConfirmationGUI.php");
650 $c_gui = new ilConfirmationGUI();
651
652 // set confirm/cancel commands
653 $c_gui->setFormAction($this->ctrl->getFormAction($this, "deleteFields"));
654 $c_gui->setHeaderText($this->lng->txt("md_adv_delete_fields_sure"));
655 $c_gui->setCancel($this->lng->txt("cancel"), "editFields");
656 $c_gui->setConfirm($this->lng->txt("confirm"), "deleteFields");
657
658 // add items to delete
659 foreach ($_POST["field_id"] as $field_id) {
661 $c_gui->addItem("field_id[]", $field_id, $field->getTitle() ? $field->getTitle() : 'No Title');
662 }
663 $this->tpl->setContent($c_gui->getHTML());
664 }
$_POST["username"]
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
Confirmation screen class.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.

References $_POST, editFields(), ilAdvancedMDFieldDefinition\getInstance(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ confirmDeleteFiles()

ilAdvancedMDSettingsGUI::confirmDeleteFiles ( )

confirm delete files

@access public

Definition at line 405 of file class.ilAdvancedMDSettingsGUI.php.

406 {
407 if (!isset($_POST['file_id'])) {
408 ilUtil::sendFailure($this->lng->txt('select_one'));
409 $this->showFiles();
410 return false;
411 }
412
413 include_once("Services/Utilities/classes/class.ilConfirmationGUI.php");
414 $c_gui = new ilConfirmationGUI();
415
416 // set confirm/cancel commands
417 $c_gui->setFormAction($this->ctrl->getFormAction($this, "deleteFiles"));
418 $c_gui->setHeaderText($this->lng->txt("md_adv_delete_files_sure"));
419 $c_gui->setCancel($this->lng->txt("cancel"), "showFiles");
420 $c_gui->setConfirm($this->lng->txt("confirm"), "deleteFiles");
421
422 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordExportFiles.php');
423 $files = new ilAdvancedMDRecordExportFiles($this->obj_id);
424 $file_data = $files->readFilesInfo();
425
426
427 // add items to delete
428 foreach ($_POST["file_id"] as $file_id) {
429 $info = $file_data[$file_id];
430 $c_gui->addItem("file_id[]", $file_id, is_array($info['name']) ? implode(',', $info['name']) : 'No Records');
431 }
432 $this->tpl->setContent($c_gui->getHTML());
433 }

References $_POST, ilUtil\sendFailure(), and showFiles().

+ Here is the call graph for this function:

◆ confirmDeleteRecords()

ilAdvancedMDSettingsGUI::confirmDeleteRecords ( )

Confirm delete.

@access public

Definition at line 471 of file class.ilAdvancedMDSettingsGUI.php.

472 {
473 if (!isset($_POST['record_id'])) {
474 ilUtil::sendFailure($this->lng->txt('select_one'));
475 $this->showRecords();
476 return false;
477 }
478
479 include_once("Services/Utilities/classes/class.ilConfirmationGUI.php");
480 $c_gui = new ilConfirmationGUI();
481
482 // set confirm/cancel commands
483 $c_gui->setFormAction($this->ctrl->getFormAction($this, "deleteRecords"));
484 $c_gui->setHeaderText($this->lng->txt("md_adv_delete_record_sure"));
485 $c_gui->setCancel($this->lng->txt("cancel"), "showRecords");
486 $c_gui->setConfirm($this->lng->txt("confirm"), "deleteRecords");
487
488 // add items to delete
489 foreach ($_POST["record_id"] as $record_id) {
490 $record = ilAdvancedMDRecord::_getInstanceByRecordId($record_id);
491 $c_gui->addItem("record_id[]", $record_id, $record->getTitle() ? $record->getTitle() : 'No Title');
492 }
493 $this->tpl->setContent($c_gui->getHTML());
494 }
static _getInstanceByRecordId($a_record_id)
Get instance by record id.

References $_POST, ilAdvancedMDRecord\_getInstanceByRecordId(), ilUtil\sendFailure(), and showRecords().

+ Here is the call graph for this function:

◆ createField()

ilAdvancedMDSettingsGUI::createField ( ilPropertyFormGUI  $a_form = null)

Show field type selection.

@access public

Definition at line 1084 of file class.ilAdvancedMDSettingsGUI.php.

1085 {
1086 if (!$_REQUEST["record_id"] || !$_REQUEST["ftype"]) {
1087 return $this->editFields();
1088 }
1089
1090 $this->ctrl->saveParameter($this, 'record_id');
1091 $this->ctrl->saveParameter($this, 'ftype');
1092
1093 if (!$a_form) {
1094 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
1095 $field_definition = ilAdvancedMDFieldDefinition::getInstance(null, $_REQUEST["ftype"]);
1096 $field_definition->setRecordId($_REQUEST["record_id"]);
1097 $a_form = $this->initFieldForm($field_definition);
1098 }
1099 $this->tpl->setContent($a_form->getHTML());
1100 }
initFieldForm(ilAdvancedMDFieldDefinition $a_definition)
init field form

References editFields(), ilAdvancedMDFieldDefinition\getInstance(), and initFieldForm().

Referenced by saveField().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createRecord()

ilAdvancedMDSettingsGUI::createRecord ( )

Show.

@access public

Parameters

Definition at line 882 of file class.ilAdvancedMDSettingsGUI.php.

883 {
884 $this->initRecordObject();
885 $this->initForm('create');
886 $this->tpl->setContent($this->form->getHTML());
887 return true;
888 }

References initForm(), and initRecordObject().

Referenced by importRecord(), and saveRecord().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteFields()

ilAdvancedMDSettingsGUI::deleteFields ( )

delete fields

@access public

Parameters

Definition at line 673 of file class.ilAdvancedMDSettingsGUI.php.

674 {
675 $this->ctrl->saveParameter($this, 'record_id');
676
677 if (!isset($_POST['field_id'])) {
678 ilUtil::sendFailure($this->lng->txt('select_one'));
679 $this->editFields();
680 return false;
681 }
682
683 // all fields have to be deletable
684 $fail = array();
685 foreach ($_POST['field_id'] as $field_id) {
686 if (!$this->getPermissions()->hasPermission(
688 $field_id,
690 )) {
692 $fail[] = $field->getTitle();
693 }
694 }
695 if ($fail) {
696 ilUtil::sendFailure($this->lng->txt('msg_no_perm_delete') . " " . implode(", ", $fail), true);
697 $this->ctrl->redirect($this, "editFields");
698 }
699
700 foreach ($_POST["field_id"] as $field_id) {
702 $field->delete();
703 }
704 ilUtil::sendSuccess($this->lng->txt('md_adv_deleted_fields'), true);
705 $this->ctrl->redirect($this, "editFields");
706 }

References $_POST, ilAdvancedMDPermissionHelper\ACTION_FIELD_DELETE, ilAdvancedMDPermissionHelper\CONTEXT_FIELD, editFields(), ilAdvancedMDFieldDefinition\getInstance(), getPermissions(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ deleteFiles()

ilAdvancedMDSettingsGUI::deleteFiles ( )

Delete files.

@access public

Parameters

Definition at line 442 of file class.ilAdvancedMDSettingsGUI.php.

443 {
444 if (!isset($_POST['file_id'])) {
445 ilUtil::sendFailure($this->lng->txt('select_one'));
446 $this->editFiles();
447 return false;
448 }
449
450 if (!$GLOBALS['DIC']->access()->checkAccess('write', '', $this->ref_id)) {
451 ilUtil::sendFailure($this->lng->txt('permission_denied'), true);
452 $GLOBALS['DIC']->ctrl()->redirect($this, 'showFiles');
453 }
454
455 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordExportFiles.php');
456 $files = new ilAdvancedMDRecordExportFiles($this->obj_id);
457
458 foreach ($_POST['file_id'] as $file_id) {
459 $files->deleteByFileId((int) $file_id);
460 }
461 ilUtil::sendSuccess($this->lng->txt('md_adv_deleted_files'));
462 $this->showFiles();
463 }

References $_POST, $GLOBALS, ilUtil\sendFailure(), and showFiles().

+ Here is the call graph for this function:

◆ deleteRecords()

ilAdvancedMDSettingsGUI::deleteRecords ( )

Permanently delete records.

@access public

Definition at line 502 of file class.ilAdvancedMDSettingsGUI.php.

503 {
504 if (!isset($_POST['record_id'])) {
505 ilUtil::sendFailure($this->lng->txt('select_one'));
506 $this->showRecords();
507 return false;
508 }
509
510 // all records have to be deletable
511 $fail = array();
512 foreach ($_POST['record_id'] as $record_id) {
513 // must not delete global records in local context
514 if ($this->obj_id) {
515 $record = ilAdvancedMDRecord::_getInstanceByRecordId($record_id);
516 if (!$record->getParentObject()) {
517 $fail[] = $record->getTitle();
518 }
519 }
520
521 if (!$this->getPermissions()->hasPermission(
523 $record_id,
525 )) {
526 $record = ilAdvancedMDRecord::_getInstanceByRecordId($record_id);
527 $fail[] = $record->getTitle();
528 }
529 }
530 if ($fail) {
531 ilUtil::sendFailure($this->lng->txt('msg_no_perm_delete') . " " . implode(", ", $fail), true);
532 $this->ctrl->redirect($this, "showRecords");
533 }
534
535 foreach ($_POST['record_id'] as $record_id) {
536 $record = ilAdvancedMDRecord::_getInstanceByRecordId($record_id);
537 $record->delete();
538 }
539 ilUtil::sendSuccess($this->lng->txt('md_adv_deleted_records'), true);
540 $this->ctrl->redirect($this, "showRecords");
541 }

References $_POST, ilAdvancedMDRecord\_getInstanceByRecordId(), ilAdvancedMDPermissionHelper\ACTION_RECORD_DELETE, ilAdvancedMDPermissionHelper\CONTEXT_RECORD, getPermissions(), ilUtil\sendFailure(), and showRecords().

+ Here is the call graph for this function:

◆ downloadFile()

ilAdvancedMDSettingsGUI::downloadFile ( )

Download XML file.

@access public

Parameters

Definition at line 384 of file class.ilAdvancedMDSettingsGUI.php.

385 {
386 if (!isset($_POST['file_id']) or count($_POST['file_id']) != 1) {
387 ilUtil::sendFailure($this->lng->txt('md_adv_select_one_file'));
388 $this->showFiles();
389 return false;
390 }
391
392 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordExportFiles.php');
393 $files = new ilAdvancedMDRecordExportFiles($this->obj_id);
394 $abs_path = $files->getAbsolutePathByFileId((int) $_POST['file_id'][0]);
395
396 ilUtil::deliverFile($abs_path, 'ilias_meta_data_record.xml', 'application/xml');
397 }
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.

References $_POST, ilUtil\deliverFile(), ilUtil\sendFailure(), and showFiles().

+ Here is the call graph for this function:

◆ editComplexOption()

ilAdvancedMDSettingsGUI::editComplexOption ( ilPropertyFormGUI  $a_form = null)

Definition at line 1818 of file class.ilAdvancedMDSettingsGUI.php.

1819 {
1820 $field_definition = ilAdvancedMDFieldDefinition::getInstance((int) $_REQUEST['field_id']);
1821 if (!$field_definition->hasComplexOptions()) {
1822 $this->ctrl->redirect($this, "editField");
1823 }
1824
1825 if (!$a_form) {
1826 $a_form = $this->initComplexOptionForm($field_definition);
1827 }
1828
1829 $this->tpl->setContent($a_form->getHTML());
1830 }
initComplexOptionForm(ilAdvancedMDFieldDefinition $a_def)

References ilAdvancedMDFieldDefinition\getInstance(), and initComplexOptionForm().

+ Here is the call graph for this function:

◆ editField()

ilAdvancedMDSettingsGUI::editField ( ilPropertyFormGUI  $a_form = null)

Edit field.

@access public

Definition at line 1014 of file class.ilAdvancedMDSettingsGUI.php.

1015 {
1016 if (!$_REQUEST["record_id"] || !$_REQUEST["field_id"]) {
1017 return $this->editFields();
1018 }
1019
1020 $this->ctrl->saveParameter($this, 'record_id');
1021 $this->ctrl->saveParameter($this, 'field_id');
1022
1023 $field_definition = ilAdvancedMDFieldDefinition::getInstance((int) $_REQUEST['field_id']);
1024
1025 if (!$a_form) {
1026 $a_form = $this->initFieldForm($field_definition);
1027 }
1028
1029 $table = null;
1030 if ($field_definition->hasComplexOptions()) {
1031 $table = $field_definition->getComplexOptionsOverview($this, "editField");
1032 }
1033
1034 $this->tpl->setContent($a_form->getHTML() . $table);
1035 }

References editFields(), ilAdvancedMDFieldDefinition\getInstance(), and initFieldForm().

Referenced by updateField().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ editFields()

ilAdvancedMDSettingsGUI::editFields ( )

Definition at line 723 of file class.ilAdvancedMDSettingsGUI.php.

724 {
725 global $DIC;
726
727 $ilToolbar = $DIC['ilToolbar'];
728
729 $this->ctrl->saveParameter($this, 'record_id');
730 $this->initRecordObject();
731
732 $perm = $this->getPermissions()->hasPermissions(
734 $this->record->getRecordId(),
735 array(
738 )
739 );
740
741 $filter_warn = array();
743 // type selection
744 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
745 $types = new ilSelectInputGUI("", "ftype");
746 $options = array();
749 $options[$type] = $this->lng->txt($field->getTypeTitle());
750
751 if (!$field->isFilterSupported()) {
752 $filter_warn[] = $this->lng->txt($field->getTypeTitle());
753 }
754 }
755 $types->setOptions($options);
756 $ilToolbar->addInputItem($types);
757
758 $ilToolbar->setFormAction($this->ctrl->getFormAction($this, "createField"));
759
760 include_once "Services/UIComponent/Button/classes/class.ilSubmitButton.php";
761 $button = ilSubmitButton::getInstance();
762 $button->setCaption("add");
763 $button->setCommand("createField");
764 $ilToolbar->addButtonInstance($button);
765 }
766
767 // #17092
768 if (sizeof($filter_warn)) {
769 ilUtil::sendInfo(sprintf($this->lng->txt("md_adv_field_filter_warning"), implode(", ", $filter_warn)));
770 }
771
772 // show field table
773 include_once('./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
774 $fields = ilAdvancedMDFieldDefinition::getInstancesByRecordId($this->record->getRecordId());
775
776 include_once("./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldTableGUI.php");
778 $table_gui->setTitle($this->lng->txt("md_adv_field_table"));
779 $table_gui->parseDefinitions($fields);
780 if (sizeof($fields)) {
781 $table_gui->addCommandButton("updateFields", $this->lng->txt("save"));
782 }
783 $table_gui->addCommandButton("showRecords", $this->lng->txt('cancel'));
784 $table_gui->addMultiCommand("confirmDeleteFields", $this->lng->txt("delete"));
785 $table_gui->setSelectAllCheckbox("field_id");
786
787 $this->tpl->setContent($table_gui->getHTML());
788 }
static getInstancesByRecordId($a_record_id, $a_only_searchable=false)
Get definitions by record id.
This class represents a selection list property in a property form.
static getInstance()
Factory.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$type

References $DIC, $type, ilAdvancedMDPermissionHelper\ACTION_RECORD_CREATE_FIELD, ilAdvancedMDPermissionHelper\ACTION_RECORD_FIELD_POSITIONS, ilAdvancedMDPermissionHelper\CONTEXT_RECORD, ilAdvancedMDFieldDefinition\getInstance(), ilSubmitButton\getInstance(), ilAdvancedMDFieldDefinition\getInstancesByRecordId(), getPermissions(), ilAdvancedMDFieldDefinition\getValidTypes(), initRecordObject(), and ilUtil\sendInfo().

Referenced by confirmDeleteFields(), createField(), deleteFields(), editField(), saveField(), updateField(), and updateFields().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ editRecord()

ilAdvancedMDSettingsGUI::editRecord ( )

Edit one record.

@access public

Parameters

Definition at line 715 of file class.ilAdvancedMDSettingsGUI.php.

716 {
717 $this->ctrl->saveParameter($this, 'record_id');
718 $this->initRecordObject();
719 $this->initForm('edit');
720 $this->tpl->setContent($this->form->getHTML());
721 }

References initForm(), and initRecordObject().

Referenced by updateRecord().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

ilAdvancedMDSettingsGUI::executeCommand ( )

Execute command.

@access public

Parameters

Definition at line 104 of file class.ilAdvancedMDSettingsGUI.php.

105 {
106 $next_class = $this->ctrl->getNextClass($this);
107 $cmd = $this->ctrl->getCmd();
108
109 if (!$this->obj_id) {
110 $this->setSubTabs();
111 }
112
113 switch ($next_class) {
114 case "ilpropertyformgui":
115 $this->initRecordObject();
116 $this->initForm(
117 $this->record->getRecordId() > 0 ? 'edit' : 'create'
118 );
119 $GLOBALS['DIC']->ctrl()->forwardCommand($this->form);
120 break;
121
122 default:
123 if (!$cmd) {
124 $cmd = 'showRecords';
125 }
126 $this->$cmd();
127 }
128 }

References $GLOBALS, initForm(), initRecordObject(), and setSubTabs().

+ Here is the call graph for this function:

◆ exportRecords()

ilAdvancedMDSettingsGUI::exportRecords ( )

Export records.

@access public

Definition at line 310 of file class.ilAdvancedMDSettingsGUI.php.

311 {
312 if (!isset($_POST['record_id'])) {
313 ilUtil::sendFailure($this->lng->txt('select_one'));
314 $this->showRecords();
315 return false;
316 }
317
318 // all records have to be exportable
319 $fail = array();
320 foreach ($_POST['record_id'] as $record_id) {
321 if (!$this->getPermissions()->hasPermission(
323 $record_id,
325 )) {
326 $record = ilAdvancedMDRecord::_getInstanceByRecordId($record_id);
327 $fail[] = $record->getTitle();
328 }
329 }
330 if ($fail) {
331 ilUtil::sendFailure($this->lng->txt('msg_no_perm_copy') . " " . implode(", ", $fail), true);
332 $this->ctrl->redirect($this, "showRecords");
333 }
334
335 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordXMLWriter.php');
336 $xml_writer = new ilAdvancedMDRecordXMLWriter($_POST['record_id']);
337 $xml_writer->write();
338
339 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordExportFiles.php');
340 $export_files = new ilAdvancedMDRecordExportFiles($this->obj_id);
341 $export_files->create($xml_writer->xmlDumpMem());
342
343 ilUtil::sendSuccess($this->lng->txt('md_adv_records_exported'));
344 $this->showFiles();
345 }

References $_POST, ilAdvancedMDRecord\_getInstanceByRecordId(), ilAdvancedMDPermissionHelper\ACTION_RECORD_EXPORT, ilAdvancedMDPermissionHelper\CONTEXT_RECORD, getPermissions(), ilUtil\sendFailure(), showFiles(), and showRecords().

+ Here is the call graph for this function:

◆ getParsedRecordObjects()

ilAdvancedMDSettingsGUI::getParsedRecordObjects ( )
protected

Get and cache record objects.

@access protected

Definition at line 1719 of file class.ilAdvancedMDSettingsGUI.php.

1720 {
1721 $res = array();
1722
1723 if ($this->mode == self::MODE_OBJECT) {
1724 $selected = ilAdvancedMDRecord::getObjRecSelection($this->obj_id, $this->sub_type);
1725 }
1726
1728 $orderings = new ilAdvancedMDRecordObjectOrderings();
1729 $records = $orderings->sortRecords($records, $this->obj_id);
1730
1731 $position = 0;
1732 foreach ($records as $record) {
1733 $parent_id = $record->getParentObject();
1734
1735 if ($this->mode == self::MODE_ADMINISTRATION) {
1736 if ($parent_id) {
1737 continue;
1738 }
1739 } else {
1740 // does not match current object
1741 if ($parent_id && $parent_id != $this->obj_id) {
1742 continue;
1743 }
1744
1745 // inactive records only in administration
1746 if (!$parent_id && !$record->isActive()) {
1747 continue;
1748 }
1749 // scope needs to match in object context
1750 if (
1752 $this->ref_id,
1753 $record->getScopes()
1754 )
1755 ) {
1756 continue;
1757 }
1758 }
1759
1760 $tmp_arr = array();
1761 $tmp_arr['id'] = $record->getRecordId();
1762 $tmp_arr['active'] = $record->isActive();
1763 $tmp_arr['title'] = $record->getTitle();
1764 $tmp_arr['description'] = $record->getDescription();
1765 $tmp_arr['fields'] = array();
1766 $tmp_arr['obj_types'] = $record->getAssignedObjectTypes();
1767 $position += 10;
1768 $tmp_arr['position'] = $position;
1769
1770 $tmp_arr['perm'] = $this->permissions->hasPermissions(
1772 $record->getRecordId(),
1773 array(
1779 )
1780 );
1781
1782 if ($this->obj_type) {
1783 $tmp_arr["readonly"] = !(bool) $parent_id;
1784 $tmp_arr["local"] = $parent_id;
1785
1786 // local records are never optional
1787 $assigned = $optional = false;
1788 foreach ($tmp_arr['obj_types'] as $idx => $item) {
1789 if ($item["obj_type"] == $this->obj_type &&
1790 $item["sub_type"] == $this->sub_type) {
1791 $assigned = true;
1792 $optional = $item["optional"];
1793 $tmp_arr['obj_types'][$idx]['context'] = true;
1794 break;
1795 }
1796 }
1797 if (!$assigned) {
1798 continue;
1799 }
1800 $tmp_arr['optional'] = $optional;
1801 if ($optional) {
1802 // in object context "active" means selected record
1803 $tmp_arr['active'] = in_array($record->getRecordId(), $selected);
1804 }
1805 }
1806
1807 $res[] = $tmp_arr;
1808 }
1809
1810 return $res;
1811 }
static getObjRecSelection($a_obj_id, $a_sub_type="")
Get repository object record selection.
static _getRecords()
Get records.
static isFilteredByScope($a_ref_id, array $scopes)
Check if a given ref id is not filtered by scope restriction.
foreach($_POST as $key=> $value) $res

References $res, ilAdvancedMDRecord\_getRecords(), ilAdvancedMDPermissionHelper\ACTION_RECORD_EDIT, ilAdvancedMDPermissionHelper\ACTION_RECORD_EDIT_FIELDS, ilAdvancedMDPermissionHelper\ACTION_RECORD_EDIT_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_RECORD_TOGGLE_ACTIVATION, ilAdvancedMDPermissionHelper\CONTEXT_RECORD, ilAdvancedMDRecord\getObjRecSelection(), ilAdvancedMDRecord\isFilteredByScope(), and ilAdvancedMDPermissionHelper\SUBACTION_RECORD_OBJECT_TYPES.

Referenced by showRecords(), and updateRecords().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getPermissions()

◆ getSubstitutionFieldPermissions()

ilAdvancedMDSettingsGUI::getSubstitutionFieldPermissions (   $a_obj_type,
  $a_field_id 
)
protected

Definition at line 1327 of file class.ilAdvancedMDSettingsGUI.php.

1328 {
1329 if ($a_obj_type == "crs") {
1330 $perm = $this->getPermissions()->hasPermissions(
1332 $a_field_id,
1333 array(
1339 )
1340 );
1341 return array(
1345 );
1346 } elseif ($a_obj_type == "cat") {
1347 $perm = $this->getPermissions()->hasPermissions(
1349 $a_field_id,
1350 array(
1356 )
1357 );
1358 return array(
1362 );
1363 } elseif ($a_obj_type == "sess") {
1364 $perm = $this->getPermissions()->hasPermissions(
1366 $a_field_id,
1367 array(
1373 )
1374 );
1375 return array(
1379 );
1380 } elseif ($a_obj_type == "grp") {
1381 $perm = $this->getPermissions()->hasPermissions(
1383 $a_field_id,
1384 array(
1390 )
1391 );
1392 return array(
1396 );
1397 } elseif ($a_obj_type == "iass") {
1398 $perm = $this->getPermissions()->hasPermissions(
1400 $a_field_id,
1401 array(
1407 )
1408 );
1409 return array(
1413 );
1414 } elseif ($a_obj_type == "exc") {
1415 $perm = $this->getPermissions()->hasPermissions(
1417 $a_field_id,
1418 array(
1424 )
1425 );
1426 return array(
1430 );
1431 }
1432 }

References ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_CATEGORY_EDIT_FIELD_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_CATEGORY_SHOW_FIELD, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_COURSE_EDIT_FIELD_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_COURSE_SHOW_FIELD, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_EXERCISE_EDIT_FIELD_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_EXERCISE_SHOW_FIELD, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_GROUP_EDIT_FIELD_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_GROUP_SHOW_FIELD, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_IASS_EDIT_FIELD_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_IASS_SHOW_FIELD, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_SESSION_EDIT_FIELD_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_SESSION_SHOW_FIELD, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_CATEGORY, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_COURSE, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_EXERCISE, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_GROUP, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_IASS, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_SESSION, getPermissions(), ilAdvancedMDPermissionHelper\SUBACTION_SUBSTITUTION_BOLD, and ilAdvancedMDPermissionHelper\SUBACTION_SUBSTITUTION_NEWLINE.

Referenced by initFormSubstitutions(), and updateSubstitutions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ importRecord()

ilAdvancedMDSettingsGUI::importRecord ( )

import xml file

@access public

Parameters

Definition at line 931 of file class.ilAdvancedMDSettingsGUI.php.

932 {
933 $this->initImportForm();
934 if (!$this->import_form->checkInput()) {
935 $this->import_form->setValuesByPost();
936 $this->createRecord();
937 return false;
938 }
939
940 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordImportFiles.php');
941 $import_files = new ilAdvancedMDRecordImportFiles();
942 if (!$create_time = $import_files->moveUploadedFile($_FILES['file']['tmp_name'])) {
943 $this->createRecord();
944 return false;
945 }
946
947 try {
948 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordParser.php');
949 $parser = new ilAdvancedMDRecordParser($import_files->getImportFileByCreationDate($create_time));
950
951 // local import?
952 if ($this->obj_id) {
953 $parser->setContext($this->obj_id, $this->obj_type, $this->sub_type);
954 }
955
956 // Validate
958 $parser->startParsing();
959
960 // Insert
962 $parser->startParsing();
963 ilUtil::sendSuccess($this->lng->txt('md_adv_added_new_record'), true);
964 $this->ctrl->redirect($this, "showRecords");
965 } catch (ilSAXParserException $exc) {
966 ilUtil::sendFailure($exc->getMessage(), true);
967 $this->ctrl->redirect($this, "importRecords");
968 }
969
970 // Finally delete import file
971 $import_files->deleteFileByCreationDate($create_time);
972 return true;
973 }
$parser
Definition: BPMN2Parser.php:23
SAX based XML parser for record import files.

References $parser, createRecord(), initImportForm(), ilAdvancedMDRecordParser\MODE_INSERT, ilAdvancedMDRecordParser\MODE_INSERT_VALIDATION, and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ importRecords()

ilAdvancedMDSettingsGUI::importRecords ( )

Definition at line 890 of file class.ilAdvancedMDSettingsGUI.php.

891 {
892 // Import Table
893 $this->initImportForm();
894 $this->tpl->setContent($this->import_form->getHTML());
895 }

References initImportForm().

+ Here is the call graph for this function:

◆ initComplexOptionForm()

ilAdvancedMDSettingsGUI::initComplexOptionForm ( ilAdvancedMDFieldDefinition  $a_def)
protected

Definition at line 1832 of file class.ilAdvancedMDSettingsGUI.php.

1833 {
1834 $this->ctrl->saveParameter($this, "record_id");
1835 $this->ctrl->saveParameter($this, "field_id");
1836 $this->ctrl->saveParameter($this, "oid");
1837
1838 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1839 $form = new ilPropertyFormGUI();
1840 $form->setTitle($this->lng->txt("md_adv_edit_complex_option"));
1841 $form->setFormAction($this->ctrl->getFormAction($this, "updateComplexOption"));
1842
1843 $a_def->initOptionForm($form, $_REQUEST["oid"]);
1844
1845 $form->addCommandButton("updateComplexOption", $this->lng->txt("save"));
1846 $form->addCommandButton("editField", $this->lng->txt("cancel"));
1847
1848 return $form;
1849 }
This class represents a property form user interface.

Referenced by editComplexOption(), and updateComplexOption().

+ Here is the caller graph for this function:

◆ initFieldForm()

ilAdvancedMDSettingsGUI::initFieldForm ( ilAdvancedMDFieldDefinition  $a_definition)
protected

init field form

@access protected

Definition at line 1138 of file class.ilAdvancedMDSettingsGUI.php.

1139 {
1140 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1141
1142 $form = new ilPropertyFormGUI();
1143 $form->setFormAction($this->ctrl->getFormAction($this));
1144
1145 $type = new ilNonEditableValueGUI($this->lng->txt("type"));
1146 $type->setValue($this->lng->txt($a_definition->getTypeTitle()));
1147 $form->addItem($type);
1148
1149 $a_definition->addToFieldDefinitionForm($form, $this->getPermissions());
1150
1151 if (!$a_definition->getFieldId()) {
1152 $form->setTitle($this->lng->txt('md_adv_create_field'));
1153 $form->addCommandButton('saveField', $this->lng->txt('create'));
1154 } else {
1155 $form->setTitle($this->lng->txt('md_adv_edit_field'));
1156 $form->addCommandButton('updateField', $this->lng->txt('save'));
1157 }
1158
1159 $form->addCommandButton('editFields', $this->lng->txt('cancel'));
1160
1161 return $form;
1162 }
addToFieldDefinitionForm(ilPropertyFormGUI $a_form, ilAdvancedMDPermissionHelper $a_permissions)
Add input elements to definition form.
This class represents a non editable value in a property form.

References $type, ilAdvancedMDFieldDefinition\addToFieldDefinitionForm(), ilAdvancedMDFieldDefinition\getFieldId(), getPermissions(), and ilAdvancedMDFieldDefinition\getTypeTitle().

Referenced by createField(), editField(), saveField(), and updateField().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initForm()

ilAdvancedMDSettingsGUI::initForm (   $a_mode)
protected

Init Form.

@access protected

Definition at line 1169 of file class.ilAdvancedMDSettingsGUI.php.

1170 {
1171 if (is_object($this->form)) {
1172 return true;
1173 }
1174
1175 $perm = $this->getPermissions()->hasPermissions(
1177 $this->record->getRecordId(),
1178 array(
1186 )
1187 );
1188
1189 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1190
1191 $this->form = new ilPropertyFormGUI();
1192 $this->form->setFormAction($this->ctrl->getFormAction($this));
1193
1194
1195 // title
1196 $title = new ilTextInputGUI($this->lng->txt('title'), 'title');
1197 $title->setValue($this->record->getTitle());
1198 $title->setSize(20);
1199 $title->setMaxLength(70);
1200 $title->setRequired(true);
1201 $this->form->addItem($title);
1202
1204 $title->setDisabled(true);
1205 }
1206
1207 // desc
1208 $desc = new ilTextAreaInputGUI($this->lng->txt('description'), 'desc');
1209 $desc->setValue($this->record->getDescription());
1210 $desc->setRows(3);
1211 $desc->setCols(50);
1212 $this->form->addItem($desc);
1213
1215 $desc->setDisabled(true);
1216 }
1217
1218 // active
1219 $check = new ilCheckboxInputGUI($this->lng->txt('md_adv_active'), 'active');
1220 $check->setChecked($this->record->isActive());
1221 $check->setValue(1);
1222 $this->form->addItem($check);
1223
1225 $check->setDisabled(true);
1226 }
1227
1228 if (!$this->obj_type) {
1229 // scope
1230 $scope = new ilCheckboxInputGUI($this->lng->txt('md_adv_scope'), 'scope');
1231 $scope->setChecked($this->record->enabledScope());
1232 $scope->setValue(1);
1233 $this->form->addItem($scope);
1234
1235 $subitems = new ilRepositorySelector2InputGUI($this->lng->txt("objects"), "scope_containers", true);
1236 $subitems->setValue($this->record->getScopeRefIds());
1237 $exp = $subitems->getExplorerGUI();
1238
1239 $definition = $GLOBALS['DIC']['objDefinition'];
1240 $white_list = [];
1241 foreach ($definition->getAllRepositoryTypes() as $type) {
1242 if ($definition->isContainer($type)) {
1243 $white_list[] = $type;
1244 }
1245 }
1246
1247
1248 $exp->setTypeWhiteList($white_list);
1249 $exp->setSkipRootNode(false);
1250 $exp->setRootId(ROOT_FOLDER_ID);
1251 $scope->addSubItem($subitems);
1252 }
1253
1254 if (!$this->obj_type) {
1256 $section->setTitle($this->lng->txt('md_obj_types'));
1257 $this->form->addItem($section);
1258
1259 // see ilAdvancedMDRecordTableGUI::fillRow()
1260 $options = array(
1261 0 => $this->lng->txt("meta_obj_type_inactive"),
1262 1 => $this->lng->txt("meta_obj_type_mandatory"),
1263 2 => $this->lng->txt("meta_obj_type_optional")
1264 );
1265
1266
1268 $t = $type["obj_type"] . ":" . $type["sub_type"];
1269 $this->lng->loadLanguageModule($type["obj_type"]);
1270
1271 $type_options = $options;
1272 switch ($type["obj_type"]) {
1273 case "orgu":
1274 // currently only optional records for org unit (types)
1275 unset($type_options[1]);
1276 break;
1277 case "prg":
1278 // currently only optional records for study programme (types)
1279 unset($type_options[1]);
1280 break;
1281 case "rcrs":
1282 // optional makes no sense for ecs-courses
1283 unset($type_options[2]);
1284 break;
1285 }
1286
1287 $value = 0;
1288 if ($a_mode == "edit") {
1289 foreach ($this->record->getAssignedObjectTypes() as $item) {
1290 if ($item["obj_type"] == $type["obj_type"] &&
1291 $item["sub_type"] == $type["sub_type"]) {
1292 $value = $item["optional"]
1293 ? 2
1294 : 1;
1295 }
1296 }
1297 }
1298
1299 $check = new ilSelectInputGUI($type["text"], 'obj_types[' . $t . ']');
1300 $check->setOptions($type_options);
1301 $check->setValue($value);
1302 $this->form->addItem($check);
1303
1305 $check->setDisabled(true);
1306 }
1307 }
1308 }
1309
1310 switch ($a_mode) {
1311 case 'create':
1312 $this->form->setTitle($this->lng->txt('md_adv_create_record'));
1313 $this->form->addCommandButton('saveRecord', $this->lng->txt('add'));
1314 $this->form->addCommandButton('showRecords', $this->lng->txt('cancel'));
1315
1316 return true;
1317
1318 case 'edit':
1319 $this->form->setTitle($this->lng->txt('md_adv_edit_record'));
1320 $this->form->addCommandButton('updateRecord', $this->lng->txt('save'));
1321 $this->form->addCommandButton('showRecords', $this->lng->txt('cancel'));
1322
1323 return true;
1324 }
1325 }
$section
Definition: Utf8Test.php:83
static _getAssignableObjectTypes($a_include_text=false)
Get assignable object type.
This class represents a checkbox property in a property form.
This class represents a section header in a property form.
This class represents a text area property in a property form.
This class represents a text property in a property form.

References $GLOBALS, $section, $type, ilAdvancedMDRecord\_getAssignableObjectTypes(), ilAdvancedMDPermissionHelper\ACTION_RECORD_EDIT_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_RECORD_TOGGLE_ACTIVATION, ilAdvancedMDPermissionHelper\CONTEXT_RECORD, getPermissions(), ilAdvancedMDPermissionHelper\SUBACTION_RECORD_DESCRIPTION, ilAdvancedMDPermissionHelper\SUBACTION_RECORD_OBJECT_TYPES, and ilAdvancedMDPermissionHelper\SUBACTION_RECORD_TITLE.

Referenced by createRecord(), editRecord(), and executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFormSubstitutions()

ilAdvancedMDSettingsGUI::initFormSubstitutions ( )
protected

init form table 'substitutions'

@access protected

Definition at line 1439 of file class.ilAdvancedMDSettingsGUI.php.

1440 {
1441 global $DIC;
1442
1443 $ilAccess = $DIC['ilAccess'];
1444
1445 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1446
1447 if (!$visible_records = ilAdvancedMDRecord::_getAllRecordsByObjectType()) {
1448 return;
1449 }
1450
1451 $this->form = new ilPropertyFormGUI();
1452 $this->form->setFormAction($this->ctrl->getFormAction($this));
1453 #$this->form->setTableWidth('100%');
1454
1455 // substitution
1456 foreach ($visible_records as $obj_type => $records) {
1457 $perm = null;
1458
1459 if (in_array($obj_type, $this->permissions->getAllowedObjectTypes())) {
1460 $perm = $this->getPermissions()->hasPermissions(
1462 $obj_type,
1463 array(
1467 )
1468 );
1469 }
1470
1472
1473 // Show section
1475 $section->setTitle($this->lng->txt('objs_' . $obj_type));
1476 $this->form->addItem($section);
1477
1478 $check = new ilCheckboxInputGUI($this->lng->txt('description'), 'enabled_desc_' . $obj_type);
1479 $check->setValue(1);
1480 $check->setOptionTitle($this->lng->txt('md_adv_desc_show'));
1481 $check->setChecked($sub->isDescriptionEnabled() ? true : false);
1482 $this->form->addItem($check);
1483
1485 $check->setDisabled(true);
1486 }
1487
1488 $check = new ilCheckboxInputGUI($this->lng->txt('md_adv_field_names'), 'enabled_field_names_' . $obj_type);
1489 $check->setValue(1);
1490 $check->setOptionTitle($this->lng->txt('md_adv_fields_show'));
1491 $check->setChecked($sub->enabledFieldNames() ? true : false);
1492 $this->form->addItem($check);
1493
1495 $check->setDisabled(true);
1496 }
1497
1498 #$area = new ilTextAreaInputGUI($this->lng->txt('md_adv_substitution'),'substitution_'.$obj_type);
1499 #$area->setUseRte(true);
1500 #$area->setRteTagSet('standard');
1501 #$area->setValue(ilUtil::prepareFormOutput($sub->getSubstitutionString()));
1502 #$area->setRows(5);
1503 #$area->setCols(80);
1504 #$this->form->addItem($area);
1505
1506 if ($perm) {
1508 }
1509
1511 $definitions = $sub->sortDefinitions($definitions);
1512
1513 $counter = 1;
1514 foreach ($definitions as $def) {
1515 $definition_id = $def->getFieldId();
1516
1517 $perm = $this->getSubstitutionFieldPermissions($obj_type, $definition_id);
1518
1519 $title = ilAdvancedMDRecord::_lookupTitle($def->getRecordId());
1520 $title = $def->getTitle() . ' (' . $title . ')';
1521
1522 $check = new ilCheckboxInputGUI($title, 'show[' . $obj_type . '][' . $definition_id . ']');
1523 $check->setValue(1);
1524 $check->setOptionTitle($this->lng->txt('md_adv_show'));
1525 $check->setChecked($sub->isSubstituted($definition_id));
1526
1527 if ($perm && !$perm["show"]) {
1528 $check->setDisabled(true);
1529 }
1530
1531 $pos = new ilNumberInputGUI($this->lng->txt('position'), 'position[' . $obj_type . '][' . $definition_id . ']');
1532 $pos->setSize(3);
1533 $pos->setMaxLength(4);
1534 $pos->allowDecimals(true);
1535 $pos->setValue(sprintf('%.1f', $counter++));
1536 $check->addSubItem($pos);
1537
1538 if ($perm && !$perm_pos) {
1539 $pos->setDisabled(true);
1540 }
1541
1542 $bold = new ilCheckboxInputGUI($this->lng->txt('bold'), 'bold[' . $obj_type . '][' . $definition_id . ']');
1543 $bold->setValue(1);
1544 $bold->setChecked($sub->isBold($definition_id));
1545 $check->addSubItem($bold);
1546
1547 if ($perm && !$perm["bold"]) {
1548 $bold->setDisabled(true);
1549 }
1550
1551 $bold = new ilCheckboxInputGUI($this->lng->txt('newline'), 'newline[' . $obj_type . '][' . $definition_id . ']');
1552 $bold->setValue(1);
1553 $bold->setChecked($sub->hasNewline($definition_id));
1554 $check->addSubItem($bold);
1555
1556 if ($perm && !$perm["newline"]) {
1557 $bold->setDisabled(true);
1558 }
1559
1560
1561 $this->form->addItem($check);
1562 }
1563
1564
1565 // placeholder
1566 /*
1567 $custom = new ilCustomInputGUI($this->lng->txt('md_adv_placeholders'));
1568 $tpl = new ilTemplate('tpl.placeholder_info.html',true,true,'Services/AdvancedMetaData');
1569 foreach($records as $record)
1570 {
1571 foreach(ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record->getRecordId()) as $definition)
1572 {
1573 $tpl->setCurrentBlock('field');
1574 $tpl->setVariable('FIELD_NAME',$definition->getTitle());
1575 $tpl->setVariable('MODULE_VARS','[IF_F_'.$definition->getFieldId().']...[F_'.$definition->getFieldId().']'.
1576 '[/IF_F_'.$definition->getFieldId().']');
1577 $tpl->parseCurrentBlock();
1578 }
1579
1580 $tpl->setCurrentBlock('record');
1581 $tpl->setVariable('PLACEHOLDER_FOR',$this->lng->txt('md_adv_placeholder_for'));
1582 $tpl->setVariable('TITLE',$record->getTitle());
1583 $tpl->parseCurrentBlock();
1584 }
1585 $custom->setHTML($tpl->get());
1586 $this->form->addItem($custom);
1587 */
1588 }
1589 $this->form->setTitle($this->lng->txt('md_adv_substitution_table'));
1590
1591 if ($ilAccess->checkAccess('write', '', $_REQUEST["ref_id"])) {
1592 $this->form->addCommandButton('updateSubstitutions', $this->lng->txt('save'));
1593 }
1594
1595 return true;
1596 }
static getInstancesByObjType($a_obj_type, $a_active_only=true)
static _lookupTitle($a_record_id)
Lookup title.
static _getAllRecordsByObjectType()
Get records by obj_type Note: this returns only records with no sub types! @access public.
getSubstitutionFieldPermissions($a_obj_type, $a_field_id)
static _getInstanceByObjectType($a_type)
Singleton: use this method to get an instance.
This class represents a number property in a property form.

References $DIC, $obj_type, $section, ilAdvancedMDRecord\_getAllRecordsByObjectType(), ilAdvancedMDSubstitution\_getInstanceByObjectType(), ilAdvancedMDRecord\_lookupTitle(), ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_FIELD_POSITIONS, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_SHOW_DESCRIPTION, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_SHOW_FIELDNAMES, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION, ilAdvancedMDFieldDefinition\getInstancesByObjType(), getPermissions(), and getSubstitutionFieldPermissions().

Referenced by showPresentation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initImportForm()

ilAdvancedMDSettingsGUI::initImportForm ( )
protected

show import form

@access protected

Definition at line 902 of file class.ilAdvancedMDSettingsGUI.php.

903 {
904 if (is_object($this->import_form)) {
905 return true;
906 }
907
908 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
909 $this->import_form = new ilPropertyFormGUI();
910 $this->import_form->setMultipart(true);
911 $this->import_form->setFormAction($this->ctrl->getFormAction($this));
912
913 // add file property
914 $file = new ilFileInputGUI($this->lng->txt('file'), 'file');
915 $file->setSuffixes(array('xml'));
916 $file->setRequired(true);
917 $this->import_form->addItem($file);
918
919 $this->import_form->setTitle($this->lng->txt('md_adv_import_record'));
920 $this->import_form->addCommandButton('importRecord', $this->lng->txt('import'));
921 $this->import_form->addCommandButton('showRecords', $this->lng->txt('cancel'));
922 }
This class represents a file property in a property form.

Referenced by importRecord(), and importRecords().

+ Here is the caller graph for this function:

◆ initRecordObject()

ilAdvancedMDSettingsGUI::initRecordObject ( )
protected

Init record object.

@access protected

Definition at line 1663 of file class.ilAdvancedMDSettingsGUI.php.

1664 {
1665 if (!is_object($this->record)) {
1666 $record_id = isset($_GET['record_id'])
1667 ? $_GET['record_id']
1668 : 0;
1669 $this->record = ilAdvancedMDRecord::_getInstanceByRecordId($record_id);
1670
1671 // bind to parent object (aka local adv md)
1672 if (!$record_id &&
1673 $this->obj_id) {
1674 $this->record->setParentObject($this->obj_id);
1675 }
1676 }
1677
1678 return $this->record;
1679 }
$_GET["client_id"]

References $_GET, and ilAdvancedMDRecord\_getInstanceByRecordId().

Referenced by createRecord(), editFields(), editRecord(), executeCommand(), saveRecord(), and updateRecord().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ loadRecordFormData()

ilAdvancedMDSettingsGUI::loadRecordFormData ( )
protected

load record form data

@access protected

Definition at line 1603 of file class.ilAdvancedMDSettingsGUI.php.

1604 {
1605 $perm = $this->getPermissions()->hasPermissions(
1607 $this->record->getRecordId(),
1608 array(
1616 )
1617 );
1618
1620 $this->record->setActive(ilUtil::stripSlashes($_POST['active']));
1621 }
1623 $this->record->setTitle(ilUtil::stripSlashes($_POST['title']));
1624 }
1626 $this->record->setDescription(ilUtil::stripSlashes($_POST['desc']));
1627 }
1628
1629 if (!$this->obj_type) {
1631 $obj_types = array();
1632 if (is_array($_POST['obj_types'])) {
1633 foreach ($_POST['obj_types'] as $t => $value) {
1634 if ($value) {
1635 $t = explode(":", $t);
1636 $obj_types[] = array(
1637 "obj_type" => ilUtil::stripSlashes($t[0]),
1638 "sub_type" => ilUtil::stripSlashes($t[1]),
1639 "optional" => ($value > 1)
1640 );
1641 }
1642 }
1643 }
1644 $this->record->setAssignedObjectTypes($obj_types);
1645 }
1646 }
1647
1648 $scopes = [];
1649 foreach ((array) $_POST['scope_containers_sel'] as $ref_id) {
1650 $scope = new ilAdvancedMDRecordScope();
1651 $scope->setRefId($ref_id);
1652 $scopes[] = $scope;
1653 }
1654 $this->record->setScopes($_POST['scope'] ? $scopes : []);
1655 $this->record->enableScope($_POST['scope'] ? true : false);
1656 }
Scope restrictions for advanced md records.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled

References $_POST, $ref_id, ilAdvancedMDPermissionHelper\ACTION_RECORD_EDIT_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_RECORD_TOGGLE_ACTIVATION, ilAdvancedMDPermissionHelper\CONTEXT_RECORD, getPermissions(), ilUtil\stripSlashes(), ilAdvancedMDPermissionHelper\SUBACTION_RECORD_DESCRIPTION, ilAdvancedMDPermissionHelper\SUBACTION_RECORD_OBJECT_TYPES, and ilAdvancedMDPermissionHelper\SUBACTION_RECORD_TITLE.

Referenced by saveRecord(), and updateRecord().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveField()

ilAdvancedMDSettingsGUI::saveField ( )

create field

@access public

Definition at line 1107 of file class.ilAdvancedMDSettingsGUI.php.

1108 {
1109 if (!$_REQUEST["record_id"] || !$_REQUEST["ftype"]) {
1110 return $this->editFields();
1111 }
1112
1113 $this->ctrl->saveParameter($this, 'record_id');
1114 $this->ctrl->saveParameter($this, 'ftype');
1115
1116 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
1117 $field_definition = ilAdvancedMDFieldDefinition::getInstance(null, $_REQUEST["ftype"]);
1118 $field_definition->setRecordId($_REQUEST["record_id"]);
1119 $form = $this->initFieldForm($field_definition);
1120
1121 if ($form->checkInput()) {
1122 $field_definition->importDefinitionFormPostValues($form, $this->getPermissions());
1123 $field_definition->save();
1124
1125 ilUtil::sendSuccess($this->lng->txt('save_settings'), true);
1126 $this->ctrl->redirect($this, "editFields");
1127 }
1128
1129 $form->setValuesByPost();
1130 $this->createField($form);
1131 }
createField(ilPropertyFormGUI $a_form=null)
Show field type selection.

References createField(), editFields(), ilAdvancedMDFieldDefinition\getInstance(), getPermissions(), and initFieldForm().

+ Here is the call graph for this function:

◆ saveRecord()

ilAdvancedMDSettingsGUI::saveRecord ( )

Save record.

@access public

Parameters

Definition at line 983 of file class.ilAdvancedMDSettingsGUI.php.

984 {
985 $this->initRecordObject();
986 $this->loadRecordFormData();
987
988 if ($this->obj_type) {
989 $this->record->setAssignedObjectTypes(array(
990 array(
991 "obj_type" => $this->obj_type,
992 "sub_type" => $this->sub_type,
993 "optional" => false
994 )));
995 }
996
997 if (!$this->record->validate()) {
998 ilUtil::sendFailure($this->lng->txt('fill_out_all_required_fields'));
999 $this->createRecord();
1000 return false;
1001 }
1002 $this->record->save();
1003
1004 ilUtil::sendSuccess($this->lng->txt('md_adv_added_new_record'));
1005 $this->showRecords();
1006 }

References createRecord(), initRecordObject(), loadRecordFormData(), ilUtil\sendFailure(), and showRecords().

+ Here is the call graph for this function:

◆ setSubTabs()

ilAdvancedMDSettingsGUI::setSubTabs ( )
protected

Set sub tabs.

@access protected

Definition at line 1686 of file class.ilAdvancedMDSettingsGUI.php.

1687 {
1688 $this->tabs_gui->clearSubTabs();
1689
1690 $this->tabs_gui->addSubTabTarget(
1691 "md_adv_record_list",
1692 $this->ctrl->getLinkTarget($this, "showRecords"),
1693 '',
1694 '',
1695 '',
1696 true
1697 );
1698
1699
1701 $this->tabs_gui->addSubTabTarget(
1702 "md_adv_presentation",
1703 $this->ctrl->getLinkTarget($this, "showPresentation")
1704 );
1705 }
1706
1707 $this->tabs_gui->addSubTabTarget(
1708 "md_adv_file_list",
1709 $this->ctrl->getLinkTarget($this, "showFiles"),
1710 "showFiles"
1711 );
1712 }

References ilAdvancedMDRecord\_getAllRecordsByObjectType().

Referenced by executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showFiles()

ilAdvancedMDSettingsGUI::showFiles ( )

show export files

@access public

Parameters

Definition at line 354 of file class.ilAdvancedMDSettingsGUI.php.

355 {
356 $this->tabs_gui->setSubTabActive('md_adv_file_list');
357
358 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordExportFiles.php');
359 $files = new ilAdvancedMDRecordExportFiles($this->obj_id);
360 $file_data = $files->readFilesInfo();
361
362 include_once("./Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordExportFilesTableGUI.php");
363 $table_gui = new ilAdvancedMDRecordExportFilesTableGUI($this, "showFiles");
364 $table_gui->setTitle($this->lng->txt("md_record_export_table"));
365 $table_gui->parseFiles($file_data);
366 $table_gui->addMultiCommand("downloadFile", $this->lng->txt('download'));
367
368 if ($GLOBALS['DIC']->access()->checkAccess('write', '', $this->ref_id)) {
369 $table_gui->addMultiCommand("confirmDeleteFiles", $this->lng->txt("delete"));
370 }
371 $table_gui->addCommandButton('showFiles', $this->lng->txt('cancel'));
372 $table_gui->setSelectAllCheckbox("file_id");
373
374 $this->tpl->setContent($table_gui->getHTML());
375 }

References $GLOBALS.

Referenced by confirmDeleteFiles(), deleteFiles(), downloadFile(), and exportRecords().

+ Here is the caller graph for this function:

◆ showPresentation()

ilAdvancedMDSettingsGUI::showPresentation ( )

Definition at line 192 of file class.ilAdvancedMDSettingsGUI.php.

193 {
194 if ($this->initFormSubstitutions()) {
195 if (is_object($this->form)) {
196 $this->tabs_gui->setSubTabActive('md_adv_presentation');
197 return $this->tpl->setContent($this->form->getHTML());
198 }
199 }
200 return $this->showRecords();
201 }
initFormSubstitutions()
init form table 'substitutions'

References initFormSubstitutions(), and showRecords().

+ Here is the call graph for this function:

◆ showRecords()

ilAdvancedMDSettingsGUI::showRecords ( )

show record list

@access public

Parameters

Definition at line 137 of file class.ilAdvancedMDSettingsGUI.php.

138 {
139 global $DIC;
140
141 $ilToolbar = $DIC['ilToolbar'];
142 $ilAccess = $DIC['ilAccess'];
143
144 $perm = $this->getPermissions()->hasPermissions(
146 $_REQUEST["ref_id"],
147 array(
150 )
151 );
152
154 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
155 $button = ilLinkButton::getInstance();
156 $button->setCaption("add");
157 $button->setUrl($this->ctrl->getLinkTarget($this, "createRecord"));
158 $ilToolbar->addButtonInstance($button);
159
161 $ilToolbar->addSeparator();
162 }
163 }
164
166 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
167 $button = ilLinkButton::getInstance();
168 $button->setCaption("import");
169 $button->setUrl($this->ctrl->getLinkTarget($this, "importRecords"));
170 $ilToolbar->addButtonInstance($button);
171 }
172
173 include_once("./Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordTableGUI.php");
174 $table_gui = new ilAdvancedMDRecordTableGUI($this, "showRecords", $this->getPermissions(), (bool) $this->obj_id);
175 $table_gui->setTitle($this->lng->txt("md_record_list_table"));
176 $table_gui->setData($this->getParsedRecordObjects());
177
178 // permissions?
179 //$table_gui->addCommandButton('createRecord',$this->lng->txt('add'));
180 $table_gui->addMultiCommand("exportRecords", $this->lng->txt('export'));
181 $table_gui->setSelectAllCheckbox("record_id");
182
183 if ($ilAccess->checkAccess('write', '', $_REQUEST["ref_id"])) {
184 $table_gui->addMultiCommand("confirmDeleteRecords", $this->lng->txt("delete"));
185 $table_gui->addCommandButton("updateRecords", $this->lng->txt("save"));
186 }
187
188 $DIC->ui()->mainTemplate()->setContent($table_gui->getHTML());
189 return true;
190 }
getParsedRecordObjects()
Get and cache record objects.
static getInstance()
Factory.

References $DIC, ilAdvancedMDPermissionHelper\ACTION_MD_CREATE_RECORD, ilAdvancedMDPermissionHelper\ACTION_MD_IMPORT_RECORDS, ilAdvancedMDPermissionHelper\CONTEXT_MD, ilLinkButton\getInstance(), getParsedRecordObjects(), and getPermissions().

Referenced by confirmDeleteRecords(), deleteRecords(), exportRecords(), saveRecord(), showPresentation(), and updateRecord().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateComplexOption()

ilAdvancedMDSettingsGUI::updateComplexOption ( )

Definition at line 1851 of file class.ilAdvancedMDSettingsGUI.php.

1852 {
1853 $field_definition = ilAdvancedMDFieldDefinition::getInstance((int) $_REQUEST['field_id']);
1854 if ($field_definition->hasComplexOptions()) {
1855 $form = $this->initComplexOptionForm($field_definition);
1856 if ($form->checkInput() &&
1857 $field_definition->updateComplexOption($form, $_REQUEST["oid"])) {
1858 $field_definition->update();
1859 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
1860 }
1861 }
1862
1863 $this->ctrl->redirect($this, "editField");
1864 }

References ilAdvancedMDFieldDefinition\getInstance(), and initComplexOptionForm().

+ Here is the call graph for this function:

◆ updateField()

ilAdvancedMDSettingsGUI::updateField ( )

Update field.

@access public

Definition at line 1043 of file class.ilAdvancedMDSettingsGUI.php.

1044 {
1045 if (!$_REQUEST["record_id"] || !$_REQUEST["field_id"]) {
1046 return $this->editFields();
1047 }
1048
1049 $this->ctrl->saveParameter($this, 'record_id');
1050 $this->ctrl->saveParameter($this, 'field_id');
1051
1052 $confirm = false;
1053 $field_definition = ilAdvancedMDFieldDefinition::getInstance((int) $_REQUEST['field_id']);
1054 $form = $this->initFieldForm($field_definition);
1055 if ($form->checkInput()) {
1056 $field_definition->importDefinitionFormPostValues($form, $this->getPermissions());
1057 if (!$field_definition->importDefinitionFormPostValuesNeedsConfirmation()) {
1058 $field_definition->update();
1059
1060 ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
1061 $this->ctrl->redirect($this, "editFields");
1062 } else {
1063 $confirm = true;
1064 }
1065 }
1066
1067 $form->setValuesByPost();
1068
1069 // fields needs confirmation of updated settings
1070 if ($confirm) {
1071 ilUtil::sendInfo($this->lng->txt("md_adv_confirm_definition"));
1072 $field_definition->prepareDefinitionFormConfirmation($form);
1073 }
1074
1075 $this->editField($form);
1076 }
editField(ilPropertyFormGUI $a_form=null)
Edit field.

References editField(), editFields(), ilAdvancedMDFieldDefinition\getInstance(), getPermissions(), initFieldForm(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ updateFields()

ilAdvancedMDSettingsGUI::updateFields ( )

Update fields.

@access public

Definition at line 796 of file class.ilAdvancedMDSettingsGUI.php.

797 {
798 $this->ctrl->saveParameter($this, 'record_id');
799
800 if (!isset($_GET['record_id']) or !$_GET['record_id']) {
801 ilUtil::sendFailure($this->lng->txt('select_one'));
802 $this->editFields();
803 return false;
804 }
805
806 include_once('./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
808
809 if ($this->getPermissions()->hasPermission(
811 $_GET['record_id'],
813 )) {
814 if (!isset($_POST['position']) or !is_array($_POST['position'])) {
815 $this->editFields();
816 return false;
817 }
818 // sort by position
819 asort($_POST['position'], SORT_NUMERIC);
820 $positions = array_flip(array_keys($_POST['position']));
821 foreach ($fields as $field) {
822 $field->setPosition($positions[$field->getFieldId()]);
823 $field->update();
824 }
825 }
826
827 foreach ($fields as $field) {
828 if ($this->getPermissions()->hasPermission(
830 $field->getFieldId(),
833 )) {
834 $field->setSearchable(isset($_POST['searchable'][$field->getFieldId()]) ? true : false);
835 $field->update();
836 }
837 }
838
839
840 ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
841 $this->ctrl->redirect($this, "editFields");
842 }

References $_GET, $_POST, ilAdvancedMDPermissionHelper\ACTION_FIELD_EDIT_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_RECORD_FIELD_POSITIONS, ilAdvancedMDPermissionHelper\CONTEXT_FIELD, ilAdvancedMDPermissionHelper\CONTEXT_RECORD, editFields(), ilAdvancedMDFieldDefinition\getInstancesByRecordId(), getPermissions(), ilUtil\sendFailure(), and ilAdvancedMDPermissionHelper\SUBACTION_FIELD_SEARCHABLE.

+ Here is the call graph for this function:

◆ updateRecord()

ilAdvancedMDSettingsGUI::updateRecord ( )

Update record.

@access public

Parameters

Definition at line 851 of file class.ilAdvancedMDSettingsGUI.php.

852 {
853 if (!isset($_GET['record_id']) or !$_GET['record_id']) {
854 ilUtil::sendFailure($this->lng->txt('select_one'));
855 $this->showRecords();
856 return false;
857 }
858 $this->initRecordObject();
859 $this->loadRecordFormData();
860
861 $this->logger->dump($_POST);
862
863 if (!$this->record->validate()) {
864 ilUtil::sendFailure($this->lng->txt('fill_out_all_required_fields'));
865 $this->editRecord();
866 return false;
867 }
868 $this->record->update();
869 ilUtil::sendSuccess($this->lng->txt('settings_saved'));
870 $this->showRecords();
871 return true;
872 }

References $_GET, $_POST, editRecord(), initRecordObject(), loadRecordFormData(), ilUtil\sendFailure(), and showRecords().

+ Here is the call graph for this function:

◆ updateRecords()

ilAdvancedMDSettingsGUI::updateRecords ( )

Save records (assigned object typed)

@access public

Parameters

Definition at line 550 of file class.ilAdvancedMDSettingsGUI.php.

551 {
552 // sort positions and renumber
553 $positions = $_POST['pos'];
554 asort($positions, SORT_NUMERIC);
555
556 $sorted_positions = [];
557 $i = 1;
558 foreach ($positions as $record_id => $pos) {
559 $sorted_positions[$record_id] = $i++;
560 }
561
562 $this->logger->dump($sorted_positions);
563
564 $selected_global = array();
565 foreach ($this->getParsedRecordObjects() as $item) {
566 $perm = $this->getPermissions()->hasPermissions(
568 $item['id'],
569 array(
573 )
574 );
575
576 if ($this->mode == self::MODE_ADMINISTRATION) {
577 $record_obj = ilAdvancedMDRecord::_getInstanceByRecordId($item['id']);
578
580 $obj_types = array();
581 if (is_array($_POST['obj_types'][$record_obj->getRecordId()])) {
582 foreach ($_POST['obj_types'][$record_obj->getRecordId()] as $type => $status) {
583 if ($status) {
584 $type = explode(":", $type);
585 $obj_types[] = array(
586 "obj_type" => ilUtil::stripSlashes($type[0]),
587 "sub_type" => ilUtil::stripSlashes($type[1]),
588 "optional" => ((int) $status == 2)
589 );
590 }
591 }
592 }
593 $record_obj->setAssignedObjectTypes($obj_types);
594 }
595
597 $record_obj->setActive(isset($_POST['active'][$record_obj->getRecordId()]));
598 }
599
600 $record_obj->setGlobalPosition((int) $sorted_positions[$record_obj->getRecordId()]);
601 $record_obj->update();
603 // global, optional record
604 if ($item['readonly'] &&
605 $item['optional'] &&
606 $_POST['active'][$item['id']]) {
607 $selected_global[] = $item['id'];
608 } elseif ($item['local']) {
609 $record_obj = ilAdvancedMDRecord::_getInstanceByRecordId($item['id']);
610 $record_obj->setActive(isset($_POST['active'][$item['id']]));
611 $record_obj->update();
612 }
613 }
614
615 // save local sorting
616 if ($this->mode == self::MODE_OBJECT) {
617 global $DIC;
618
619 $local_position = new \ilAdvancedMDRecordObjectOrdering($item['id'], $this->obj_id, $DIC->database());
620 $local_position->setPosition((int) $sorted_positions[$item['id']]);
621 $local_position->save();
622 }
623 }
624
625 if ($this->obj_type) {
626 ilAdvancedMDRecord::saveObjRecSelection($this->obj_id, $this->sub_type, $selected_global);
627 }
628
629 ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
630 $this->ctrl->redirect($this, "showRecords");
631 }
static saveObjRecSelection($a_obj_id, $a_sub_type="", array $a_records=null, $a_delete_before=true)
Save repository object record selection.
$i
Definition: metadata.php:24

References $_POST, $DIC, $i, $type, ilAdvancedMDRecord\_getInstanceByRecordId(), ilAdvancedMDPermissionHelper\ACTION_RECORD_EDIT_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_RECORD_TOGGLE_ACTIVATION, ilAdvancedMDPermissionHelper\CONTEXT_RECORD, getParsedRecordObjects(), getPermissions(), ilAdvancedMDRecord\saveObjRecSelection(), ilUtil\stripSlashes(), and ilAdvancedMDPermissionHelper\SUBACTION_RECORD_OBJECT_TYPES.

+ Here is the call graph for this function:

◆ updateSubstitutions()

ilAdvancedMDSettingsGUI::updateSubstitutions ( )

Update substitution.

@access public

Definition at line 209 of file class.ilAdvancedMDSettingsGUI.php.

210 {
211 global $DIC;
212
213 $ilAccess = $DIC['ilAccess'];
214
215 if (!$ilAccess->checkAccess('write', '', $_REQUEST["ref_id"])) {
216 $this->ctrl->redirect($this, "showPresentation");
217 }
218
220 $perm = null;
221
222 if (in_array($obj_type, $this->permissions->getAllowedObjectTypes())) {
223 $perm = $this->getPermissions()->hasPermissions(
225 $obj_type,
226 array(
230 )
231 );
232 }
233
234 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDSubstitution.php');
236
238 $sub->enableDescription($_POST['enabled_desc_' . $obj_type]);
239 }
240
242 $sub->enableFieldNames((int) $_POST['enabled_field_names_' . $obj_type]);
243 }
244
246 $definitions = $sub->sortDefinitions($definitions);
247
248 // gather existing data
249 $counter = 1;
250 $old_sub = array();
251 foreach ($definitions as $def) {
252 $field_id = $def->getFieldId();
253 $old_sub[$field_id] = array(
254 "active" => $sub->isSubstituted($field_id),
255 "pos" => $counter++,
256 "bold" => $sub->isBold($field_id),
257 "newline" => $sub->hasNewline($field_id)
258 );
259 }
260
261 $sub->resetSubstitutions(array());
262
263 $new_sub = array();
264 foreach ($definitions as $def) {
265 $field_id = $def->getFieldId();
266 $old = $old_sub[$field_id];
267
268 $perm_def = $this->getSubstitutionFieldPermissions($obj_type, $field_id);
269 if ($perm_def["show"]) {
270 $active = (isset($_POST['show'][$obj_type][$field_id]) && $_POST['show'][$obj_type][$field_id]);
271 } else {
272 $active = $old["active"];
273 }
274
275 if ($active) {
276 $new_sub[$field_id] = $old;
277
279 $new_sub[$field_id]["pos"] = (int) $_POST['position'][$obj_type][$field_id];
280 }
281 if ($perm_def["bold"]) {
282 $new_sub[$field_id]["bold"] = (isset($_POST['bold'][$obj_type][$field_id]) && $_POST['bold'][$obj_type][$field_id]);
283 }
284 if ($perm_def["newline"]) {
285 $new_sub[$field_id]["newline"] = (isset($_POST['newline'][$obj_type][$field_id]) && $_POST['newline'][$obj_type][$field_id]);
286 }
287 }
288 }
289
290 if (sizeof($new_sub)) {
291 $new_sub = ilUtil::sortArray($new_sub, "pos", "asc", true, true);
292 foreach ($new_sub as $field_id => $field) {
293 $sub->appendSubstitution($field_id, $field["bold"], $field["newline"]);
294 }
295 }
296
297 $sub->update();
298 }
299
300
301 ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
302 $this->ctrl->redirect($this, "showPresentation");
303 }
static _getActivatedObjTypes()
get activated obj types
static sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray

References $_POST, $DIC, $obj_type, ilAdvancedMDRecord\_getActivatedObjTypes(), ilAdvancedMDSubstitution\_getInstanceByObjectType(), ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_FIELD_POSITIONS, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_SHOW_DESCRIPTION, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_SHOW_FIELDNAMES, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION, ilAdvancedMDFieldDefinition\getInstancesByObjType(), getPermissions(), getSubstitutionFieldPermissions(), and ilUtil\sortArray().

+ Here is the call graph for this function:

Field Documentation

◆ $ctrl

ilAdvancedMDSettingsGUI::$ctrl
protected

Definition at line 30 of file class.ilAdvancedMDSettingsGUI.php.

◆ $lng

ilAdvancedMDSettingsGUI::$lng
protected

Definition at line 28 of file class.ilAdvancedMDSettingsGUI.php.

Referenced by __construct().

◆ $logger

ilAdvancedMDSettingsGUI::$logger = null
private

Definition at line 41 of file class.ilAdvancedMDSettingsGUI.php.

◆ $mode

ilAdvancedMDSettingsGUI::$mode = null
private

Definition at line 25 of file class.ilAdvancedMDSettingsGUI.php.

◆ $obj_id

ilAdvancedMDSettingsGUI::$obj_id = null
protected

Definition at line 34 of file class.ilAdvancedMDSettingsGUI.php.

◆ $obj_type

ilAdvancedMDSettingsGUI::$obj_type = null
protected

Definition at line 35 of file class.ilAdvancedMDSettingsGUI.php.

Referenced by initFormSubstitutions(), and updateSubstitutions().

◆ $permissions

ilAdvancedMDSettingsGUI::$permissions
protected

Definition at line 32 of file class.ilAdvancedMDSettingsGUI.php.

Referenced by getPermissions().

◆ $ref_id

ilAdvancedMDSettingsGUI::$ref_id = null
protected

Definition at line 33 of file class.ilAdvancedMDSettingsGUI.php.

Referenced by loadRecordFormData().

◆ $sub_type

ilAdvancedMDSettingsGUI::$sub_type = null
protected

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

◆ $tabs

ilAdvancedMDSettingsGUI::$tabs
protected

Definition at line 31 of file class.ilAdvancedMDSettingsGUI.php.

◆ $tpl

ilAdvancedMDSettingsGUI::$tpl
protected

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

Referenced by __construct().

◆ MODE_ADMINISTRATION

const ilAdvancedMDSettingsGUI::MODE_ADMINISTRATION = 1

Definition at line 18 of file class.ilAdvancedMDSettingsGUI.php.

Referenced by __construct().

◆ MODE_OBJECT

const ilAdvancedMDSettingsGUI::MODE_OBJECT = 2

Definition at line 19 of file class.ilAdvancedMDSettingsGUI.php.

Referenced by __construct().


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