ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilSystemStyleMainGUI.php
Go to the documentation of this file.
1<?php
2include_once("Services/Object/exceptions/class.ilObjectException.php");
3
4/* Copyright (c) 1998-2016 ILIAS open source, Extended GPL, see docs/LICENSE */
5
21{
25 protected $ctrl;
26
30 protected $lng;
31
32
36 protected $DIC;
37
41 protected $tabs;
42
43
47 protected $rbacsystem;
48
52 protected $ref_id;
53
57 protected $tpl;
58
62 public function __construct()
63 {
67 global $DIC;
68
69 $this->ctrl = $DIC->ctrl();
70 $this->lng = $DIC->language();
71 $this->tabs = $DIC->tabs();
72 $this->rbacsystem = $DIC->rbac()->system();
73 $this->tpl = $DIC["tpl"];
74
75 $this->ref_id = (int) $_GET["ref_id"];
76 }
77
78
85 public function executeCommand()
86 {
90 global $ilHelp;
91
92 $next_class = $this->ctrl->getNextClass($this);
93
94 $ilHelp->setScreenIdComponent("sty");
95 $ilHelp->setScreenId("system_styles");
96
97 if (!$_GET["skin_id"]) {
99 $_GET["skin_id"] = $config->getDefaultSkinId();
100 $_GET["style_id"] = $config->getDefaultStyleId();
101 }
102
103 $this->ctrl->setParameterByClass('ilsystemstylesettingsgui', 'skin_id', $_GET["skin_id"]);
104 $this->ctrl->setParameterByClass('ilsystemstylesettingsgui', 'style_id', $_GET["style_id"]);
105 $this->ctrl->setParameterByClass('ilsystemstylelessgui', 'skin_id', $_GET["skin_id"]);
106 $this->ctrl->setParameterByClass('ilsystemstylelessgui', 'style_id', $_GET["style_id"]);
107 $this->ctrl->setParameterByClass('ilsystemstyleiconsgui', 'skin_id', $_GET["skin_id"]);
108 $this->ctrl->setParameterByClass('ilsystemstyleiconsgui', 'style_id', $_GET["style_id"]);
109 $this->ctrl->setParameterByClass('ilsystemstyledocumentationgui', 'skin_id', $_GET["skin_id"]);
110 $this->ctrl->setParameterByClass('ilsystemstyledocumentationgui', 'style_id', $_GET["style_id"]);
111
112 try {
113 switch ($next_class) {
114
115 case "ilsystemstylesettingsgui":
116 $ilHelp->setSubScreenId("settings");
117 $this->checkPermission("sty_management");
118 $this->setUnderworldTabs('settings');
119 $this->setUnderworldTitle();
120 include_once("Settings/class.ilSystemStyleSettingsGUI.php");
121 $system_styles_settings = new ilSystemStyleSettingsGUI();
122 $this->ctrl->forwardCommand($system_styles_settings);
123 break;
124 case "ilsystemstylelessgui":
125 $ilHelp->setSubScreenId("less");
126 $this->checkPermission("sty_management");
127 $this->setUnderworldTabs('less');
128 $this->setUnderworldTitle();
129 include_once("Less/class.ilSystemStyleLessGUI.php");
130 $system_styles_less = new ilSystemStyleLessGUI();
131 $this->ctrl->forwardCommand($system_styles_less);
132 break;
133 case "ilsystemstyleiconsgui":
134 $ilHelp->setSubScreenId("icons");
135 $this->checkPermission("sty_management");
136 $this->setUnderworldTabs('icons');
137 $this->setUnderworldTitle();
138 include_once("Icons/class.ilSystemStyleIconsGUI.php");
139 $system_styles_icons = new ilSystemStyleIconsGUI();
140 $this->ctrl->forwardCommand($system_styles_icons);
141 break;
142 case "ilsystemstyledocumentationgui":
143 $ilHelp->setSubScreenId("documentation");
144 $read_only = !$this->checkPermission("sty_management", false);
145 $this->setUnderworldTabs('documentation');
146 $this->setUnderworldTitle();
147 include_once("Documentation/class.ilSystemStyleDocumentationGUI.php");
148 $system_styles_documentation = new ilSystemStyleDocumentationGUI($read_only);
149 $this->ctrl->forwardCommand($system_styles_documentation);
150 break;
151 case "ilsystemstyleoverviewgui":
152 default:
153 $ilHelp->setSubScreenId("overview");
154 $this->checkPermission("visible,read");
155 include_once("Overview/class.ilSystemStyleOverviewGUI.php");
156 $system_styles_overview = new ilSystemStyleOverviewGUI(!$this->checkPermission("sty_write_system", false), $this->checkPermission("sty_management", false));
157 $this->ctrl->forwardCommand($system_styles_overview);
158 break;
159 }
160 } catch (ilObjectException $e) {
161 ilUtil::sendFailure($e->getMessage());
162 $this->checkPermission("visible,read");
163 include_once("Overview/class.ilSystemStyleOverviewGUI.php");
164 $this->ctrl->setCmd("");
165 $system_styles_overview = new ilSystemStyleOverviewGUI(!$this->checkPermission("sty_write_system", false), $this->checkPermission("sty_management", false));
166 $this->ctrl->forwardCommand($system_styles_overview);
167 }
168 }
169
173 public static function _goto($ref_id, $params)
174 {
178 global $DIC;
179
180 $node_id = $params[2];
181 $skin_id = $params[3];
182 $style_id = $params[4];
183
184 $DIC->ctrl()->setParameterByClass('ilSystemStyleDocumentationGUI', 'skin_id', $skin_id);
185 $DIC->ctrl()->setParameterByClass(
186 'ilSystemStyleDocumentationGUI',
187 'style_id',
188 $style_id
189 );
190 $DIC->ctrl()->setParameterByClass('ilSystemStyleDocumentationGUI', 'node_id', $node_id);
191 $DIC->ctrl()->setParameterByClass('ilSystemStyleDocumentationGUI', 'ref_id', $ref_id);
192
193 $_GET['baseClass']= 'ilAdministrationGUI';
194
195 $cmd = "entries";
196 $cmd_classes = [
197 "ilAdministrationGUI",
198 "ilObjStyleSettingsGUI",
199 "ilSystemStyleMainGUI",
200 'ilSystemStyleDocumentationGUI'
201 ];
202
203 $DIC->ctrl()->setTargetScript("ilias.php");
204 $DIC->ctrl()->redirectByClass($cmd_classes, $cmd);
205 }
206
216 public function checkPermission($a_perm, $a_throw_exc = true)
217 {
218 global $ilIliasIniFile;
219
220 $has_perm = true;
221
223 if ($a_perm == "sty_management") {
224 $has_perm = $ilIliasIniFile->readVariable("tools", "enable_system_styles_management")== "1" ? true:false;
225 $a_perm = "sty_write_system";
226 if ($has_perm && !is_writable($config->getCustomizingSkinPath())) {
227 ilUtil::sendFailure($this->lng->txt("enable_system_styles_management_no_write_perm"));
228 $has_perm = false;
229 }
230 }
231
232 if ($has_perm) {
233 $has_perm = $this->rbacsystem->checkAccess($a_perm, $this->ref_id);
234 }
235
236 if (!$has_perm) {
237 if ($a_throw_exc) {
238 include_once "Services/Object/exceptions/class.ilObjectException.php";
239 throw new ilObjectException($this->lng->txt("sty_permission_denied"));
240 }
241 return false;
242 }
243 return $has_perm;
244 }
245
251 protected function setUnderworldTabs($active = "")
252 {
256 global $ilHelp;
257 $this->tabs->clearTargets();
258
262 $ilHelp->setScreenIdComponent("sty");
263 $ilHelp->setScreenId("system_styles");
264 $this->tabs->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this));
266 if ($_GET["skin_id"] != $config->getDefaultSkinId()) {
267 $this->tabs->addTab('settings', $this->lng->txt('settings'), $this->ctrl->getLinkTargetByClass('ilsystemstylesettingsgui'));
268 $this->tabs->addTab('less', $this->lng->txt('less'), $this->ctrl->getLinkTargetByClass('ilsystemstylelessgui'));
269 $this->tabs->addTab('icons', $this->lng->txt('icons'), $this->ctrl->getLinkTargetByClass('ilsystemstyleiconsgui'));
270 }
271
272 $this->tabs->addTab('documentation', $this->lng->txt('documentation'), $this->ctrl->getLinkTargetByClass('ilsystemstyledocumentationgui'));
273
274 $this->tabs->activateTab($active);
275 }
276
277
283 protected function setUnderworldTitle()
284 {
285 $skin_id = $_GET["skin_id"];
286 $style_id = $_GET["style_id"];
287
288 $skin = ilSystemStyleSkinContainer::generateFromId($skin_id)->getSkin();
289 $style = $skin->getStyle($style_id);
290
291 $this->tpl->setTitle($style->getName());
292 if ($style->isSubstyle()) {
293 $this->tpl->setDescription(
294 $this->lng->txt("settings_of_substyle") . " '" . $style->getName() . "' " .
295 $this->lng->txt("of_parent") . " '" . $skin->getStyle($style->getSubstyleOf())->getName() . "' " .
296 $this->lng->txt("from_skin") . " " . $skin->getName()
297 );
298 } else {
299 $this->tpl->setDescription(
300 $this->lng->txt("settings_of_style") . " '" . $style->getName() . "' " .
301 $this->lng->txt("from_skin") . " '" . $skin->getName() . "'"
302 );
303 }
304 }
305}
$_GET["client_id"]
An exception for terminatinating execution or to throw for unit testing.
Base exception class for object service.
ilSystemStyleConfig wraps all 'constants' to ensure the testability of all classes using those 'const...
Settings UI class for system styles.
checkPermission($a_perm, $a_throw_exc=true)
Checks permission for system styles.
setUnderworldTitle()
Sets title correctly if one system style is opened.
static generateFromId($skin_id, ilSystemStyleMessageStack $message_stack=null, ilSystemStyleConfig $system_styles_conf=null)
Generate the container class by parsing the corresponding XML.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$style
Definition: example_012.php:70
$ilIliasIniFile
$params
Definition: disable.php:11