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

Constructor & Destructor Documentation

◆ __construct()

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

Constructor.

public

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

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

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.
global $DIC
Definition: saml.php:7
global $ilCtrl
Definition: ilias.php:18
static _lookupObjId($a_id)
static _lookupType($a_id, $a_reference=false)
lookup object type
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
+ Here is the call graph for this function:

Member Function Documentation

◆ confirmDeleteFields()

ilAdvancedMDSettingsGUI::confirmDeleteFields ( )

show delete fields confirmation screen

public

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

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

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) {
658  $field = ilAdvancedMDFieldDefinition::getInstance($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  }
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
Confirmation screen class.
+ Here is the call graph for this function:

◆ confirmDeleteFiles()

ilAdvancedMDSettingsGUI::confirmDeleteFiles ( )

confirm delete files

public

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

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

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  }
$files
Definition: metarefresh.php:49
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$info
Definition: index.php:5
$_POST["username"]
Confirmation screen class.
+ Here is the call graph for this function:

◆ confirmDeleteRecords()

ilAdvancedMDSettingsGUI::confirmDeleteRecords ( )

Confirm delete.

public

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

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

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.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
Confirmation screen class.
+ Here is the call graph for this function:

◆ createField()

ilAdvancedMDSettingsGUI::createField ( ilPropertyFormGUI  $a_form = null)

Show field type selection.

public

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

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

Referenced by saveField().

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  }
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
initFieldForm(ilAdvancedMDFieldDefinition $a_definition)
init field form
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createRecord()

ilAdvancedMDSettingsGUI::createRecord ( )

Show.

public

Parameters

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

References initForm(), and initRecordObject().

Referenced by importRecord(), and saveRecord().

881  {
882  $this->initRecordObject();
883  $this->initForm('create');
884  $this->tpl->setContent($this->form->getHTML());
885  return true;
886  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteFields()

ilAdvancedMDSettingsGUI::deleteFields ( )

delete fields

public

Parameters

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

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

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  )) {
689  $field = ilAdvancedMDFieldDefinition::getInstance($field_id);
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) {
699  $field = ilAdvancedMDFieldDefinition::getInstance($field_id);
700  $field->delete();
701  }
702  ilUtil::sendSuccess($this->lng->txt('md_adv_deleted_fields'), true);
703  $this->ctrl->redirect($this, "editFields");
704  }
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
+ Here is the call graph for this function:

◆ deleteFiles()

ilAdvancedMDSettingsGUI::deleteFiles ( )

Delete files.

public

Parameters

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

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

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  }
$files
Definition: metarefresh.php:49
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
+ Here is the call graph for this function:

◆ deleteRecords()

ilAdvancedMDSettingsGUI::deleteRecords ( )

Permanently delete records.

public

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

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

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  }
static _getInstanceByRecordId($a_record_id)
Get instance by record id.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
+ Here is the call graph for this function:

◆ downloadFile()

ilAdvancedMDSettingsGUI::downloadFile ( )

Download XML file.

public

Parameters

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

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

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  }
$files
Definition: metarefresh.php:49
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
+ Here is the call graph for this function:

◆ editField()

ilAdvancedMDSettingsGUI::editField ( ilPropertyFormGUI  $a_form = null)

Edit field.

public

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

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

Referenced by updateField().

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  }
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
initFieldForm(ilAdvancedMDFieldDefinition $a_definition)
init field form
+ 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.

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

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

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();
746  $field = ilAdvancedMDFieldDefinition::getInstance(null, $type);
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");
775  $table_gui = new ilAdvancedMDFieldTableGUI($this, "editRecord", $this->getPermissions(), $perm[ilAdvancedMDPermissionHelper::ACTION_RECORD_FIELD_POSITIONS]);
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  }
This class represents a selection list property in a property form.
$type
global $DIC
Definition: saml.php:7
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getInstancesByRecordId($a_record_id, $a_only_searchable=false)
Get definitions by record id.
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
static getValidTypes()
Get all valid types.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ editRecord()

ilAdvancedMDSettingsGUI::editRecord ( )

Edit one record.

public

Parameters

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

References initForm(), and initRecordObject().

Referenced by updateRecord().

714  {
715  $this->ctrl->saveParameter($this, 'record_id');
716  $this->initRecordObject();
717  $this->initForm('edit');
718  $this->tpl->setContent($this->form->getHTML());
719  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

ilAdvancedMDSettingsGUI::executeCommand ( )

Execute command.

public

Parameters

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

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

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  }
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
+ Here is the call graph for this function:

◆ exportRecords()

ilAdvancedMDSettingsGUI::exportRecords ( )

Export records.

public

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

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

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  }
static _getInstanceByRecordId($a_record_id)
Get instance by record id.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
+ Here is the call graph for this function:

◆ getParsedRecordObjects()

ilAdvancedMDSettingsGUI::getParsedRecordObjects ( )
protected

Get and cache record objects.

protected

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

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

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 _getRecords()
Get records.
$records
Definition: simple_test.php:22
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
static getObjRecSelection($a_obj_id, $a_sub_type="")
Get repository object record selection.
+ 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.

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

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  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ importRecord()

ilAdvancedMDSettingsGUI::importRecord ( )

import xml file

public

Parameters

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

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

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  }
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$parser
Definition: BPMN2Parser.php:23
SAX based XML parser for record import files.
+ Here is the call graph for this function:

◆ importRecords()

ilAdvancedMDSettingsGUI::importRecords ( )

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

References initImportForm().

889  {
890  // Import Table
891  $this->initImportForm();
892  $this->tpl->setContent($this->import_form->getHTML());
893  }
+ Here is the call graph for this function:

◆ initFieldForm()

ilAdvancedMDSettingsGUI::initFieldForm ( ilAdvancedMDFieldDefinition  $a_definition)
protected

init field form

protected

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

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

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

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  }
This class represents a property form user interface.
$type
if(isset($_POST['submit'])) $form
addToFieldDefinitionForm(ilPropertyFormGUI $a_form, ilAdvancedMDPermissionHelper $a_permissions)
Add input elements to definition form.
This class represents a non editable value in a property form.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initForm()

ilAdvancedMDSettingsGUI::initForm (   $a_mode)
protected

Init Form.

protected

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

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(), ilCheckboxInputGUI\setChecked(), ilExplorerSelectInputGUI\setValue(), ilTextAreaInputGUI\setValue(), ilAdvancedMDPermissionHelper\SUBACTION_RECORD_DESCRIPTION, ilAdvancedMDPermissionHelper\SUBACTION_RECORD_OBJECT_TYPES, and ilAdvancedMDPermissionHelper\SUBACTION_RECORD_TITLE.

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

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  }
This class represents a selection list property in a property form.
This class represents a property form user interface.
$type
This class represents a section header in a property form.
setValue($a_value)
Set Value.
This class represents a checkbox property in a property form.
$section
Definition: Utf8Test.php:83
setChecked($a_checked)
Set Checked.
This class represents a text property in a property form.
static _getAssignableObjectTypes($a_include_text=false)
Get assignable object type.
This class represents a text area property in a property form.
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFormSubstitutions()

ilAdvancedMDSettingsGUI::initFormSubstitutions ( )
protected

init form table 'substitutions'

protected

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

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(), getSubstitutionFieldPermissions(), ilNumberInputGUI\setSize(), and ilCheckboxInputGUI\setValue().

Referenced by showPresentation().

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 
1494  $title = ilAdvancedMDRecord::_lookupTitle($def->getRecordId());
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  }
This class represents a property form user interface.
global $DIC
Definition: saml.php:7
This class represents a section header in a property form.
getSubstitutionFieldPermissions($a_obj_type, $a_field_id)
This class represents a checkbox property in a property form.
$records
Definition: simple_test.php:22
static _getInstanceByObjectType($a_type)
Singleton: use this method to get an instance.
$section
Definition: Utf8Test.php:83
This class represents a number property in a property form.
static getInstancesByObjType($a_obj_type, $a_active_only=true)
setValue($a_value)
Set Value.
static _getAllRecordsByObjectType()
Get records by obj_type Note: this returns only records with no sub types! public.
static _lookupTitle($a_record_id)
Lookup title.
setSize($a_size)
Set Size.
$def
Definition: croninfo.php:21
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initImportForm()

ilAdvancedMDSettingsGUI::initImportForm ( )
protected

show import form

protected

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

References ilFileInputGUI\setSuffixes().

Referenced by importRecord(), and importRecords().

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 property form user interface.
This class represents a file property in a property form.
setSuffixes($a_suffixes)
Set Accepted Suffixes.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initRecordObject()

ilAdvancedMDSettingsGUI::initRecordObject ( )
protected

Init record object.

protected

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

References $_GET, and ilAdvancedMDRecord\_getInstanceByRecordId().

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

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"]
static _getInstanceByRecordId($a_record_id)
Get instance by record id.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ loadRecordFormData()

ilAdvancedMDSettingsGUI::loadRecordFormData ( )
protected

load record form data

protected

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

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

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
$_POST["username"]
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveField()

ilAdvancedMDSettingsGUI::saveField ( )

create field

public

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

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

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  }
if(isset($_POST['submit'])) $form
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
createField(ilPropertyFormGUI $a_form=null)
Show field type selection.
initFieldForm(ilAdvancedMDFieldDefinition $a_definition)
init field form
+ Here is the call graph for this function:

◆ saveRecord()

ilAdvancedMDSettingsGUI::saveRecord ( )

Save record.

public

Parameters

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

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

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  }
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
loadRecordFormData()
load record form data
+ Here is the call graph for this function:

◆ setSubTabs()

ilAdvancedMDSettingsGUI::setSubTabs ( )
protected

Set sub tabs.

protected

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

References ilAdvancedMDRecord\_getAllRecordsByObjectType().

Referenced by executeCommand().

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  }
static _getAllRecordsByObjectType()
Get records by obj_type Note: this returns only records with no sub types! public.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showFiles()

ilAdvancedMDSettingsGUI::showFiles ( )

show export files

public

Parameters

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

References $files, and $GLOBALS.

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

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  }
$files
Definition: metarefresh.php:49
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
+ Here is the caller graph for this function:

◆ showPresentation()

ilAdvancedMDSettingsGUI::showPresentation ( )

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

References initFormSubstitutions(), and showRecords().

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'
+ Here is the call graph for this function:

◆ showRecords()

ilAdvancedMDSettingsGUI::showRecords ( )

show record list

public

Parameters

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

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

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 
165  if ($perm[ilAdvancedMDPermissionHelper::ACTION_MD_IMPORT_RECORDS]) {
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  }
global $DIC
Definition: saml.php:7
getParsedRecordObjects()
Get and cache record objects.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateField()

ilAdvancedMDSettingsGUI::updateField ( )

Update field.

public

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

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

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  }
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if(isset($_POST['submit'])) $form
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
editField(ilPropertyFormGUI $a_form=null)
Edit field.
initFieldForm(ilAdvancedMDFieldDefinition $a_definition)
init field form
+ Here is the call graph for this function:

◆ updateFields()

ilAdvancedMDSettingsGUI::updateFields ( )

Update fields.

public

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

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.

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  }
$_GET["client_id"]
static getInstancesByRecordId($a_record_id, $a_only_searchable=false)
Get definitions by record id.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
+ Here is the call graph for this function:

◆ updateRecord()

ilAdvancedMDSettingsGUI::updateRecord ( )

Update record.

public

Parameters

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

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

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  }
$_GET["client_id"]
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
loadRecordFormData()
load record form data
+ Here is the call graph for this function:

◆ updateRecords()

ilAdvancedMDSettingsGUI::updateRecords ( )

Save records (assigned object typed)

public

Parameters

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

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.

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();
600  } elseif ($perm[ilAdvancedMDPermissionHelper::ACTION_RECORD_TOGGLE_ACTIVATION]) {
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  }
$type
global $DIC
Definition: saml.php:7
getParsedRecordObjects()
Get and cache record objects.
static saveObjRecSelection($a_obj_id, $a_sub_type="", array $a_records=null, $a_delete_before=true)
Save repository object record selection.
static _getInstanceByRecordId($a_record_id)
Get instance by record id.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
$i
Definition: disco.tpl.php:19
$_POST["username"]
+ Here is the call graph for this function:

◆ updateSubstitutions()

ilAdvancedMDSettingsGUI::updateSubstitutions ( )

Update substitution.

public

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

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

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 
245  $definitions = ilAdvancedMDFieldDefinition::getInstancesByObjType($obj_type);
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 sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
global $DIC
Definition: saml.php:7
getSubstitutionFieldPermissions($a_obj_type, $a_field_id)
static _getInstanceByObjectType($a_type)
Singleton: use this method to get an instance.
static getInstancesByObjType($a_obj_type, $a_active_only=true)
$def
Definition: croninfo.php:21
static _getActivatedObjTypes()
get activated obj types
$_POST["username"]
+ 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.

◆ MODE_OBJECT

const ilAdvancedMDSettingsGUI::MODE_OBJECT = 2

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


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