ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilSystemStyleConfigGUI Class Reference
+ Collaboration diagram for ilSystemStyleConfigGUI:

Public Member Functions

 __construct (ilCtrl $ctrl, ilLanguage $lng, ilGlobalTemplateInterface $tpl, ilTabsGUI $tabs, Factory $ui_factory, Renderer $renderer, ilSkinFactory $skin_factory, WrapperFactory $request_wrapper, Refinery $refinery, ilToolbarGUI $toolbar, ilObjUser $user, ServerRequestInterface $request, ilTree $tree, string $skin_id, string $style_id)
 
 executeCommand ()
 

Protected Member Functions

 setSubStyleSubTabs (string $active='')
 
 edit ()
 
 save ()
 
 handleStyleActivation (?array $activation_values, string $skin_id, string $style_id, ilSystemStyleMessageStack $message_stack)
 
 editSystemStyleForm ()
 

Protected Attributes

ilCtrl $ctrl
 
ilLanguage $lng
 
ilGlobalTemplateInterface $tpl
 
ilTabsGUI $tabs
 
Factory $ui_factory
 
Renderer $renderer
 
ilSkinFactory $skin_factory
 
WrapperFactory $request_wrapper
 
Refinery $refinery
 
ilToolbarGUI $toolbar
 
ilObjUser $user
 
ilTree $tree
 
ServerRequestInterface $request
 
string $style_id
 
ilSkinStyleContainer $style_container
 
ilSystemStyleMessageStack $message_stack
 

Detailed Description

Definition at line 28 of file class.ilSystemStyleConfigGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilSystemStyleConfigGUI::__construct ( ilCtrl  $ctrl,
ilLanguage  $lng,
ilGlobalTemplateInterface  $tpl,
ilTabsGUI  $tabs,
Factory  $ui_factory,
Renderer  $renderer,
ilSkinFactory  $skin_factory,
WrapperFactory  $request_wrapper,
Refinery  $refinery,
ilToolbarGUI  $toolbar,
ilObjUser  $user,
ServerRequestInterface  $request,
ilTree  $tree,
string  $skin_id,
string  $style_id 
)

Definition at line 47 of file class.ilSystemStyleConfigGUI.php.

References $ctrl, $lng, $refinery, $renderer, $request, $request_wrapper, $skin_factory, $style_id, $tabs, $toolbar, $tpl, $tree, $ui_factory, $user, ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), ILIAS\Repository\tabs(), ILIAS\Repository\toolbar(), and ILIAS\Repository\user().

63  {
64  $this->ctrl = $ctrl;
65  $this->lng = $lng;
66  $this->tpl = $tpl;
67  $this->tabs = $tabs;
68  $this->ui_factory = $ui_factory;
69  $this->skin_factory = $skin_factory;
70  $this->request_wrapper = $request_wrapper;
71  $this->refinery = $refinery;
72  $this->toolbar = $toolbar;
73  $this->tree = $tree;
74  $this->style_id = $style_id;
75  $this->renderer = $renderer;
76  $this->user = $user;
77  $this->request = $request;
78  $this->message_stack = new ilSystemStyleMessageStack($this->tpl);
79 
80  $this->style_container = $this->skin_factory->skinStyleContainerFromId($skin_id, $this->message_stack);
81  }
ilGlobalTemplateInterface $tpl
Used to stack messages to be shown to the user.
+ Here is the call graph for this function:

Member Function Documentation

◆ edit()

ilSystemStyleConfigGUI::edit ( )
protected

Definition at line 147 of file class.ilSystemStyleConfigGUI.php.

References editSystemStyleForm().

Referenced by executeCommand().

147  : void
148  {
149  $form = $this->editSystemStyleForm();
150  $this->tpl->setContent($this->renderer->render($form));
151  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ editSystemStyleForm()

ilSystemStyleConfigGUI::editSystemStyleForm ( )
protected
Exceptions
ilSystemStyleException

Definition at line 278 of file class.ilSystemStyleConfigGUI.php.

References Vendor\Package\$f, ilSystemStyleSettings\_lookupActivatedStyle(), ILIAS\Repository\ctrl(), ilSystemStyleSettings\getCurrentDefaultSkin(), ilSystemStyleSettings\getCurrentDefaultStyle(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), ILIAS\Repository\user(), ILIAS\UI\Implementation\Component\Input\ViewControl\withAdditionalTransformation(), and ILIAS\UI\Implementation\Component\Input\withValue().

Referenced by edit(), and save().

278  : Form
279  {
280  $f = $this->ui_factory->input();
281  $skin = $this->style_container->getSkin();
282  $style = $skin->getStyle($this->style_id);
283 
284  if (!$style->isSubstyle()) {
285  $skin_fields = [];
286  $skin_fields[] = $f->field()->text($this->lng->txt('skin_id'), $this->lng->txt('skin_id_description'))
287  ->withRequired(true)
288  ->withValue($skin->getId())
289  ->withAdditionalTransformation($this->refinery->custom()->transformation(
290  function ($v) use ($skin) {
291  $skin->setId($v);
292  }
293  ));
294 
295  $skin_fields[] = $f->field()->text($this->lng->txt('skin_name'), $this->lng->txt('skin_name_description'))
296  ->withRequired(true)
297  ->withValue($skin->getName())
298  ->withAdditionalTransformation($this->refinery->custom()->transformation(
299  function ($v) use ($skin) {
300  $skin->setName($v);
301  }
302  ));
303 
304  if ($skin->isVersionChangeable()) {
305  $skin_fields[] = $f->field()->text(
306  $this->lng->txt('skin_version'),
307  $this->lng->txt('skin_version_description')
308  )
309  ->withDisabled(true)
310  ->withValue($skin->getVersion())
311  ->withAdditionalTransformation($this->refinery->custom()->transformation(
312  function ($v) use ($skin) {
313  $skin->getVersionStep($v);
314  }
315  ));
316  }
317  $sections[] = $f->field()->section($skin_fields, $this->lng->txt('skin'));
318  }
319 
320  $style_id = $f->field()->text($this->lng->txt('style_id'), $this->lng->txt('style_id_description'))
321  ->withRequired(true)
322  ->withValue($style->getId())
323  ->withAdditionalTransformation($this->refinery->custom()->transformation(
324  function ($v) use ($style) {
325  $style->setId($v);
326  $style->setCssFile($v);
327  }
328  ));
329  $style_name = $f->field()->text($this->lng->txt('style_name'), $this->lng->txt('style_name_description'))
330  ->withRequired(true)
331  ->withValue($style->getName())
332  ->withAdditionalTransformation($this->refinery->custom()->transformation(
333  function ($v) use ($style) {
334  $style->setName($v);
335  }
336  ));
337  $image_dir = $f->field()->text($this->lng->txt('image_dir'), $this->lng->txt('image_dir_description'))
338  ->withValue($style->getImageDirectory())
339  ->withAdditionalTransformation($this->refinery->custom()->transformation(
340  function ($v) use ($style) {
341  $style->setImageDirectory($v);
342  }
343  ));
344  $font_dir = $f->field()->text($this->lng->txt('font_dir'), $this->lng->txt('font_dir_description'))
345  ->withValue($style->getFontDirectory())
346  ->withAdditionalTransformation($this->refinery->custom()->transformation(
347  function ($v) use ($style) {
348  $style->setFontDirectory($v);
349  }
350  ));
351  $sound_dir = $f->field()->text($this->lng->txt('sound_dir'), $this->lng->txt('sound_dir_description'))
352  ->withValue($style->getSoundDirectory())
353  ->withAdditionalTransformation($this->refinery->custom()->transformation(
354  function ($v) use ($style) {
355  $style->setSoundDirectory($v);
356  }
357  ));
358  $section_name = $this->lng->txt('style');
359  if ($style->isSubstyle()) {
360  $this->lng->txt('sub_style');
361  }
362  $sections[] = $f->field()->section([$style_id, $style_name, $image_dir, $font_dir, $sound_dir], $section_name);
363 
364  if (!$style->isSubstyle()) {
365  $active = ilSystemStyleSettings::_lookupActivatedStyle($skin->getId(), $style->getId());
366  $activation_values = null;
367  if ($active) {
368  $is_personal_style = $this->user->getPref('skin') == $skin->getId()
369  && $this->user->getPref('style') == $style->getId();
370  $is_default_style = ilSystemStyleSettings::getCurrentDefaultSkin() == $skin->getId()
371  && ilSystemStyleSettings::getCurrentDefaultStyle() == $style->getId();
372  $activation_values = ['default' => $is_default_style, 'personal' => $is_personal_style];
373  }
374 
375  $default = $f->field()->checkbox(
376  $this->lng->txt('default'),
377  $this->lng->txt('system_style_default_description')
378  );
379 
380  $personal = $f->field()->checkbox(
381  $this->lng->txt('personal'),
382  $this->lng->txt('system_style_personal_description')
383  );
384 
385  $activation = $f->field()->optionalGroup(
386  ['default' => $default, 'personal' => $personal],
387  $this->lng->txt('system_style_activation'),
388  $this->lng->txt('system_style_activation_description')
389  )->withValue($activation_values);
390  $sections['activation_section'] = $f->field()->section(
391  ['activation' => $activation],
392  $this->lng->txt('system_style_activation')
393  )
394  ->withAdditionalTransformation($this->refinery->custom()->transformation(
395  function ($v) {
396  return $v['activation'];
397  }
398  ));
399  }
400 
401  return $f->container()->form()->standard($this->ctrl->getFormActionByClass(
402  'ilsystemstyleconfiggui',
403  'save'
404  ), $sections);
405  }
static _lookupActivatedStyle(string $a_skin, string $a_style)
lookup if a style is activated
static getCurrentDefaultSkin()
Gets default Skin of the System.
withValue($value)
Get an input like this with another value displayed on the client side.
Definition: Group.php:58
static getCurrentDefaultStyle()
Gets default style of the system.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

ilSystemStyleConfigGUI::executeCommand ( )

Definition at line 83 of file class.ilSystemStyleConfigGUI.php.

References ILIAS\Repository\ctrl(), edit(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), save(), setSubStyleSubTabs(), and ILIAS\Repository\toolbar().

83  : void
84  {
85  $cmd = $this->ctrl->getCmd() ? $this->ctrl->getCmd() : 'edit';
86  $style = $this->style_container->getSkin()->getStyle($this->style_id);
87 
88  if ($style->isSubstyle()) {
89  if ($cmd == 'edit' || $cmd == 'view') {
90  $this->setSubStyleSubTabs('edit');
91  } else {
92  $this->setSubStyleSubTabs('assignStyle');
93  }
94  }
95 
96  $assign_gui = new ilSubStyleAssignmentGUI(
97  $this,
98  $this->ctrl,
99  $this->lng,
100  $this->tpl,
101  $this->toolbar,
102  $this->tree,
103  $this->request_wrapper,
104  $this->refinery,
105  $this->ui_factory
106  );
107 
108  switch ($cmd) {
109  case 'deleteAssignments':
110  $assign_gui->deleteAssignments($this->style_container->getSkin(), $style);
111  break;
112  case 'saveAssignment':
113  $assign_gui->saveAssignment($this->style_container->getSkin(), $style);
114  break;
115  case 'addAssignment':
116  $assign_gui->addAssignment();
117  break;
118  case 'assignStyle':
119  $assign_gui->assignStyle($this->style_container->getSkin(), $style);
120  break;
121  case 'save':
122  $this->save();
123  break;
124  case 'edit':
125  default:
126  $this->edit();
127  break;
128  }
129  }
+ Here is the call graph for this function:

◆ handleStyleActivation()

ilSystemStyleConfigGUI::handleStyleActivation ( ?array  $activation_values,
string  $skin_id,
string  $style_id,
ilSystemStyleMessageStack  $message_stack 
)
protected

Definition at line 210 of file class.ilSystemStyleConfigGUI.php.

References ilSystemStyleSettings\_activateStyle(), ilSystemStyleSettings\_deactivateStyle(), ilSystemStyleMessageStack\addMessage(), ilSystemStyleSettings\getCurrentDefaultSkin(), ilSystemStyleSettings\getCurrentDefaultStyle(), ilSystemStyleSettings\getCurrentUserPrefSkin(), ilSystemStyleSettings\getCurrentUserPrefStyle(), ILIAS\Repository\lng(), ilSystemStyleSettings\setCurrentDefaultStyle(), ilSystemStyleSettings\setCurrentUserPrefStyle(), ilSystemStyleMessage\TYPE_SUCCESS, and ILIAS\Repository\user().

Referenced by save().

215  : void {
216  $active = false;
217  $personal = false;
218  $default = false;
219 
220  if (is_array($activation_values)) {
221  $active = true;
222  $personal = (bool) $activation_values['personal'];
223  $default = (bool) $activation_values['default'];
224  }
225  if ($active) {
227  if ($personal) {
229  }
230  if ($default) {
232  }
233  } else {
235  }
236 
237  $system_style_conf = new ilSystemStyleConfig();
238 
239  //If style has been unset as personal style
240  if (!$personal && $this->user->getPref('skin') == $skin_id) {
241  //Reset to default if possible, else change to delos
242  if (!$default) {
246  );
247  } else {
249  $system_style_conf->getDefaultSkinId(),
250  $system_style_conf->getDefaultStyleId()
251  );
252  }
253  $message_stack->addMessage(
255  $this->lng->txt('personal_style_set_to') . ' ' .
258  )
259  );
260  }
261  if (!$default && ilSystemStyleSettings::getCurrentDefaultSkin() == $skin_id) {
263  $system_style_conf->getDefaultSkinId(),
264  $system_style_conf->getDefaultStyleId()
265  );
266  $message_stack->addMessage(
268  $this->lng->txt('default_style_set_to') . ' ' . $system_style_conf->getDefaultSkinId() . ': ' . $system_style_conf->getDefaultStyleId(),
270  )
271  );
272  }
273  }
static getCurrentUserPrefSkin()
Gets a users preferred skin by using the user object.
static getCurrentDefaultSkin()
Gets default Skin of the System.
static getCurrentUserPrefStyle()
Gets a users preferred style by using the user object.
addMessage(ilSystemStyleMessage $message)
Add a message to be displayed by the stack.
static _deactivateStyle(string $a_skin, string $a_style)
deactivate system style
static _activateStyle(string $a_skin, string $a_style)
activate system style
static setCurrentDefaultStyle(string $skin_id, string $style_id)
Sets the default style of the system.
ilSystemStyleConfig wraps all 'constants' to ensure the testability of all classes using those 'const...
static getCurrentDefaultStyle()
Gets default style of the system.
static setCurrentUserPrefStyle(string $skin_id, string $style_id)
Sets a users preferred system skin/style by using the user object.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ save()

ilSystemStyleConfigGUI::save ( )
protected

Definition at line 153 of file class.ilSystemStyleConfigGUI.php.

References Vendor\Package\$e, $message_stack, ILIAS\Repository\ctrl(), editSystemStyleForm(), handleStyleActivation(), ILIAS\Repository\lng(), ilSystemStyleMessage\TYPE_ERROR, ilSystemStyleSettings\updateSkinIdAndStyleIDOfSubStyleCategoryAssignments(), and ilSystemStyleSettings\updateSubStyleIdfSubStyleCategoryAssignments().

Referenced by executeCommand().

153  : void
154  {
155  $new_skin = $this->style_container->getSkin();
156  $new_style = $new_skin->getStyle($this->style_id);
157  $old_skin = clone $new_skin;
158  $old_style = clone $new_style;
159 
160  $form = $this->editSystemStyleForm();
161  $form = $form->withRequest($this->request);
162  $result = $form->getData();
163 
164  if ($result) {
165  try {
166  $new_skin->updateParentStyleOfSubstyles($old_style->getId(), $new_style->getId());
167  $this->style_container->updateSkin($old_skin);
168  $this->style_container->updateStyle($new_style->getId(), $old_style);
169 
170  if ($old_style->isSubstyle()) {
171  $new_style->setSubstyleOf($old_style->getSubstyleOf());
173  $old_style->getId(),
174  $new_style->getId()
175  );
176  } else {
178  $old_skin->getId(),
179  $old_style->getId(),
180  $new_skin->getId(),
181  $new_style->getId()
182  );
183 
184  $this->handleStyleActivation(
185  $result['activation_section'],
186  $new_skin->getId(),
187  $new_style->getId(),
189  );
190  }
191 
192  $this->ctrl->setParameterByClass('ilsystemstyleconfiggui', 'skin_id', $new_skin->getId());
193  $this->ctrl->setParameterByClass('ilsystemstyleconfiggui', 'style_id', $new_style->getId());
194  $this->message_stack->prependMessage(new ilSystemStyleMessage($this->lng->txt('msg_sys_style_update')));
195  $this->message_stack->sendMessages();
196  $this->ctrl->redirectByClass('ilsystemstyleconfiggui');
197  } catch (ilSystemStyleException $e) {
198  $this->message_stack->prependMessage(new ilSystemStyleMessage(
199  $e->getMessage(),
201  ));
202  }
203  }
204 
205  $this->tpl->setContent($this->renderer->render(
206  array_merge($this->message_stack->getUIComponentsMessages($this->ui_factory), [$form])
207  ));
208  }
static updateSkinIdAndStyleIDOfSubStyleCategoryAssignments(string $old_skin_id, string $old_style_id, string $new_skin_id, string $new_style_id)
Updates an assignment, e.g.
ilSystemStyleMessageStack $message_stack
handleStyleActivation(?array $activation_values, string $skin_id, string $style_id, ilSystemStyleMessageStack $message_stack)
static updateSubStyleIdfSubStyleCategoryAssignments(string $old_substyle_id, string $new_substyle_id)
Updates an assignment, e.g.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setSubStyleSubTabs()

ilSystemStyleConfigGUI::setSubStyleSubTabs ( string  $active = '')
protected

Definition at line 131 of file class.ilSystemStyleConfigGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ILIAS\Repository\tabs().

Referenced by executeCommand().

131  : void
132  {
133  $this->tabs->addSubTab(
134  'edit',
135  $this->lng->txt('settings'),
136  $this->ctrl->getLinkTargetByClass('ilsystemstyleconfiggui')
137  );
138  $this->tabs->addSubTab(
139  'assignStyle',
140  $this->lng->txt('assignment'),
141  $this->ctrl->getLinkTargetByClass('ilsystemstyleconfiggui', 'assignStyle')
142  );
143 
144  $this->tabs->activateSubTab($active);
145  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $ctrl

ilCtrl ilSystemStyleConfigGUI::$ctrl
protected

Definition at line 30 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $lng

ilLanguage ilSystemStyleConfigGUI::$lng
protected

Definition at line 31 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $message_stack

ilSystemStyleMessageStack ilSystemStyleConfigGUI::$message_stack
protected

Definition at line 45 of file class.ilSystemStyleConfigGUI.php.

Referenced by save().

◆ $refinery

Refinery ilSystemStyleConfigGUI::$refinery
protected

Definition at line 38 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $renderer

Renderer ilSystemStyleConfigGUI::$renderer
protected

Definition at line 35 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $request

ServerRequestInterface ilSystemStyleConfigGUI::$request
protected

Definition at line 42 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $request_wrapper

WrapperFactory ilSystemStyleConfigGUI::$request_wrapper
protected

Definition at line 37 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $skin_factory

ilSkinFactory ilSystemStyleConfigGUI::$skin_factory
protected

Definition at line 36 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $style_container

ilSkinStyleContainer ilSystemStyleConfigGUI::$style_container
protected

Definition at line 44 of file class.ilSystemStyleConfigGUI.php.

◆ $style_id

string ilSystemStyleConfigGUI::$style_id
protected

Definition at line 43 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $tabs

ilTabsGUI ilSystemStyleConfigGUI::$tabs
protected

Definition at line 33 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $toolbar

ilToolbarGUI ilSystemStyleConfigGUI::$toolbar
protected

Definition at line 39 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $tpl

ilGlobalTemplateInterface ilSystemStyleConfigGUI::$tpl
protected

Definition at line 32 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $tree

ilTree ilSystemStyleConfigGUI::$tree
protected

Definition at line 41 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $ui_factory

Factory ilSystemStyleConfigGUI::$ui_factory
protected

Definition at line 34 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().

◆ $user

ilObjUser ilSystemStyleConfigGUI::$user
protected

Definition at line 40 of file class.ilSystemStyleConfigGUI.php.

Referenced by __construct().


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