ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilBiblAdminFieldGUI.php
Go to the documentation of this file.
1 <?php
2 
8 abstract 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) {
68  case self::CMD_STANDARD:
69  if ($this->checkPermissionBoolAndReturn('read')) {
70  $this->{$cmd}();
71  }
72  break;
73  case self::CMD_EDIT:
74  case self::CMD_UPDATE:
75  case self::CMD_SAVE:
76  case self::CMD_APPLY_FILTER:
77  case self::CMD_RESET_FILTER:
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 }
Class ilBiblTranslationGUI.
Class ilBiblAdminFieldGUI.
static http()
Fetches the global http state from ILIAS.
Class ilBiblAdminFieldTableGUI.
__construct(ilBiblAdminFactoryFacadeInterface $facade)
ilBiblAdminFieldGUI constructor.
$_POST["username"]