ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
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...
 

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...
 

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 }
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
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
global $DIC
Definition: saml.php:7

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 637 of file class.ilAdvancedMDSettingsGUI.php.

638 {
639 if (!isset($_POST['field_id'])) {
640 ilUtil::sendFailure($this->lng->txt('select_one'));
641 $this->editFields();
642 return false;
643 }
644
645 $this->ctrl->saveParameter($this, 'record_id');
646
647 include_once("Services/Utilities/classes/class.ilConfirmationGUI.php");
648 $c_gui = new ilConfirmationGUI();
649
650 // set confirm/cancel commands
651 $c_gui->setFormAction($this->ctrl->getFormAction($this, "deleteFields"));
652 $c_gui->setHeaderText($this->lng->txt("md_adv_delete_fields_sure"));
653 $c_gui->setCancel($this->lng->txt("cancel"), "editFields");
654 $c_gui->setConfirm($this->lng->txt("confirm"), "deleteFields");
655
656 // add items to delete
657 foreach ($_POST["field_id"] as $field_id) {
659 $c_gui->addItem("field_id[]", $field_id, $field->getTitle() ? $field->getTitle() : 'No Title');
660 }
661 $this->tpl->setContent($c_gui->getHTML());
662 }
$_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 }
$info
Definition: index.php:5
$files
Definition: metarefresh.php:49

References $_POST, $files, $info, 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 1075 of file class.ilAdvancedMDSettingsGUI.php.

1076 {
1077 if (!$_REQUEST["record_id"] || !$_REQUEST["ftype"]) {
1078 return $this->editFields();
1079 }
1080
1081 $this->ctrl->saveParameter($this, 'record_id');
1082 $this->ctrl->saveParameter($this, 'ftype');
1083
1084 if (!$a_form) {
1085 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
1086 $field_definition = ilAdvancedMDFieldDefinition::getInstance(null, $_REQUEST["ftype"]);
1087 $field_definition->setRecordId($_REQUEST["record_id"]);
1088 $a_form = $this->initFieldForm($field_definition);
1089 }
1090 $this->tpl->setContent($a_form->getHTML());
1091 }
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 880 of file class.ilAdvancedMDSettingsGUI.php.

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

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 671 of file class.ilAdvancedMDSettingsGUI.php.

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

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, $files, $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, $files, ilUtil\deliverFile(), ilUtil\sendFailure(), and showFiles().

+ Here is the call graph for this function:

◆ editField()

ilAdvancedMDSettingsGUI::editField ( ilPropertyFormGUI  $a_form = null)

Edit field.

@access public

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

1013 {
1014 if (!$_REQUEST["record_id"] || !$_REQUEST["field_id"]) {
1015 return $this->editFields();
1016 }
1017
1018 $this->ctrl->saveParameter($this, 'record_id');
1019 $this->ctrl->saveParameter($this, 'field_id');
1020
1021 if (!$a_form) {
1022 $field_definition = ilAdvancedMDFieldDefinition::getInstance((int) $_REQUEST['field_id']);
1023 $a_form = $this->initFieldForm($field_definition);
1024 }
1025 $this->tpl->setContent($a_form->getHTML());
1026 }

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 721 of file class.ilAdvancedMDSettingsGUI.php.

722 {
723 global $DIC;
724
725 $ilToolbar = $DIC['ilToolbar'];
726
727 $this->ctrl->saveParameter($this, 'record_id');
728 $this->initRecordObject();
729
730 $perm = $this->getPermissions()->hasPermissions(
732 $this->record->getRecordId(),
733 array(
736 )
737 );
738
739 $filter_warn = array();
741 // type selection
742 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
743 $types = new ilSelectInputGUI("", "ftype");
744 $options = array();
747 $options[$type] = $this->lng->txt($field->getTypeTitle());
748
749 if (!$field->isFilterSupported()) {
750 $filter_warn[] = $this->lng->txt($field->getTypeTitle());
751 }
752 }
753 $types->setOptions($options);
754 $ilToolbar->addInputItem($types);
755
756 $ilToolbar->setFormAction($this->ctrl->getFormAction($this, "createField"));
757
758 include_once "Services/UIComponent/Button/classes/class.ilSubmitButton.php";
759 $button = ilSubmitButton::getInstance();
760 $button->setCaption("add");
761 $button->setCommand("createField");
762 $ilToolbar->addButtonInstance($button);
763 }
764
765 // #17092
766 if (sizeof($filter_warn)) {
767 ilUtil::sendInfo(sprintf($this->lng->txt("md_adv_field_filter_warning"), implode(", ", $filter_warn)));
768 }
769
770 // show field table
771 include_once('./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
772 $fields = ilAdvancedMDFieldDefinition::getInstancesByRecordId($this->record->getRecordId());
773
774 include_once("./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldTableGUI.php");
776 $table_gui->setTitle($this->lng->txt("md_adv_field_table"));
777 $table_gui->parseDefinitions($fields);
778 if (sizeof($fields)) {
779 $table_gui->addCommandButton("updateFields", $this->lng->txt("save"));
780 }
781 $table_gui->addCommandButton("showRecords", $this->lng->txt('cancel'));
782 $table_gui->addMultiCommand("confirmDeleteFields", $this->lng->txt("delete"));
783 $table_gui->setSelectAllCheckbox("field_id");
784
785 $this->tpl->setContent($table_gui->getHTML());
786 }
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, PHPMailer\PHPMailer\$options, $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 713 of file class.ilAdvancedMDSettingsGUI.php.

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

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 1694 of file class.ilAdvancedMDSettingsGUI.php.

1695 {
1696 $res = array();
1697
1698 if ($this->mode == self::MODE_OBJECT) {
1699 $selected = ilAdvancedMDRecord::getObjRecSelection($this->obj_id, $this->sub_type);
1700 }
1701
1703 $orderings = new ilAdvancedMDRecordObjectOrderings();
1704 $records = $orderings->sortRecords($records, $this->obj_id);
1705
1706 $position = 0;
1707 foreach ($records as $record) {
1708 $parent_id = $record->getParentObject();
1709
1710 if ($this->mode == self::MODE_ADMINISTRATION) {
1711 if ($parent_id) {
1712 continue;
1713 }
1714 } else {
1715 // does not match current object
1716 if ($parent_id && $parent_id != $this->obj_id) {
1717 continue;
1718 }
1719
1720 // inactive records only in administration
1721 if (!$parent_id && !$record->isActive()) {
1722 continue;
1723 }
1724 // scope needs to match in object context
1725 if (
1727 $this->ref_id,
1728 $record->getScopes()
1729 )
1730 ) {
1731 continue;
1732 }
1733 }
1734
1735 $tmp_arr = array();
1736 $tmp_arr['id'] = $record->getRecordId();
1737 $tmp_arr['active'] = $record->isActive();
1738 $tmp_arr['title'] = $record->getTitle();
1739 $tmp_arr['description'] = $record->getDescription();
1740 $tmp_arr['fields'] = array();
1741 $tmp_arr['obj_types'] = $record->getAssignedObjectTypes();
1742 $position += 10;
1743 $tmp_arr['position'] = $position;
1744
1745 $tmp_arr['perm'] = $this->permissions->hasPermissions(
1747 $record->getRecordId(),
1748 array(
1754 )
1755 );
1756
1757 if ($this->obj_type) {
1758 $tmp_arr["readonly"] = !(bool) $parent_id;
1759 $tmp_arr["local"] = $parent_id;
1760
1761 // local records are never optional
1762 $assigned = $optional = false;
1763 foreach ($tmp_arr['obj_types'] as $idx => $item) {
1764 if ($item["obj_type"] == $this->obj_type &&
1765 $item["sub_type"] == $this->sub_type) {
1766 $assigned = true;
1767 $optional = $item["optional"];
1768 $tmp_arr['obj_types'][$idx]['context'] = true;
1769 break;
1770 }
1771 }
1772 if (!$assigned) {
1773 continue;
1774 }
1775 $tmp_arr['optional'] = $optional;
1776 if ($optional) {
1777 // in object context "active" means selected record
1778 $tmp_arr['active'] = in_array($record->getRecordId(), $selected);
1779 }
1780 }
1781
1782 $res[] = $tmp_arr;
1783 }
1784
1785 return $res;
1786 }
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
$records
Definition: simple_test.php:22

References $records, $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 1318 of file class.ilAdvancedMDSettingsGUI.php.

1319 {
1320 if ($a_obj_type == "crs") {
1321 $perm = $this->getPermissions()->hasPermissions(
1323 $a_field_id,
1324 array(
1330 )
1331 );
1332 return array(
1336 );
1337 } elseif ($a_obj_type == "cat") {
1338 $perm = $this->getPermissions()->hasPermissions(
1340 $a_field_id,
1341 array(
1347 )
1348 );
1349 return array(
1353 );
1354 } elseif ($a_obj_type == "sess") {
1355 $perm = $this->getPermissions()->hasPermissions(
1357 $a_field_id,
1358 array(
1364 )
1365 );
1366 return array(
1370 );
1371 } elseif ($a_obj_type == "grp") {
1372 $perm = $this->getPermissions()->hasPermissions(
1374 $a_field_id,
1375 array(
1381 )
1382 );
1383 return array(
1387 );
1388 } elseif ($a_obj_type == "iass") {
1389 $perm = $this->getPermissions()->hasPermissions(
1391 $a_field_id,
1392 array(
1398 )
1399 );
1400 return array(
1404 );
1405 }
1406 }

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_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_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 929 of file class.ilAdvancedMDSettingsGUI.php.

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

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

References initImportForm().

+ Here is the call graph for this function:

◆ initFieldForm()

ilAdvancedMDSettingsGUI::initFieldForm ( ilAdvancedMDFieldDefinition  $a_definition)
protected

init field form

@access protected

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

1130 {
1131 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1132
1133 $form = new ilPropertyFormGUI();
1134 $form->setFormAction($this->ctrl->getFormAction($this));
1135
1136 $type = new ilNonEditableValueGUI($this->lng->txt("type"));
1137 $type->setValue($this->lng->txt($a_definition->getTypeTitle()));
1138 $form->addItem($type);
1139
1140 $a_definition->addToFieldDefinitionForm($form, $this->getPermissions());
1141
1142 if (!$a_definition->getFieldId()) {
1143 $form->setTitle($this->lng->txt('md_adv_create_field'));
1144 $form->addCommandButton('saveField', $this->lng->txt('create'));
1145 } else {
1146 $form->setTitle($this->lng->txt('md_adv_edit_field'));
1147 $form->addCommandButton('updateField', $this->lng->txt('save'));
1148 }
1149
1150 $form->addCommandButton('editFields', $this->lng->txt('cancel'));
1151
1152 return $form;
1153 }
addToFieldDefinitionForm(ilPropertyFormGUI $a_form, ilAdvancedMDPermissionHelper $a_permissions)
Add input elements to definition form.
This class represents a non editable value in a property form.
This class represents a property form user interface.
if(isset($_POST['submit'])) $form

References $form, $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 1160 of file class.ilAdvancedMDSettingsGUI.php.

1161 {
1162 if (is_object($this->form)) {
1163 return true;
1164 }
1165
1166 $perm = $this->getPermissions()->hasPermissions(
1168 $this->record->getRecordId(),
1169 array(
1177 )
1178 );
1179
1180 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1181
1182 $this->form = new ilPropertyFormGUI();
1183 $this->form->setFormAction($this->ctrl->getFormAction($this));
1184
1185
1186 // title
1187 $title = new ilTextInputGUI($this->lng->txt('title'), 'title');
1188 $title->setValue($this->record->getTitle());
1189 $title->setSize(20);
1190 $title->setMaxLength(70);
1191 $title->setRequired(true);
1192 $this->form->addItem($title);
1193
1195 $title->setDisabled(true);
1196 }
1197
1198 // desc
1199 $desc = new ilTextAreaInputGUI($this->lng->txt('description'), 'desc');
1200 $desc->setValue($this->record->getDescription());
1201 $desc->setRows(3);
1202 $desc->setCols(50);
1203 $this->form->addItem($desc);
1204
1206 $desc->setDisabled(true);
1207 }
1208
1209 // active
1210 $check = new ilCheckboxInputGUI($this->lng->txt('md_adv_active'), 'active');
1211 $check->setChecked($this->record->isActive());
1212 $check->setValue(1);
1213 $this->form->addItem($check);
1214
1216 $check->setDisabled(true);
1217 }
1218
1219 if (!$this->obj_type) {
1220 // scope
1221 $scope = new ilCheckboxInputGUI($this->lng->txt('md_adv_scope'), 'scope');
1222 $scope->setChecked($this->record->enabledScope());
1223 $scope->setValue(1);
1224 $this->form->addItem($scope);
1225
1226 $subitems = new ilRepositorySelector2InputGUI($this->lng->txt("objects"), "scope_containers", true);
1227 $subitems->setValue($this->record->getScopeRefIds());
1228 $exp = $subitems->getExplorerGUI();
1229
1230 $definition = $GLOBALS['DIC']['objDefinition'];
1231 $white_list = [];
1232 foreach ($definition->getAllRepositoryTypes() as $type) {
1233 if ($definition->isContainer($type)) {
1234 $white_list[] = $type;
1235 }
1236 }
1237
1238
1239 $exp->setTypeWhiteList($white_list);
1240 $exp->setSkipRootNode(false);
1241 $exp->setRootId(ROOT_FOLDER_ID);
1242 $scope->addSubItem($subitems);
1243 }
1244
1245 if (!$this->obj_type) {
1247 $section->setTitle($this->lng->txt('md_obj_types'));
1248 $this->form->addItem($section);
1249
1250 // see ilAdvancedMDRecordTableGUI::fillRow()
1251 $options = array(
1252 0 => $this->lng->txt("meta_obj_type_inactive"),
1253 1 => $this->lng->txt("meta_obj_type_mandatory"),
1254 2 => $this->lng->txt("meta_obj_type_optional")
1255 );
1256
1257
1259 $t = $type["obj_type"] . ":" . $type["sub_type"];
1260 $this->lng->loadLanguageModule($type["obj_type"]);
1261
1262 $type_options = $options;
1263 switch ($type["obj_type"]) {
1264 case "orgu":
1265 // currently only optional records for org unit (types)
1266 unset($type_options[1]);
1267 break;
1268 case "prg":
1269 // currently only optional records for study programme (types)
1270 unset($type_options[1]);
1271 break;
1272 case "rcrs":
1273 // optional makes no sense for ecs-courses
1274 unset($type_options[2]);
1275 break;
1276 }
1277
1278 $value = 0;
1279 if ($a_mode == "edit") {
1280 foreach ($this->record->getAssignedObjectTypes() as $item) {
1281 if ($item["obj_type"] == $type["obj_type"] &&
1282 $item["sub_type"] == $type["sub_type"]) {
1283 $value = $item["optional"]
1284 ? 2
1285 : 1;
1286 }
1287 }
1288 }
1289
1290 $check = new ilSelectInputGUI($type["text"], 'obj_types[' . $t . ']');
1291 $check->setOptions($type_options);
1292 $check->setValue($value);
1293 $this->form->addItem($check);
1294
1296 $check->setDisabled(true);
1297 }
1298 }
1299 }
1300
1301 switch ($a_mode) {
1302 case 'create':
1303 $this->form->setTitle($this->lng->txt('md_adv_create_record'));
1304 $this->form->addCommandButton('saveRecord', $this->lng->txt('add'));
1305 $this->form->addCommandButton('showRecords', $this->lng->txt('cancel'));
1306
1307 return true;
1308
1309 case 'edit':
1310 $this->form->setTitle($this->lng->txt('md_adv_edit_record'));
1311 $this->form->addCommandButton('updateRecord', $this->lng->txt('save'));
1312 $this->form->addCommandButton('showRecords', $this->lng->txt('cancel'));
1313
1314 return true;
1315 }
1316 }
$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, PHPMailer\PHPMailer\$options, $section, $t, $title, $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 1413 of file class.ilAdvancedMDSettingsGUI.php.

1414 {
1415 global $DIC;
1416
1417 $ilAccess = $DIC['ilAccess'];
1418
1419 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1420
1421 if (!$visible_records = ilAdvancedMDRecord::_getAllRecordsByObjectType()) {
1422 return;
1423 }
1424
1425 $this->form = new ilPropertyFormGUI();
1426 $this->form->setFormAction($this->ctrl->getFormAction($this));
1427 #$this->form->setTableWidth('100%');
1428
1429 // substitution
1430 foreach ($visible_records as $obj_type => $records) {
1431 $perm = null;
1432 // :TODO: hardwird ?
1433 if (in_array($obj_type, ['crs','cat','sess','grp','iass'])) {
1434 $perm = $this->getPermissions()->hasPermissions(
1436 $obj_type,
1437 array(
1441 )
1442 );
1443 }
1444
1445 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDSubstitution.php');
1447
1448 // Show section
1450 $section->setTitle($this->lng->txt('objs_' . $obj_type));
1451 $this->form->addItem($section);
1452
1453 $check = new ilCheckboxInputGUI($this->lng->txt('description'), 'enabled_desc_' . $obj_type);
1454 $check->setValue(1);
1455 $check->setOptionTitle($this->lng->txt('md_adv_desc_show'));
1456 $check->setChecked($sub->isDescriptionEnabled() ? true : false);
1457 $this->form->addItem($check);
1458
1460 $check->setDisabled(true);
1461 }
1462
1463 $check = new ilCheckboxInputGUI($this->lng->txt('md_adv_field_names'), 'enabled_field_names_' . $obj_type);
1464 $check->setValue(1);
1465 $check->setOptionTitle($this->lng->txt('md_adv_fields_show'));
1466 $check->setChecked($sub->enabledFieldNames() ? true : false);
1467 $this->form->addItem($check);
1468
1470 $check->setDisabled(true);
1471 }
1472
1473 #$area = new ilTextAreaInputGUI($this->lng->txt('md_adv_substitution'),'substitution_'.$obj_type);
1474 #$area->setUseRte(true);
1475 #$area->setRteTagSet('standard');
1476 #$area->setValue(ilUtil::prepareFormOutput($sub->getSubstitutionString()));
1477 #$area->setRows(5);
1478 #$area->setCols(80);
1479 #$this->form->addItem($area);
1480
1481 if ($perm) {
1483 }
1484
1486 $definitions = $sub->sortDefinitions($definitions);
1487
1488 $counter = 1;
1489 foreach ($definitions as $def) {
1490 $definition_id = $def->getFieldId();
1491
1492 $perm = $this->getSubstitutionFieldPermissions($obj_type, $definition_id);
1493
1495 $title = $def->getTitle() . ' (' . $title . ')';
1496
1497 $check = new ilCheckboxInputGUI($title, 'show[' . $obj_type . '][' . $definition_id . ']');
1498 $check->setValue(1);
1499 $check->setOptionTitle($this->lng->txt('md_adv_show'));
1500 $check->setChecked($sub->isSubstituted($definition_id));
1501
1502 if ($perm && !$perm["show"]) {
1503 $check->setDisabled(true);
1504 }
1505
1506 $pos = new ilNumberInputGUI($this->lng->txt('position'), 'position[' . $obj_type . '][' . $definition_id . ']');
1507 $pos->setSize(3);
1508 $pos->setMaxLength(4);
1509 $pos->allowDecimals(true);
1510 $pos->setValue(sprintf('%.1f', $counter++));
1511 $check->addSubItem($pos);
1512
1513 if ($perm && !$perm_pos) {
1514 $pos->setDisabled(true);
1515 }
1516
1517 $bold = new ilCheckboxInputGUI($this->lng->txt('bold'), 'bold[' . $obj_type . '][' . $definition_id . ']');
1518 $bold->setValue(1);
1519 $bold->setChecked($sub->isBold($definition_id));
1520 $check->addSubItem($bold);
1521
1522 if ($perm && !$perm["bold"]) {
1523 $bold->setDisabled(true);
1524 }
1525
1526 $bold = new ilCheckboxInputGUI($this->lng->txt('newline'), 'newline[' . $obj_type . '][' . $definition_id . ']');
1527 $bold->setValue(1);
1528 $bold->setChecked($sub->hasNewline($definition_id));
1529 $check->addSubItem($bold);
1530
1531 if ($perm && !$perm["newline"]) {
1532 $bold->setDisabled(true);
1533 }
1534
1535
1536 $this->form->addItem($check);
1537 }
1538
1539
1540 // placeholder
1541 /*
1542 $custom = new ilCustomInputGUI($this->lng->txt('md_adv_placeholders'));
1543 $tpl = new ilTemplate('tpl.placeholder_info.html',true,true,'Services/AdvancedMetaData');
1544 foreach($records as $record)
1545 {
1546 foreach(ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record->getRecordId()) as $definition)
1547 {
1548 $tpl->setCurrentBlock('field');
1549 $tpl->setVariable('FIELD_NAME',$definition->getTitle());
1550 $tpl->setVariable('MODULE_VARS','[IF_F_'.$definition->getFieldId().']...[F_'.$definition->getFieldId().']'.
1551 '[/IF_F_'.$definition->getFieldId().']');
1552 $tpl->parseCurrentBlock();
1553 }
1554
1555 $tpl->setCurrentBlock('record');
1556 $tpl->setVariable('PLACEHOLDER_FOR',$this->lng->txt('md_adv_placeholder_for'));
1557 $tpl->setVariable('TITLE',$record->getTitle());
1558 $tpl->parseCurrentBlock();
1559 }
1560 $custom->setHTML($tpl->get());
1561 $this->form->addItem($custom);
1562 */
1563 }
1564 $this->form->setTitle($this->lng->txt('md_adv_substitution_table'));
1565
1566 if ($ilAccess->checkAccess('write', '', $_REQUEST["ref_id"])) {
1567 $this->form->addCommandButton('updateSubstitutions', $this->lng->txt('save'));
1568 }
1569
1570 return true;
1571 }
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.
$def
Definition: croninfo.php:21

References $def, $DIC, $obj_type, $records, $section, $title, 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 900 of file class.ilAdvancedMDSettingsGUI.php.

901 {
902 if (is_object($this->import_form)) {
903 return true;
904 }
905
906 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
907 $this->import_form = new ilPropertyFormGUI();
908 $this->import_form->setMultipart(true);
909 $this->import_form->setFormAction($this->ctrl->getFormAction($this));
910
911 // add file property
912 $file = new ilFileInputGUI($this->lng->txt('file'), 'file');
913 $file->setSuffixes(array('xml'));
914 $file->setRequired(true);
915 $this->import_form->addItem($file);
916
917 $this->import_form->setTitle($this->lng->txt('md_adv_import_record'));
918 $this->import_form->addCommandButton('importRecord', $this->lng->txt('import'));
919 $this->import_form->addCommandButton('showRecords', $this->lng->txt('cancel'));
920 }
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 1638 of file class.ilAdvancedMDSettingsGUI.php.

1639 {
1640 if (!is_object($this->record)) {
1641 $record_id = isset($_GET['record_id'])
1642 ? $_GET['record_id']
1643 : 0;
1644 $this->record = ilAdvancedMDRecord::_getInstanceByRecordId($record_id);
1645
1646 // bind to parent object (aka local adv md)
1647 if (!$record_id &&
1648 $this->obj_id) {
1649 $this->record->setParentObject($this->obj_id);
1650 }
1651 }
1652
1653 return $this->record;
1654 }
$_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 1578 of file class.ilAdvancedMDSettingsGUI.php.

1579 {
1580 $perm = $this->getPermissions()->hasPermissions(
1582 $this->record->getRecordId(),
1583 array(
1591 )
1592 );
1593
1595 $this->record->setActive(ilUtil::stripSlashes($_POST['active']));
1596 }
1598 $this->record->setTitle(ilUtil::stripSlashes($_POST['title']));
1599 }
1601 $this->record->setDescription(ilUtil::stripSlashes($_POST['desc']));
1602 }
1603
1604 if (!$this->obj_type) {
1606 $obj_types = array();
1607 if (is_array($_POST['obj_types'])) {
1608 foreach ($_POST['obj_types'] as $t => $value) {
1609 if ($value) {
1610 $t = explode(":", $t);
1611 $obj_types[] = array(
1612 "obj_type" => ilUtil::stripSlashes($t[0]),
1613 "sub_type" => ilUtil::stripSlashes($t[1]),
1614 "optional" => ($value > 1)
1615 );
1616 }
1617 }
1618 }
1619 $this->record->setAssignedObjectTypes($obj_types);
1620 }
1621 }
1622
1623 $scopes = [];
1624 foreach ((array) $_POST['scope_containers_sel'] as $ref_id) {
1625 $scope = new ilAdvancedMDRecordScope();
1626 $scope->setRefId($ref_id);
1627 $scopes[] = $scope;
1628 }
1629 $this->record->setScopes($_POST['scope'] ? $scopes : []);
1630 $this->record->enableScope($_POST['scope'] ? true : false);
1631 }
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, $t, 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 1098 of file class.ilAdvancedMDSettingsGUI.php.

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

References $form, 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 981 of file class.ilAdvancedMDSettingsGUI.php.

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

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 1661 of file class.ilAdvancedMDSettingsGUI.php.

1662 {
1663 $this->tabs_gui->clearSubTabs();
1664
1665 $this->tabs_gui->addSubTabTarget(
1666 "md_adv_record_list",
1667 $this->ctrl->getLinkTarget($this, "showRecords"),
1668 '',
1669 '',
1670 '',
1671 true
1672 );
1673
1674
1676 $this->tabs_gui->addSubTabTarget(
1677 "md_adv_presentation",
1678 $this->ctrl->getLinkTarget($this, "showPresentation")
1679 );
1680 }
1681
1682 $this->tabs_gui->addSubTabTarget(
1683 "md_adv_file_list",
1684 $this->ctrl->getLinkTarget($this, "showFiles"),
1685 "showFiles"
1686 );
1687 }

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 $files, and $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:

◆ updateField()

ilAdvancedMDSettingsGUI::updateField ( )

Update field.

@access public

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

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

References $form, 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 794 of file class.ilAdvancedMDSettingsGUI.php.

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

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 849 of file class.ilAdvancedMDSettingsGUI.php.

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

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

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 // :TODO: hardwired?
222 if (in_array($obj_type, ['cat','crs','sess','grp','iass'])) {
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, $def, $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: