2include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
3include_once(
"Services/Style/System/classes/class.ilSystemStyleSettings.php");
4include_once(
"Services/Style/System/classes/Overview/class.ilSystemStyleDeleteGUI.php");
5include_once(
"Services/Style/System/classes/Utilities/class.ilSystemStyleMessageStack.php");
6include_once(
"Services/Style/System/classes/Utilities/class.ilSystemStyleSkinContainer.php");
7include_once(
"Services/FileDelivery/classes/class.ilFileDelivery.php");
8include_once(
"Services/Style/System/classes/Overview/class.ilSystemStylesTableGUI.php");
9include_once(
"Services/Form/classes/class.ilSelectInputGUI.php");
10include_once(
"Services/Style/System/classes/class.ilStyleDefinition.php");
11include_once(
"Services/Style/System/classes/Utilities/class.ilSkinXML.php");
12include_once(
"Services/Style/System/classes/Utilities/class.ilSystemStyleSkinContainer.php");
13include_once(
"Services/Object/exceptions/class.ilObjectException.php");
70 $this->
ilias = $DIC[
"ilias"];
72 $this->ctrl =
$DIC->ctrl();
73 $this->toolbar =
$DIC->toolbar();
74 $this->lng =
$DIC->language();
75 $this->tpl =
$DIC[
"tpl"];
77 $this->ref_id = (int)
$_GET[
"ref_id"];
88 $cmd = $this->ctrl->getCmd();
96 case "addSystemStyle":
98 case "saveNewSystemStyle":
99 case "saveNewSubStyle":
104 case "confirmDelete":
113 case "moveUserStyles":
114 case "saveStyleSettings":
130 $this->tpl->setContent(
$table->getHTML());
145 $add_skin_btn->setCaption($this->lng->txt(
"add_system_style"),
false);
146 $add_skin_btn->setUrl($this->ctrl->getLinkTarget($this,
'addSystemStyle'));
147 $this->toolbar->addButtonInstance($add_skin_btn);
151 $add_substyle_btn->setCaption($this->lng->txt(
"add_substyle"),
false);
152 $add_substyle_btn->setUrl($this->ctrl->getLinkTarget($this,
'addSubStyle'));
153 if (count(ilStyleDefinition::getAllSkins()) ==1) {
154 $add_substyle_btn->setDisabled(
true);
156 $this->toolbar->addButtonInstance($add_substyle_btn);
158 $this->toolbar->addSeparator();
162 $si =
new ilSelectInputGUI($this->lng->txt(
"sty_move_user_styles") .
": " . $this->lng->txt(
"sty_from"),
"from_style");
165 foreach (ilStyleDefinition::getAllSkinStyles() as
$id => $skin_style) {
166 if (!$skin_style[
'substyle_of']) {
170 $si->setOptions(
$options + array(
"other" => $this->lng->txt(
"other")));
172 $this->toolbar->addInputItem(
$si,
true);
177 $this->toolbar->addInputItem(
$si,
true);
180 $move_skin_btn->setCaption($this->lng->txt(
"sty_move_style"),
false);
181 $this->toolbar->addButtonInstance($move_skin_btn);
182 $this->toolbar->setFormAction($this->ctrl->getLinkTarget($this,
'moveUserStyles'));
186 $this->tpl->setContent(
$table->getHTML());
194 $to = explode(
":",
$_POST[
"to_style"]);
196 if (
$_POST[
"from_style"] ==
"other") {
202 foreach ($all_user_styles as
$style) {
204 $style_arr = explode(
":",
$style);
214 $this->ctrl->redirect($this,
"edit");
226 $all_styles = ilStyleDefinition::getAllSkinStyles();
227 foreach ($all_styles as $st) {
228 if (!isset(
$_POST[
"st_act"][$st[
"id"]])) {
236 if (
$_POST[
"default_skin_style"] !=
"") {
237 $sknst = explode(
":",
$_POST[
"default_skin_style"]);
242 $message_stack->sendMessages(
true);
243 $this->ctrl->redirect($this,
"edit");
254 if (count(
$_POST[
"st_act"]) < 1) {
259 if (!isset(
$_POST[
"st_act"][
$_POST[
"default_skin_style"]])) {
266 $all_styles = ilStyleDefinition::getAllSkinStyles();
268 foreach ($all_styles as $st) {
269 if (!isset(
$_POST[
"st_act"][$st[
"id"]])) {
285 $this->addSystemStyleForms();
293 if (
$form->checkInput()) {
304 $this->ctrl->setParameterByClass(
'ilSystemStyleSettingsGUI',
'skin_id', $skin->getId());
305 $this->ctrl->setParameterByClass(
'ilSystemStyleSettingsGUI',
'style_id',
$style->getId());
306 if ($message_stack->hasMessages()) {
307 $message_stack->sendMessages(
true);
311 $this->ctrl->redirectByClass(
"ilSystemStyleSettingsGUI");
316 $message_stack->sendMessages();
320 $form->setValuesByPost();
321 $this->tpl->setContent(
$form->getHTML());
327 protected function addSystemStyleForms()
332 global $ilHelp,
$DIC;
334 $DIC->tabs()->clearTargets();
338 $ilHelp->setScreenIdComponent(
"sty");
339 $ilHelp->setScreenId(
"system_styles");
340 $ilHelp->setSubScreenId(
"create");
348 $this->tpl->setContent($this->getCreationFormsHTML($forms));
357 $form->setFormAction($this->ctrl->getFormAction($this));
358 $form->setTitle($this->lng->txt(
"sty_create_new_system_style"));
361 $ti->setInfo($this->lng->txt(
"skin_id_description"));
362 $ti->setMaxLength(128);
364 $ti->setRequired(
true);
367 $ti =
new ilTextInputGUI($this->lng->txt(
"skin_name"),
"skin_name");
368 $ti->setInfo($this->lng->txt(
"skin_name_description"));
369 $ti->setMaxLength(128);
371 $ti->setRequired(
true);
374 $ti =
new ilTextInputGUI($this->lng->txt(
"style_id"),
"style_id");
375 $ti->setInfo($this->lng->txt(
"style_id_description"));
376 $ti->setMaxLength(128);
378 $ti->setRequired(
true);
381 $ti =
new ilTextInputGUI($this->lng->txt(
"style_name"),
"style_name");
382 $ti->setInfo($this->lng->txt(
"style_name_description"));
383 $ti->setMaxLength(128);
385 $ti->setRequired(
true);
388 $form->addCommandButton(
"saveNewSystemStyle", $this->lng->txt(
"save"));
389 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
400 $form->setFormAction($this->ctrl->getFormAction($this));
401 $form->setTitle($this->lng->txt(
"sty_import_system_style"));
404 $file_input =
new ilFileInputGUI($this->lng->txt(
"import_file"),
"importfile");
405 $file_input->setRequired(
true);
406 $file_input->setSuffixes(array(
"zip"));
407 $form->addItem($file_input);
409 $form->addCommandButton(
"importStyle", $this->lng->txt(
"import"));
410 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
421 $form->setFormAction($this->ctrl->getFormAction($this));
422 $form->setTitle($this->lng->txt(
"sty_copy_other_system_style"));
426 $ti->setRequired(
true);
427 $styles = ilStyleDefinition::getAllSkinStyles();
431 if (
$style[
"skin_id"]!=$system_style_conf->getDefaultSkinId()) {
439 $form->addCommandButton(
"copyStyle", $this->lng->txt(
"copy"));
440 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
449 protected function getCreationFormsHTML(array $a_forms)
451 include_once(
"./Services/Accordion/classes/class.ilAccordionGUI.php");
456 foreach ($a_forms as $form_type => $cf) {
460 $htpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"Services/Object");
464 if (method_exists($this,
"getCreationFormTitle")) {
465 $form_title = $this->getCreationFormTitle($form_type);
468 $form_title = $cf->getTitle();
472 $htpl->setVariable(
"TITLE", $this->lng->txt(
"option") .
" " . $cnt .
": " .
475 $cf->setTitleIcon(
null);
476 $cf->setTableWidth(
"100%");
478 $acc->addItem($htpl->get(), $cf->getHTML());
483 return "<div class='ilCreationFormSection'>" . $acc->getHTML() .
"</div>";
490 $imploded_skin_style_id = explode(
":",
$_POST[
'source_style']);
491 $skin_id = $imploded_skin_style_id[0];
492 $style_id = $imploded_skin_style_id[1];
498 $this->ctrl->setParameterByClass(
'ilSystemStyleSettingsGUI',
'skin_id', $new_container->getSkin()->getId());
499 $this->ctrl->setParameterByClass(
'ilSystemStyleSettingsGUI',
'style_id', $new_container->getSkin()->getStyle($style_id)->getId());
500 }
catch (Exception $e) {
505 $message_stack->sendMessages(
true);
506 $this->ctrl->redirectByClass(
"ilSystemStyleSettingsGUI");
511 $skin_id =
$_GET[
"skin_id"];
512 $style_id =
$_GET[
"style_id"];
518 $delete_form_table->addStyle(
$container->getSkin(),
$container->getSkin()->getStyle($style_id));
519 $this->tpl->setContent($delete_form_table->getDeleteStyleFormHTML());
522 $message_stack->sendMessages(
true);
531 $all_deletable =
true;
532 foreach (
$_POST[
'id'] as $skin_style_id) {
533 $imploded_skin_style_id = explode(
":", $skin_style_id);
534 $skin_id = $imploded_skin_style_id[0];
535 $style_id = $imploded_skin_style_id[1];
536 if (!$this->
checkDeletable($skin_id, $style_id, $message_stack)) {
537 $all_deletable =
false;
540 if ($all_deletable) {
541 foreach (
$_POST[
'id'] as $skin_style_id) {
542 $imploded_skin_style_id = explode(
":", $skin_style_id);
543 $skin_id = $imploded_skin_style_id[0];
544 $style_id = $imploded_skin_style_id[1];
546 $delete_form_table->addStyle(
$container->getSkin(),
$container->getSkin()->getStyle($style_id));
548 $this->tpl->setContent($delete_form_table->getDeleteStyleFormHTML());
551 $message_stack->sendMessages(
true);
591 if (is_string($skin_style_id) && strpos(
$key,
'style') !==
false) {
593 $imploded_skin_style_id = explode(
":", $skin_style_id);
595 $syle =
$container->getSkin()->getStyle($imploded_skin_style_id[1]);
600 }
catch (Exception $e) {
605 $message_stack->sendMessages(
true);
606 $this->ctrl->redirect($this);
616 if (
$form->checkInput()) {
619 $this->ctrl->setParameterByClass(
'ilSystemStyleSettingsGUI',
'skin_id', $imported_container->getSkin()->getId());
620 $this->ctrl->setParameterByClass(
'ilSystemStyleSettingsGUI',
'style_id', $imported_container->getSkin()->getDefaultStyle()->getId());
623 $message_stack->sendMessages(
true);
624 $this->ctrl->redirectByClass(
"ilSystemStyleSettingsGUI");
628 $form->setValuesByPost();
629 $this->tpl->setContent(
$form->getHTML());
633 $skin_id =
$_GET[
"skin_id"];
637 }
catch (Exception $e) {
646 protected function addSubStyle()
651 global $ilHelp,
$DIC;
653 $DIC->tabs()->clearTargets();
657 $ilHelp->setScreenIdComponent(
"sty");
658 $ilHelp->setScreenId(
"system_styles");
659 $ilHelp->setSubScreenId(
"create_sub");
663 $this->tpl->setContent(
$form->getHTML());
672 $form->setFormAction($this->ctrl->getFormAction($this));
673 $form->setTitle($this->lng->txt(
"sty_create_new_system_sub_style"));
676 $ti =
new ilTextInputGUI($this->lng->txt(
"sub_style_id"),
"sub_style_id");
677 $ti->setInfo($this->lng->txt(
"sub_style_id_description"));
678 $ti->setMaxLength(128);
680 $ti->setRequired(
true);
683 $ti =
new ilTextInputGUI($this->lng->txt(
"sub_style_name"),
"sub_style_name");
684 $ti->setInfo($this->lng->txt(
"sub_style_name_description"));
685 $ti->setMaxLength(128);
687 $ti->setRequired(
true);
692 $ti->setRequired(
true);
693 $ti->setInfo($this->lng->txt(
"sub_style_parent_style_description"));
694 $styles = ilStyleDefinition::getAllSkinStyles();
698 if (
$style[
"skin_id"]!=$system_style_conf->getDefaultSkinId() && !
$style[
"substyle_of"]) {
705 $form->addCommandButton(
"saveNewSubStyle", $this->lng->txt(
"save"));
706 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
715 if (
$form->checkInput()) {
717 $imploded_parent_skin_style_id = explode(
":",
$_POST[
'parent_style']);
718 $parent_skin_id = $imploded_parent_skin_style_id[0];
719 $parent_style_id = $imploded_parent_skin_style_id[1];
723 if (array_key_exists(
$_POST[
'sub_style_id'],
$container->getSkin()->getSubstylesOfStyle($parent_style_id))) {
727 $sub_style_id =
$_POST[
'sub_style_id'];
730 $style->setSubstyleOf($parent_style_id);
733 $this->ctrl->setParameterByClass(
'ilSystemStyleSettingsGUI',
'skin_id', $parent_skin_id);
734 $this->ctrl->setParameterByClass(
'ilSystemStyleSettingsGUI',
'style_id', $sub_style_id);
736 $this->ctrl->redirectByClass(
"ilSystemStyleSettingsGUI");
743 $form->setValuesByPost();
744 $this->tpl->setContent(
$form->getHTML());
if(!isset( $_REQUEST[ 'ReturnTo'])) if(!isset($_REQUEST['AuthId'])) $options
An exception for terminatinating execution or to throw for unit testing.
Accordion user interface class.
static _getAllUserAssignedStyles()
skins and styles
static _moveUsersToStyle($a_from_skin, $a_from_style, $a_to_skin, $a_to_style)
skins and styles
static _getNumberOfUsersForStyle($a_skin, $a_style)
skins and styles
Base exception class for object service.
ilSkinXml holds an manages the basic data of a skin as provide by the template of the skin.
static skinExists($skin_id, ilSystemStyleConfig $system_style_config=null)
Check whether a skin exists.
static styleExists($style_id)
ilSystemStyleConfig wraps all 'constants' to ensure the testability of all classes using those 'const...
Class for advanced editing exception handling in ILIAS.
const SUBSTYLE_ASSIGNMENT_EXISTS
Used to stack messages to be shown to the user.
addMessage(ilSystemStyleMessage $message)
Add a message to be displayed by the stack.
setManagementEnabled($management_enabled)
executeCommand()
Execute command.
moveUserStyles()
Move user styles.
checkDeletable($skin_id, $style_id, ilSystemStyleMessageStack $message_stack)
saveStyleSettings()
Save skin and style settings.
__construct($read_only, $management_enabled)
Constructor.
checkStyleSettings(ilSystemStyleMessageStack $message_stack)
static setCurrentDefaultStyle($skin_id, $style_id)
Sets the default style of the system.
static _activateStyle($a_skin, $a_style)
activate system style
static _deactivateStyle($a_skin, $a_style)
deactivate system style
static _lookupActivatedStyle($a_skin, $a_style)
lookup if a style is activated
static getCurrentDefaultSkin()
Gets default Skin of the System.
This class is responsible for all file system related actions related actions of a skin such as copyi...
static generateFromId($skin_id, ilSystemStyleMessageStack $message_stack=null, ilSystemStyleConfig $system_styles_conf=null)
Generate the container class by parsing the corresponding XML.
static import($import_zip_path, $name, ilSystemStyleMessageStack $message_stack=null, $system_styles_conf=null, $uploaded=true)
Imports a skin from zip.
TableGUI class for system styles.
special template class to simplify handling of ITX/PEAR
This class represents a text property in a property form.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
if(!array_key_exists('StateId', $_REQUEST)) $id
redirection script todo: (a better solution should control the processing via a xml file)
if(empty($password)) $table
if(isset($_POST['submit'])) $form