ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
ilAdvancedMDSettingsGUI Class Reference
+ Collaboration diagram for ilAdvancedMDSettingsGUI:

Public Member Functions

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

Data Fields

const MODE_ADMINISTRATION = 1
 
const MODE_OBJECT = 2
 

Protected Member Functions

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

Protected Attributes

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

Private Attributes

 $mode = null
 
 $logger = null
 

Detailed Description

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 $ilCtrl
Definition: ilias.php:18
static _lookupObjId($a_id)
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
static _lookupType($a_id, $a_reference=false)
lookup object type
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

Member Function Documentation

◆ confirmDeleteFields()

ilAdvancedMDSettingsGUI::confirmDeleteFields ( )

show delete fields confirmation screen

public

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

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

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

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

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

Referenced by saveField().

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

References initForm(), and initRecordObject().

Referenced by importRecord(), and saveRecord().

883  {
884  $this->initRecordObject();
885  $this->initForm('create');
886  $this->tpl->setContent($this->form->getHTML());
887  return true;
888  }
+ 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 673 of file class.ilAdvancedMDSettingsGUI.php.

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

674  {
675  $this->ctrl->saveParameter($this, 'record_id');
676 
677  if (!isset($_POST['field_id'])) {
678  ilUtil::sendFailure($this->lng->txt('select_one'));
679  $this->editFields();
680  return false;
681  }
682 
683  // all fields have to be deletable
684  $fail = array();
685  foreach ($_POST['field_id'] as $field_id) {
686  if (!$this->getPermissions()->hasPermission(
688  $field_id,
690  )) {
691  $field = ilAdvancedMDFieldDefinition::getInstance($field_id);
692  $fail[] = $field->getTitle();
693  }
694  }
695  if ($fail) {
696  ilUtil::sendFailure($this->lng->txt('msg_no_perm_delete') . " " . implode(", ", $fail), true);
697  $this->ctrl->redirect($this, "editFields");
698  }
699 
700  foreach ($_POST["field_id"] as $field_id) {
701  $field = ilAdvancedMDFieldDefinition::getInstance($field_id);
702  $field->delete();
703  }
704  ilUtil::sendSuccess($this->lng->txt('md_adv_deleted_fields'), true);
705  $this->ctrl->redirect($this, "editFields");
706  }
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, $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  }
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
+ 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, 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  }
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:

◆ editComplexOption()

ilAdvancedMDSettingsGUI::editComplexOption ( ilPropertyFormGUI  $a_form = null)

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

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

1819  {
1820  $field_definition = ilAdvancedMDFieldDefinition::getInstance((int) $_REQUEST['field_id']);
1821  if (!$field_definition->hasComplexOptions()) {
1822  $this->ctrl->redirect($this, "editField");
1823  }
1824 
1825  if (!$a_form) {
1826  $a_form = $this->initComplexOptionForm($field_definition);
1827  }
1828 
1829  $this->tpl->setContent($a_form->getHTML());
1830  }
initComplexOptionForm(ilAdvancedMDFieldDefinition $a_def)
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
+ Here is the call graph for this function:

◆ editField()

ilAdvancedMDSettingsGUI::editField ( ilPropertyFormGUI  $a_form = null)

Edit field.

public

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

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

Referenced by updateField().

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

References $DIC, $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().

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

References initForm(), and initRecordObject().

Referenced by updateRecord().

716  {
717  $this->ctrl->saveParameter($this, 'record_id');
718  $this->initRecordObject();
719  $this->initForm('edit');
720  $this->tpl->setContent($this->form->getHTML());
721  }
+ 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  }
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
+ 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 1719 of file class.ilAdvancedMDSettingsGUI.php.

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

Referenced by showRecords(), and updateRecords().

1720  {
1721  $res = array();
1722 
1723  if ($this->mode == self::MODE_OBJECT) {
1724  $selected = ilAdvancedMDRecord::getObjRecSelection($this->obj_id, $this->sub_type);
1725  }
1726 
1727  $records = ilAdvancedMDRecord::_getRecords();
1728  $orderings = new ilAdvancedMDRecordObjectOrderings();
1729  $records = $orderings->sortRecords($records, $this->obj_id);
1730 
1731  $position = 0;
1732  foreach ($records as $record) {
1733  $parent_id = $record->getParentObject();
1734 
1735  if ($this->mode == self::MODE_ADMINISTRATION) {
1736  if ($parent_id) {
1737  continue;
1738  }
1739  } else {
1740  // does not match current object
1741  if ($parent_id && $parent_id != $this->obj_id) {
1742  continue;
1743  }
1744 
1745  // inactive records only in administration
1746  if (!$parent_id && !$record->isActive()) {
1747  continue;
1748  }
1749  // scope needs to match in object context
1750  if (
1752  $this->ref_id,
1753  $record->getScopes()
1754  )
1755  ) {
1756  continue;
1757  }
1758  }
1759 
1760  $tmp_arr = array();
1761  $tmp_arr['id'] = $record->getRecordId();
1762  $tmp_arr['active'] = $record->isActive();
1763  $tmp_arr['title'] = $record->getTitle();
1764  $tmp_arr['description'] = $record->getDescription();
1765  $tmp_arr['fields'] = array();
1766  $tmp_arr['obj_types'] = $record->getAssignedObjectTypes();
1767  $position += 10;
1768  $tmp_arr['position'] = $position;
1769 
1770  $tmp_arr['perm'] = $this->permissions->hasPermissions(
1772  $record->getRecordId(),
1773  array(
1779  )
1780  );
1781 
1782  if ($this->obj_type) {
1783  $tmp_arr["readonly"] = !(bool) $parent_id;
1784  $tmp_arr["local"] = $parent_id;
1785 
1786  // local records are never optional
1787  $assigned = $optional = false;
1788  foreach ($tmp_arr['obj_types'] as $idx => $item) {
1789  if ($item["obj_type"] == $this->obj_type &&
1790  $item["sub_type"] == $this->sub_type) {
1791  $assigned = true;
1792  $optional = $item["optional"];
1793  $tmp_arr['obj_types'][$idx]['context'] = true;
1794  break;
1795  }
1796  }
1797  if (!$assigned) {
1798  continue;
1799  }
1800  $tmp_arr['optional'] = $optional;
1801  if ($optional) {
1802  // in object context "active" means selected record
1803  $tmp_arr['active'] = in_array($record->getRecordId(), $selected);
1804  }
1805  }
1806 
1807  $res[] = $tmp_arr;
1808  }
1809 
1810  return $res;
1811  }
static _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
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 1327 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_EXERCISE_EDIT_FIELD_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_EXERCISE_SHOW_FIELD, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_GROUP_EDIT_FIELD_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_GROUP_SHOW_FIELD, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_IASS_EDIT_FIELD_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_IASS_SHOW_FIELD, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_SESSION_EDIT_FIELD_PROPERTY, ilAdvancedMDPermissionHelper\ACTION_SUBSTITUTION_SESSION_SHOW_FIELD, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_CATEGORY, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_COURSE, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_EXERCISE, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_GROUP, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_IASS, ilAdvancedMDPermissionHelper\CONTEXT_SUBSTITUTION_SESSION, getPermissions(), ilAdvancedMDPermissionHelper\SUBACTION_SUBSTITUTION_BOLD, and ilAdvancedMDPermissionHelper\SUBACTION_SUBSTITUTION_NEWLINE.

Referenced by initFormSubstitutions(), and updateSubstitutions().

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

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

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

References initImportForm().

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

◆ initComplexOptionForm()

ilAdvancedMDSettingsGUI::initComplexOptionForm ( ilAdvancedMDFieldDefinition  $a_def)
protected

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

Referenced by editComplexOption(), and updateComplexOption().

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

◆ initFieldForm()

ilAdvancedMDSettingsGUI::initFieldForm ( ilAdvancedMDFieldDefinition  $a_definition)
protected

init field form

protected

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

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

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

1139  {
1140  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1141 
1142  $form = new ilPropertyFormGUI();
1143  $form->setFormAction($this->ctrl->getFormAction($this));
1144 
1145  $type = new ilNonEditableValueGUI($this->lng->txt("type"));
1146  $type->setValue($this->lng->txt($a_definition->getTypeTitle()));
1147  $form->addItem($type);
1148 
1149  $a_definition->addToFieldDefinitionForm($form, $this->getPermissions());
1150 
1151  if (!$a_definition->getFieldId()) {
1152  $form->setTitle($this->lng->txt('md_adv_create_field'));
1153  $form->addCommandButton('saveField', $this->lng->txt('create'));
1154  } else {
1155  $form->setTitle($this->lng->txt('md_adv_edit_field'));
1156  $form->addCommandButton('updateField', $this->lng->txt('save'));
1157  }
1158 
1159  $form->addCommandButton('editFields', $this->lng->txt('cancel'));
1160 
1161  return $form;
1162  }
This class represents a property form user interface.
$type
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 1169 of file class.ilAdvancedMDSettingsGUI.php.

References $GLOBALS, $section, $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().

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

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

Referenced by showPresentation().

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

References ilFileInputGUI\setSuffixes().

Referenced by importRecord(), and importRecords().

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

References $_GET, and ilAdvancedMDRecord\_getInstanceByRecordId().

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

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

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

Referenced by saveRecord(), and updateRecord().

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

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

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

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

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

References ilAdvancedMDRecord\_getAllRecordsByObjectType().

Referenced by executeCommand().

1687  {
1688  $this->tabs_gui->clearSubTabs();
1689 
1690  $this->tabs_gui->addSubTabTarget(
1691  "md_adv_record_list",
1692  $this->ctrl->getLinkTarget($this, "showRecords"),
1693  '',
1694  '',
1695  '',
1696  true
1697  );
1698 
1699 
1701  $this->tabs_gui->addSubTabTarget(
1702  "md_adv_presentation",
1703  $this->ctrl->getLinkTarget($this, "showPresentation")
1704  );
1705  }
1706 
1707  $this->tabs_gui->addSubTabTarget(
1708  "md_adv_file_list",
1709  $this->ctrl->getLinkTarget($this, "showFiles"),
1710  "showFiles"
1711  );
1712  }
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 $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  }
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
+ 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  }
getParsedRecordObjects()
Get and cache record objects.
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateComplexOption()

ilAdvancedMDSettingsGUI::updateComplexOption ( )

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

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

1852  {
1853  $field_definition = ilAdvancedMDFieldDefinition::getInstance((int) $_REQUEST['field_id']);
1854  if ($field_definition->hasComplexOptions()) {
1855  $form = $this->initComplexOptionForm($field_definition);
1856  if ($form->checkInput() &&
1857  $field_definition->updateComplexOption($form, $_REQUEST["oid"])) {
1858  $field_definition->update();
1859  ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
1860  }
1861  }
1862 
1863  $this->ctrl->redirect($this, "editField");
1864  }
initComplexOptionForm(ilAdvancedMDFieldDefinition $a_def)
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
+ Here is the call graph for this function:

◆ updateField()

ilAdvancedMDSettingsGUI::updateField ( )

Update field.

public

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

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

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

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

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

852  {
853  if (!isset($_GET['record_id']) or !$_GET['record_id']) {
854  ilUtil::sendFailure($this->lng->txt('select_one'));
855  $this->showRecords();
856  return false;
857  }
858  $this->initRecordObject();
859  $this->loadRecordFormData();
860 
861  $this->logger->dump($_POST);
862 
863  if (!$this->record->validate()) {
864  ilUtil::sendFailure($this->lng->txt('fill_out_all_required_fields'));
865  $this->editRecord();
866  return false;
867  }
868  $this->record->update();
869  ilUtil::sendSuccess($this->lng->txt('settings_saved'));
870  $this->showRecords();
871  return true;
872  }
$_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, SORT_NUMERIC);
555 
556  $sorted_positions = [];
557  $i = 1;
558  foreach ($positions as $record_id => $pos) {
559  $sorted_positions[$record_id] = $i++;
560  }
561 
562  $this->logger->dump($sorted_positions);
563 
564  $selected_global = array();
565  foreach ($this->getParsedRecordObjects() as $item) {
566  $perm = $this->getPermissions()->hasPermissions(
568  $item['id'],
569  array(
573  )
574  );
575 
576  if ($this->mode == self::MODE_ADMINISTRATION) {
577  $record_obj = ilAdvancedMDRecord::_getInstanceByRecordId($item['id']);
578 
580  $obj_types = array();
581  if (is_array($_POST['obj_types'][$record_obj->getRecordId()])) {
582  foreach ($_POST['obj_types'][$record_obj->getRecordId()] as $type => $status) {
583  if ($status) {
584  $type = explode(":", $type);
585  $obj_types[] = array(
586  "obj_type" => ilUtil::stripSlashes($type[0]),
587  "sub_type" => ilUtil::stripSlashes($type[1]),
588  "optional" => ((int) $status == 2)
589  );
590  }
591  }
592  }
593  $record_obj->setAssignedObjectTypes($obj_types);
594  }
595 
597  $record_obj->setActive(isset($_POST['active'][$record_obj->getRecordId()]));
598  }
599 
600  $record_obj->setGlobalPosition((int) $sorted_positions[$record_obj->getRecordId()]);
601  $record_obj->update();
602  } elseif ($perm[ilAdvancedMDPermissionHelper::ACTION_RECORD_TOGGLE_ACTIVATION]) {
603  // global, optional record
604  if ($item['readonly'] &&
605  $item['optional'] &&
606  $_POST['active'][$item['id']]) {
607  $selected_global[] = $item['id'];
608  } elseif ($item['local']) {
609  $record_obj = ilAdvancedMDRecord::_getInstanceByRecordId($item['id']);
610  $record_obj->setActive(isset($_POST['active'][$item['id']]));
611  $record_obj->update();
612  }
613  }
614 
615  // save local sorting
616  if ($this->mode == self::MODE_OBJECT) {
617  global $DIC;
618 
619  $local_position = new \ilAdvancedMDRecordObjectOrdering($item['id'], $this->obj_id, $DIC->database());
620  $local_position->setPosition((int) $sorted_positions[$item['id']]);
621  $local_position->save();
622  }
623  }
624 
625  if ($this->obj_type) {
626  ilAdvancedMDRecord::saveObjRecSelection($this->obj_id, $this->sub_type, $selected_global);
627  }
628 
629  ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
630  $this->ctrl->redirect($this, "showRecords");
631  }
$type
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
$DIC
Definition: xapitoken.php:46
$_POST["username"]
$i
Definition: metadata.php:24
+ 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, $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 
222  if (in_array($obj_type, $this->permissions->getAllowedObjectTypes())) {
223  $perm = $this->getPermissions()->hasPermissions(
225  $obj_type,
226  array(
230  )
231  );
232  }
233 
234  include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDSubstitution.php');
236 
238  $sub->enableDescription($_POST['enabled_desc_' . $obj_type]);
239  }
240 
242  $sub->enableFieldNames((int) $_POST['enabled_field_names_' . $obj_type]);
243  }
244 
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
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)
$DIC
Definition: xapitoken.php:46
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: