ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilBiblAdminFieldGUI.php
Go to the documentation of this file.
1<?php
2
8abstract class ilBiblAdminFieldGUI
9{
10 use \ILIAS\Modules\OrgUnit\ARHelper\DIC;
11
12 const CMD_INIT_DEFAULT_FIELDS_AND_SORTING = 'initDefaultFieldsAndSorting';
13 const SUBTAB_RIS = 'subtab_ris';
14 const SUBTAB_BIBTEX = 'subtab_bibtex';
15 const FIELD_IDENTIFIER = 'field_id';
16 const DATA_TYPE = 'data_type';
17 const CMD_STANDARD = 'index';
18 const CMD_CANCEL = 'cancel';
19 const CMD_EDIT = 'edit';
20 const CMD_UPDATE = 'update';
21 const CMD_APPLY_FILTER = 'applyFilter';
22 const CMD_RESET_FILTER = 'resetFilter';
23 const CMD_SAVE = 'save';
27 protected $facade;
28
34 {
35 $this->facade = $facade;
36 }
37
38 public function executeCommand()
39 {
40 $nextClass = $this->ctrl()->getNextClass();
41 $this->tabs()->activateTab(ilObjBibliographicAdminGUI::TAB_FIELDS);
42 switch ($nextClass) {
43 case strtolower(ilBiblTranslationGUI::class):
44 $this->tabs()->clearTargets();
45 $target = $this->ctrl()->getLinkTarget($this);
46 $this->tabs()->setBackTarget($this->lng()->txt('back'), $target);
47
48 $field_id = $this->http()->request()->getQueryParams()[self::FIELD_IDENTIFIER];
49 if (!$field_id) {
50 throw new ilException("Field not found");
51 }
52 $this->ctrl()->saveParameter($this, self::FIELD_IDENTIFIER);
53 $field = $this->facade->fieldFactory()->findById($field_id);
54
55 $gui = new ilBiblTranslationGUI($this->facade, $field);
56 $this->ctrl()->forwardCommand($gui);
57 break;
58
59 default:
60 $this->performCommand();
61 }
62 }
63
64 protected function performCommand() : void
65 {
66 $cmd = $this->ctrl()->getCmd(self::CMD_STANDARD);
67 switch ($cmd) {
69 if ($this->checkPermissionBoolAndReturn('read')) {
70 $this->{$cmd}();
71 }
72 break;
73 case self::CMD_EDIT:
75 case self::CMD_SAVE:
78 if ($this->checkPermissionBoolAndReturn('write')) {
79 $this->{$cmd}();
80 }
81 break;
82 }
83 }
84
85 protected function index() : void
86 {
87 $this->setSubTabs();
88
89 $table = new ilBiblAdminFieldTableGUI($this, $this->facade);
90 $this->tpl()->setContent($table->getHTML());
91 }
92
93 protected function setSubTabs() : void
94 {
95 $this->tabs()->addSubTab(
96 self::SUBTAB_RIS,
97 $this->lng()->txt('ris'),
98 $this->ctrl()->getLinkTargetByClass(
99 array(
100 ilObjBibliographicAdminGUI::class,
101 ilBiblAdminRisFieldGUI::class,
102 ),
104 )
105
106 );
107 $this->tabs()->activateSubTab(self::SUBTAB_RIS);
108
109 $this->tabs()->addSubTab(
110 self::SUBTAB_BIBTEX,
111 $this->lng()->txt('bibtex'),
112 $this->ctrl()->getLinkTargetByClass(
113 array(
114 ilObjBibliographicAdminGUI::class,
115 ilBiblAdminBibtexFieldGUI::class,
116 ),
118 )
119 );
120 switch ($this->facade->type()->getId()) {
122 $this->tabs()->activateSubTab(self::SUBTAB_BIBTEX);
123 break;
125 $this->tabs()->activateSubTab(self::SUBTAB_RIS);
126 break;
127 }
128 }
129
130 protected function save() : void
131 {
132 foreach ($_POST['position'] as $set) {
133 $field_id = (int) key($set);
134 $position = (int) current($set);
135
136 $ilBiblField = $this->facade->fieldFactory()->findById($field_id);
137 $ilBiblField->setPosition($position);
138 $ilBiblField->store();
139 }
140
141 ilUtil::sendSuccess($this->lng()->txt('changes_successfully_saved'));
142 $this->ctrl()->redirect($this, self::CMD_STANDARD);
143 }
144
145 protected function applyFilter() : void
146 {
147 $ilBiblAdminFieldTableGUI = new ilBiblAdminFieldTableGUI($this, $this->facade);
148 $ilBiblAdminFieldTableGUI->writeFilterToSession();
149 $this->ctrl()->redirect($this, self::CMD_STANDARD);
150 }
151
152 protected function resetFilter() : void
153 {
154 $ilBiblAdminFieldTableGUI = new ilBiblAdminFieldTableGUI($this, $this->facade);
155 $ilBiblAdminFieldTableGUI->resetFilter();
156 $ilBiblAdminFieldTableGUI->resetOffset();
157 $this->ctrl()->redirect($this, self::CMD_STANDARD);
158 }
159}
$_POST["username"]
An exception for terminatinating execution or to throw for unit testing.
Class ilBiblAdminFieldGUI.
__construct(ilBiblAdminFactoryFacadeInterface $facade)
ilBiblAdminFieldGUI constructor.
Class ilBiblAdminFieldTableGUI.
Class ilBiblTranslationGUI.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static http()
Fetches the global http state from ILIAS.