ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilObjStyleSettingsGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2012 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once "./Services/Object/classes/class.ilObjectGUI.php";
5 include_once("./Services/Style/classes/class.ilPageLayout.php");
6 
18 {
19  //page_layout editing
20  var $peditor_active = false;
21  var $pg_id = null;
22 
26  function ilObjStyleSettingsGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output = true)
27  {
28  global $lng,$ilCtrl;
29 
30  $this->type = "stys";
31 
32  $cmd = $ilCtrl->getCmd();
33 
34  if ($cmd == "editPg") {
35  $this->peditor_active = true;
36  }
37 
38  $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output);
39 
40  $lng->loadLanguageModule("style");
41  }
42 
46  function &executeCommand()
47  {
48  $next_class = $this->ctrl->getNextClass($this);
49  $cmd = $this->ctrl->getCmd();
50 
51  if ($next_class == "ilpagelayoutgui" || $cmd =="createPg") {
52  $this->peditor_active =true;
53  }
54 
55  $this->prepareOutput();
56 
57  switch($next_class)
58  {
59  case 'ilpermissiongui':
60  include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
61  $perm_gui =& new ilPermissionGUI($this);
62  $ret =& $this->ctrl->forwardCommand($perm_gui);
63  break;
64 
65  case 'ilpagelayoutgui':
66  include_once("./Services/Style/classes/class.ilPageLayoutGUI.php");
67  $this->tpl->getStandardTemplate();
68  $this->ctrl->setReturn($this, "edit");
69  if ($this->pg_id!=null) {
70  $layout_gui =& new ilPageLayoutGUI($this->type,$this->pg_id);
71  } else {
72  $layout_gui =& new ilPageLayoutGUI($this->type,$_GET["obj_id"]);
73  }
74  $layout_gui->setTabs();
75  $layout_gui->setEditPreview(true);
76  $this->ctrl->saveParameter($this, "obj_id");
77  $ret =& $this->ctrl->forwardCommand($layout_gui);
78  $this->tpl->setContent($ret);
79  break;
80 
81  default:
82  if ($cmd == "" || $cmd == "view")
83  {
84  $cmd = "editSystemStyles";
85  }
86  $cmd .= "Object";
87  $this->$cmd();
88 
89  break;
90  }
91  return true;
92  }
93 
97  function saveObject()
98  {
99  global $rbacadmin;
100 
101  // create and insert forum in objecttree
102  $newObj = parent::saveObject();
103 
104  // put here object specific stuff
105 
106  // always send a message
107  ilUtil::sendInfo($this->lng->txt("object_added"),true);
108 
109  ilUtil::redirect($this->getReturnLocation("save",$this->ctrl->getLinkTarget($this,"","",false,false)));
110  }
111 
116  {
117  global $rbacsystem, $ilias, $tpl, $ilToolbar, $ilCtrl, $lng;
118 
119  if (!$rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
120  {
121  $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
122  }
123 
124  // this may not be cool, if styles are organised as (independent) Service
125  include_once("./Modules/LearningModule/classes/class.ilObjContentObject.php");
126  include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
127 
128  $from_styles = $to_styles = $data = array();
129  $styles = $this->object->getStyles();
130 
131  foreach($styles as $style)
132  {
133  $style["active"] = ilObjStyleSheet::_lookupActive($style["id"]);
134  $style["lm_nr"] = ilObjContentObject::_getNrOfAssignedLMs($style["id"]);
135  $data[$style["title"].":".$style["id"]]
136  = $style;
137  if ($style["lm_nr"] > 0)
138  {
139  $from_styles[$style["id"]] = $style["title"];
140  }
141  if ($style["active"] > 0)
142  {
143  $to_styles[$style["id"]] = $style["title"];
144  }
145  }
146 
147  // number of individual styles
148  if ($fixed_style <= 0)
149  {
150  $data[-1] =
151  array("title" => $this->lng->txt("sty_individual_styles"),
152  "id" => 0, "lm_nr" => ilObjContentObject::_getNrLMsIndividualStyles());
153  $from_styles[-1] = $this->lng->txt("sty_individual_styles");
154  }
155 
156  // number of default style (fallback default style)
157  if ($default_style <= 0 && $fixed_style <= 0)
158  {
159  $data[0] =
160  array("title" => $this->lng->txt("sty_default_style"),
161  "id" => 0, "lm_nr" => ilObjContentObject::_getNrLMsNoStyle());
162  $from_styles[0] = $this->lng->txt("sty_default_style");
163  $to_styles[0] = $this->lng->txt("sty_default_style");
164  }
165 
166  if ($rbacsystem->checkAccess("write",$this->object->getRefId()))
167  {
168  $ilToolbar->addButton($lng->txt("sty_add_content_style"),
169  $ilCtrl->getLinkTarget($this, "createStyle"));
170  $ilToolbar->addSeparator();
171  include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
172 
173  // from styles selector
174  $si = new ilSelectInputGUI($lng->txt("sty_move_lm_styles").": ".$lng->txt("sty_from"), "from_style");
175  $si->setOptions($from_styles);
176  $ilToolbar->addInputItem($si, true);
177 
178  // from styles selector
179  $si = new ilSelectInputGUI($lng->txt("sty_to"), "to_style");
180  $si->setOptions($to_styles);
181  $ilToolbar->addInputItem($si, true);
182  $ilToolbar->addFormButton($lng->txt("sty_move_style"), "moveLMStyles");
183 
184  $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
185  }
186 
187  include_once("./Services/Style/classes/class.ilContentStylesTableGUI.php");
188  $table = new ilContentStylesTableGUI($this, "editContentStyles", $data, $this->object);
189  $tpl->setContent($table->getHTML());
190 
191  }
192 
197  {
198  if ($_POST["from_style"] == -1)
199  {
201  return;
202  }
203 
204  include_once("./Modules/LearningModule/classes/class.ilObjContentObject.php");
205  ilObjContentObject::_moveLMStyles($_POST["from_style"], $_POST["to_style"]);
206  $this->ctrl->redirect($this, "editContentStyles");
207  }
208 
209 
214  {
215  include_once("./Modules/LearningModule/classes/class.ilObjContentObject.php");
216  ilObjContentObject::_moveLMStyles(-1, $_GET["to_style"]);
217  $this->ctrl->redirect($this, "editContentStyles");
218  }
219 
224  {
225  global $ilCtrl, $tpl, $lng;
226 
227  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
228 
229  $ilCtrl->setParameter($this, "to_style", $_POST["to_style"]);
230 
231  $cgui = new ilConfirmationGUI();
232  $cgui->setFormAction($ilCtrl->getFormAction($this));
233  $cgui->setHeaderText($lng->txt("sty_confirm_del_ind_styles").": ".
234  sprintf($this->lng->txt("sty_confirm_del_ind_styles_desc"),
235  ilObject::_lookupTitle($_POST["to_style"])));
236  $cgui->setCancel($lng->txt("cancel"), "editContentStyles");
237  $cgui->setConfirm($lng->txt("ok"), "moveIndividualStyles");
238  $tpl->setContent($cgui->getHTML());
239  }
240 
245  {
246  global $rbacsystem, $ilias, $styleDefinition, $ilToolbar, $ilCtrl, $lng, $tpl;
247 
248  if (!$rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
249  {
250  $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
251  }
252 
253  // toolbar
254 
255  // default skin/style
256  if ($rbacsystem->checkAccess("write",$this->object->getRefId()))
257  {
258  include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
259 
260  $options = array();
261  foreach (ilStyleDefinition::getAllSkinStyles() as $st)
262  {
263  $options[$st["id"]] = $st["title"];
264  }
265 
266  // from styles selector
267  $si = new ilSelectInputGUI($lng->txt("sty_move_user_styles").": ".$lng->txt("sty_from"), "from_style");
268  $si->setOptions($options + array("other" => $lng->txt("other")));
269  $ilToolbar->addInputItem($si, true);
270 
271  // from styles selector
272  $si = new ilSelectInputGUI($lng->txt("sty_to"), "to_style");
273  $si->setOptions($options);
274  $ilToolbar->addInputItem($si, true);
275  $ilToolbar->addFormButton($lng->txt("sty_move_style"), "moveUserStyles");
276 
277  $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
278  }
279 
280  include_once("./Services/Style/classes/class.ilSystemStylesTableGUI.php");
281  $tab = new ilSystemStylesTableGUI($this, "editSystemStyles");
282  $tpl->setContent($tab->getHTML());
283 
284  }
285 
286 
291  {
292  global $styleDefinition, $ilCtrl;
293 
294  // check if one style is activated
295  if (count($_POST["st_act"]) < 1)
296  {
297  $this->ilias->raiseError($this->lng->txt("at_least_one_style"), $this->ilias->error_obj->MESSAGE);
298  }
299 
300  //set default skin and style
301  if ($_POST["default_skin_style"] != "")
302  {
303  $sknst = explode(":", $_POST["default_skin_style"]);
304 
305  if ($this->ilias->ini->readVariable("layout","style") != $sknst[1] ||
306  $this->ilias->ini->readVariable("layout","skin") != $sknst[0])
307  {
308  $this->ilias->ini->setVariable("layout","skin", $sknst[0]);
309  $this->ilias->ini->setVariable("layout","style",$sknst[1]);
310  }
311  $this->ilias->ini->write();
312  }
313 
314  // check if a style should be deactivated, that still has
315  // a user assigned to
316  $all_styles = ilStyleDefinition::getAllSkinStyles();
317  foreach ($all_styles as $st)
318  {
319  if (!isset($_POST["st_act"][$st["id"]]))
320  {
321  if (ilObjUser::_getNumberOfUsersForStyle($st["template_id"], $st["style_id"]) > 1)
322  {
323  $this->ilias->raiseError($this->lng->txt("cant_deactivate_if_users_assigned"), $this->ilias->error_obj->MESSAGE);
324  }
325  else
326  {
327  ilObjStyleSettings::_deactivateStyle($st["template_id"], $st["style_id"]);
328  }
329  }
330  else
331  {
332  ilObjStyleSettings::_activateStyle($st["template_id"], $st["style_id"]);
333  }
334  }
335 
336  ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
337  $ilCtrl->redirect($this , "editSystemStyles");
338  }
339 
347  {
348  global $ilCtrl, $lng;
349 
350  $to = explode(":", $_POST["to_style"]);
351 
352  if ($_POST["from_style"] != "other")
353  {
354  $from = explode(":", $_POST["from_style"]);
355  ilObjUser::_moveUsersToStyle($from[0],$from[1],$to[0],$to[1]);
356  }
357  else
358  {
359  // get all user assigned styles
360  $all_user_styles = ilObjUser::_getAllUserAssignedStyles();
361 
362  // move users that are not assigned to
363  // currently existing style
364  foreach($all_user_styles as $style)
365  {
366  if (!in_array($style, $all_styles))
367  {
368  $style_arr = explode(":", $style);
369  ilObjUser::_moveUsersToStyle($style_arr[0],$style_arr[1],$to[0],$to[1]);
370  }
371  }
372  }
373 
374  ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
375  $ilCtrl->redirect($this , "editSystemStyles");
376  }
377 
378 
379 
385  function deleteStyleObject($a_error = false)
386  {
387  if (!isset($_POST["id"]))
388  {
389  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
390  }
391 
392  // display confirmation message
393  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
394  $cgui = new ilConfirmationGUI();
395  $cgui->setFormAction($this->ctrl->getFormAction($this));
396  $cgui->setHeaderText($this->lng->txt("info_delete_sure"));
397  $cgui->setCancel($this->lng->txt("cancel"), "cancelDelete");
398  $cgui->setConfirm($this->lng->txt("confirm"), "confirmedDelete");
399 
400  foreach ($_POST["id"] as $id)
401  {
402  $caption = ilUtil::getImageTagByType("sty", $this->tpl->tplPath).
403  " ".ilObject::_lookupTitle($id);
404 
405  $cgui->addItem("id[]", $id, $caption);
406  }
407 
408  $this->tpl->setContent($cgui->getHTML());
409  }
410 
411 
416  {
417  global $ilias;
418 
419  foreach($_POST["id"] as $id)
420  {
421  $this->object->removeStyle($id);
422  $style_obj =& $ilias->obj_factory->getInstanceByObjId($id);
423  $style_obj->delete();
424  }
425  $this->object->update();
426 
427  ilUtil::redirect($this->getReturnLocation("delete",
428  $this->ctrl->getLinkTarget($this,"editContentStyles","",false,false)));
429  }
430 
431 
436  {
437  global $ilSetting, $lng;
438 
439  if ($_GET["id"] > 0)
440  {
441  $ilSetting->delete("fixed_content_style_id");
442  $def_style = $ilSetting->get("default_content_style_id");
443 
444  if ($def_style != $_GET["id"])
445  {
446  $ilSetting->set("default_content_style_id", (int) $_GET["id"]);
447  }
448  else
449  {
450  $ilSetting->delete("default_content_style_id");
451  }
452  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
453  }
454  ilUtil::redirect($this->ctrl->getLinkTarget($this, "editContentStyles", "", false, false));
455  }
456 
461  {
462  global $ilSetting, $lng;
463 
464  if ($_GET["id"] > 0)
465  {
466  $ilSetting->delete("default_content_style_id");
467  $fixed_style = $ilSetting->get("fixed_content_style_id");
468  if ($fixed_style == (int) $_GET["id"])
469  {
470  $ilSetting->delete("fixed_content_style_id");
471  }
472  else
473  {
474  $ilSetting->set("fixed_content_style_id", (int) $_GET["id"]);
475  }
476  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
477  }
478  ilUtil::redirect($this->ctrl->getLinkTarget($this, "editContentStyles", "", false, false));
479  }
480 
481 
486  {
487  include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
488  $styles = $this->object->getStyles();
489  foreach($styles as $style)
490  {
491  if ($_POST["std_".$style["id"]] == 1)
492  {
493  ilObjStyleSheet::_writeActive((int) $style["id"], 1);
494  }
495  else
496  {
497  ilObjStyleSheet::_writeActive((int) $style["id"], 0);
498  }
499  }
500  ilUtil::redirect($this->ctrl->getLinkTarget($this, "editContentStyles", "", false, false));
501  }
502 
509  function showActions($with_subobjects = false)
510  {
511 
512  // delete
513  $this->tpl->setCurrentBlock("tbl_action_btn");
514  $this->tpl->setVariable("BTN_NAME", "deleteStyle");
515  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("delete"));
516  $this->tpl->parseCurrentBlock();
517 
518  // set global default
519  $this->tpl->setCurrentBlock("tbl_action_btn");
520  $this->tpl->setVariable("BTN_NAME", "toggleGlobalDefault");
521  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("toggleGlobalDefault"));
522  $this->tpl->parseCurrentBlock();
523 
524  // set global default
525  $this->tpl->setCurrentBlock("tbl_action_btn");
526  $this->tpl->setVariable("BTN_NAME", "toggleGlobalFixed");
527  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("toggleGlobalFixed"));
528  $this->tpl->parseCurrentBlock();
529 
530  // set global default
531  $this->tpl->setCurrentBlock("tbl_action_btn");
532  $this->tpl->setVariable("BTN_NAME", "setScope");
533  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("sty_set_scope"));
534  $this->tpl->parseCurrentBlock();
535 
536  // save active styles
537  $this->tpl->setCurrentBlock("tbl_action_btn");
538  $this->tpl->setVariable("BTN_NAME", "saveActiveStyles");
539  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("sty_save_active_styles"));
540  $this->tpl->parseCurrentBlock();
541 
542  if ($with_subobjects === true)
543  {
544  $this->showPossibleSubObjects();
545  }
546 
547  $this->tpl->setCurrentBlock("tbl_action_row");
548  $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.svg"));
549  $this->tpl->parseCurrentBlock();
550  }
551 
558  {
559  ilUtil::sendInfo($this->lng->txt("msg_cancel"),true);
560  $this->ctrl->redirect($this, "editContentStyles");
561 
562  }
563 
570  function setScopeObject()
571  {
572  global $tpl, $ilCtrl;
573 
574  $ilCtrl->saveParameter($this, "id");
575  include_once("./Services/Repository/classes/class.ilRepositorySelectorExplorerGUI.php");
576  $exp = new ilRepositorySelectorExplorerGUI($this, "setScope",
577  $this, "saveScope", "cat");
578  $exp->setTypeWhiteList(array("root", "cat"));
579  if (!$exp->handleCommand())
580  {
581  $tpl->setContent($exp->getHTML());
582  }
583  }
584 
588  function saveScopeObject()
589  {
590  global $tree;
591 
592  include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
593  if ($_GET["cat"] == $tree->readRootId())
594  {
595  $_GET["cat"] = "";
596  }
598 
599  ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
600 
601  ilUtil::redirect($this->ctrl->getLinkTarget($this, "editContentStyles", "", false, false));
602  }
603 
604 
609  {
610  global $tpl, $lng, $ilCtrl, $ilTabs, $ilToolbar, $rbacsystem;
611 
612  $ilTabs->setTabActive('page_layouts');
613 
614  // show toolbar, if write permission is given
615  if ($rbacsystem->checkAccess("write",$this->object->getRefId()))
616  {
617  $ilToolbar->addButton($lng->txt("sty_add_pgl"),
618  $ilCtrl->getLinkTarget($this, "addPageLayout"));
619  $ilToolbar->addButton($lng->txt("sty_import_page_layout"),
620  $ilCtrl->getLinkTarget($this, "importPageLayoutForm"));
621  }
622 
623  $oa_tpl = new ilTemplate("tpl.stys_pglayout.html", true, true, "Services/Style");
624 
625  include_once("./Services/Style/classes/class.ilPageLayoutTableGUI.php");
626  $pglayout_table = new ilPageLayoutTableGUI($this, "viewPageLayouts");
627  $oa_tpl->setVariable("PGLAYOUT_TABLE", $pglayout_table->getHTML());
628  $tpl->setContent($oa_tpl->get());
629 
630  }
631 
632 
633  function activateObject($a_activate=true){
634  if (!isset($_POST["pglayout"]))
635  {
636  ilUtil::sendInfo($this->lng->txt("no_checkbox"),true);
637  } else {
638  ilUtil::sendSuccess($this->lng->txt("sty_opt_saved"),true);
639  foreach ($_POST["pglayout"] as $item)
640  {
641  $pg_layout = new ilPageLayout($item);
642  $pg_layout->activate($a_activate);
643  }
644  }
645  $this->ctrl->redirect($this, "viewPageLayouts");
646  }
647 
648  function deactivateObject(){
649  $this->activateObject(false);
650  }
651 
652 
653 
657  function deletePglObject()
658  {
659  global $ilTabs;
660 
661  if(!isset($_POST["pglayout"]))
662  {
663  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
664  }
665 
666  $ilTabs->setTabActive('page_layouts');
667  unset($this->data);
668 
669  // display confirmation message
670  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
671  $cgui = new ilConfirmationGUI();
672  $cgui->setFormAction($this->ctrl->getFormAction($this));
673  $cgui->setHeaderText($this->lng->txt("info_delete_sure"));
674  $cgui->setCancel($this->lng->txt("cancel"), "cancelDeletePg");
675  $cgui->setConfirm($this->lng->txt("confirm"), "confirmedDeletePg");
676 
677  foreach($_POST["pglayout"] as $id)
678  {
679  $pg_obj = new ilPageLayout($id);
680  $pg_obj->readObject();
681 
682  $caption = ilUtil::getImageTagByType("stys", $this->tpl->tplPath).
683  " ".$pg_obj->getTitle();
684 
685  $cgui->addItem("pglayout[]", $id, $caption);
686  }
687 
688  $this->tpl->setContent($cgui->getHTML());
689  }
690 
695  {
696  ilUtil::sendInfo($this->lng->txt("msg_cancel"),true);
697  $this->ctrl->redirect($this, "viewPageLayouts");
698  }
699 
704  {
705  foreach ($_POST["pglayout"] as $id)
706  {
707  $pg_obj = new ilPageLayout($id);
708  $pg_obj->delete();
709  }
710 
711  $this->ctrl->redirect($this, "viewPageLayouts");
712  }
713 
714  function addPageLayoutObject($a_form = null)
715  {
716  global $ilTabs;
717 
718  $ilTabs->setTabActive('page_layouts');
719 
720  if(!$a_form)
721  {
722  $a_form = $this->initAddPageLayoutForm();
723  }
724 
725  $this->tpl->setContent($a_form->getHTML());
726  }
727 
729  {
730  global $lng, $ilCtrl;
731 
732  $lng->loadLanguageModule("content");
733 
734  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
735  $form_gui = new ilPropertyFormGUI();
736  $form_gui->setFormAction($ilCtrl->getFormAction($this));
737  $form_gui->setTitle($lng->txt("sty_create_pgl"));
738 
739  $title_input = new ilTextInputGUI($lng->txt("title"),"pgl_title");
740  $title_input->setSize(50);
741  $title_input->setMaxLength(128);
742  $title_input->setValue($this->layout_object->title);
743  $title_input->setTitle($lng->txt("title"));
744  $title_input->setRequired(true);
745 
746  $desc_input = new ilTextAreaInputGUI($lng->txt("description"),"pgl_desc");
747  $desc_input->setValue($this->layout_object->description);
748  $desc_input->setRows(3);
749  $desc_input->setCols(37);
750 
751  // special page?
752  $options = array(
753  "0" => $lng->txt("cont_layout_template"),
754  "1" => $lng->txt("cont_special_page"),
755  );
756  $si = new ilSelectInputGUI($this->lng->txt("type"), "special_page");
757  $si->setOptions($options);
758 
759  // modules
760  $mods = new ilCheckboxGroupInputGUI($this->lng->txt("modules"), "module");
761  // $mods->setRequired(true);
762  foreach(ilPageLayout::getAvailableModules() as $mod_id => $mod_caption)
763  {
764  $mod = new ilCheckboxOption($mod_caption, $mod_id);
765  $mods->addOption($mod);
766  }
767 
768  $ttype_input = new ilSelectInputGUI($lng->txt("sty_based_on"), "pgl_template");
769 
770  $arr_templates = ilPageLayout::getLayouts();
771  $arr_templates1 = ilPageLayout::getLayouts(false, true);
772  foreach ($arr_templates1 as $v)
773  {
774  $arr_templates[] = $v;
775  }
776 
777  $options = array();
778  $options['-1'] = $lng->txt("none");
779 
780  foreach ($arr_templates as $templ) {
781  $templ->readObject();
782  $key = $templ->getId();
783  $value = $templ->getTitle();
784  $options[$key] = $value;
785  }
786 
787  $ttype_input->setOptions($options);
788  $ttype_input->setValue(-1);
789  $ttype_input->setRequired(true);
790 
791  $desc_input->setTitle($lng->txt("description"));
792  $desc_input->setRequired(false);
793 
794  $form_gui->addItem($title_input);
795  $form_gui->addItem($desc_input);
796  $form_gui->addItem($si);
797  $form_gui->addItem($mods);
798  $form_gui->addItem($ttype_input);
799 
800 
801  $form_gui->addCommandButton("createPg", $lng->txt("save"));
802  $form_gui->addCommandButton("cancelCreate", $lng->txt("cancel"));
803 
804  return $form_gui;
805  }
806 
807 
808  function createPgObject()
809  {
810  global $ilCtrl;
811 
812  $form_gui = $this->initAddPageLayoutForm();
813  if(!$form_gui->checkInput())
814  {
815  $form_gui->setValuesByPost();
816  return $this->addPageLayoutObject($form_gui);
817  }
818 
819  //create Page-Layout-Object first
820  $pg_object = new ilPageLayout();
821  $pg_object->setTitle($form_gui->getInput('pgl_title'));
822  $pg_object->setDescription($form_gui->getInput('pgl_desc'));
823  $pg_object->setSpecialPage($form_gui->getInput('special_page'));
824  $pg_object->setModules($form_gui->getInput('module'));
825  $pg_object->update();
826 
827  include_once("./Services/Style/classes/class.ilPageLayoutPage.php");
828 
829  //create Page
830  if(!is_object($pg_content))
831  {
832  $this->pg_content = new ilPageLayoutPage();
833  }
834 
835  $this->pg_content->setId($pg_object->getId());
836 
837  $tmpl = $form_gui->getInput('pgl_template');
838  if ($tmpl != "-1")
839  {
840  $layout_obj = new ilPageLayout($tmpl);
841  $this->pg_content->setXMLContent($layout_obj->getXMLContent());
842  $this->pg_content->create(false);
843  }
844  else
845  {
846  $this->pg_content->create(false);
847  }
848 
849  $ilCtrl->setParameterByClass("ilpagelayoutgui", "obj_id", $pg_object->getId());
850  $ilCtrl->redirectByClass("ilpagelayoutgui", "edit");
851  }
852 
853  function cancelCreateObject() {
854  $this->viewPageLayoutsObject();
855  }
856 
857  function editPgObject()
858  {
859  global $ilCtrl, $rbacsystem;
860 
861  if (!$rbacsystem->checkAccess("write",$this->object->getRefId()))
862  {
863  $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
864  }
865 
866  $ilCtrl->setCmdClass("ilpagelayoutgui");
867  $ilCtrl->setCmd("edit");
868  $this->executeCommand();
869  }
870 
871 
872  function setTabs()
873  {
874  echo "settings_setTabs";
875  }
876 
877  function getAdminTabs(&$tabs_gui)
878  {
879  $this->getTabs($tabs_gui);
880  }
881 
887  function getTabs(&$tabs_gui)
888  {
889  global $rbacsystem, $lng, $ilTabs;
890 
891  if ($this->peditor_active) {
892  $tabs_gui->setBackTarget($this->lng->txt("page_layouts"),
893  $this->ctrl->getLinkTarget($this, "viewPageLayouts"));
894  }
895 
896  if ($rbacsystem->checkAccess("visible,read",$this->object->getRefId()) && !$this->peditor_active)
897  {
898  $tabs_gui->addTarget("system_styles",
899  $this->ctrl->getLinkTarget($this, "editSystemStyles"), array("editSystemStyles", "", "view"), "", "");
900 
901  $tabs_gui->addTarget("content_styles",
902  $this->ctrl->getLinkTarget($this, "editContentStyles"), "editContentStyles", "", "");
903 
904  $tabs_gui->addTarget("page_layouts",
905  $this->ctrl->getLinkTarget($this, "viewPageLayouts"), "viewPageLayouts", "", "");
906 
907  }
908 
909 
910  if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()) && !$this->peditor_active)
911  {
912  $tabs_gui->addTarget("perm_settings",
913  $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');
914  }
915  }
916 
920  function createStyleObject()
921  {
922  global $ilCtrl;
923 
924  $ilCtrl->setParameter($this, "new_type", "sty");
925  $ilCtrl->redirect($this, "create");
926  }
927 
932  {
933  global $lng, $ilCtrl;
934 
935  include_once("./Services/Style/classes/class.ilPageLayout.php");
936 
937  if (is_array($_POST["type"]))
938  {
939  foreach($_POST["type"] as $id => $t)
940  {
941  if ($id > 0)
942  {
943  $l = new ilPageLayout($id);
944  $l->readObject();
945  $l->setSpecialPage($t);
946  if(is_array($_POST["module"][$id]))
947  {
948  $l->setModules(array_keys($_POST["module"][$id]));
949  }
950  else
951  {
952  $l->setModules();
953  }
954  $l->update();
955  }
956  }
957 
958  ilUtil::sendSuccess($lng->txt("msg_obj_modified"));
959  }
960 
961  $ilCtrl->redirect($this, "viewPageLayouts");
962  }
963 
964 
969  {
970  include_once("./Services/Export/classes/class.ilExport.php");
971  $exp = new ilExport();
972 
973  $tmpdir = ilUtil::ilTempnam();
974  ilUtil::makeDir($tmpdir);
975 
976  $succ = $exp->exportEntity("pgtp", (int) $_GET["layout_id"], "4.2.0",
977  "Services/COPage", "Title", $tmpdir);
978 
979  if ($succ["success"])
980  {
981  ilUtil::deliverFile($succ["directory"]."/".$succ["file"], $succ["file"],
982  "", false, false, false);
983  }
984  if (is_file($succ["directory"]."/".$succ["file"]))
985  {
986  unlink($succ["directory"]."/".$succ["file"]);
987  }
988  if (is_dir($succ["directory"]))
989  {
990  unlink($succ["directory"]);
991  }
992  }
993 
998  {
999  global $tpl, $ilTabs;
1000 
1001  $ilTabs->setTabActive('page_layouts');
1002  $form = $this->initPageLayoutImportForm();
1003  $tpl->setContent($form->getHTML());
1004  }
1005 
1009  public function initPageLayoutImportForm()
1010  {
1011  global $lng, $ilCtrl;
1012 
1013  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1014  $form = new ilPropertyFormGUI();
1015 
1016  // template file
1017  $fi = new ilFileInputGUI($lng->txt("file"), "file");
1018  $fi->setSuffixes(array("zip"));
1019  $fi->setRequired(true);
1020  $form->addItem($fi);
1021 
1022  $form->addCommandButton("importPageLayout", $lng->txt("import"));
1023  $form->addCommandButton("viewPageLayouts", $lng->txt("cancel"));
1024 
1025  $form->setTitle($lng->txt("sty_import_page_layout"));
1026  $form->setFormAction($ilCtrl->getFormAction($this));
1027 
1028  return $form;
1029  }
1030 
1034  public function importPageLayoutObject()
1035  {
1036  global $tpl, $lng, $ilCtrl, $ilTabs;
1037 
1038  $form = $this->initPageLayoutImportForm();
1039  if ($form->checkInput())
1040  {
1041  include_once("./Services/Style/classes/class.ilPageLayout.php");
1042  $pg = ilPageLayout::import($_FILES["file"]["name"], $_FILES["file"]["tmp_name"]);
1043  if ($pg > 0)
1044  {
1045  ilUtil::sendSuccess($lng->txt("sty_imported_layout"), true);
1046  }
1047  $ilCtrl->redirect($this, "viewPageLayouts");
1048  }
1049  else
1050  {
1051  $ilTabs->setTabActive('page_layouts');
1052  $form->setValuesByPost();
1053  $tpl->setContent($form->getHtml());
1054  }
1055  }
1056 
1064  {
1065  global $ilToolbar, $ilCtrl, $tpl, $lng, $rbacsystem;
1066 
1067  $ilCtrl->setParameter($this, "style_id", urlencode($_GET["style_id"]));
1068 
1069  if (!$rbacsystem->checkAccess("write", $this->object->getRefId()))
1070  {
1071  return;
1072  }
1073 
1074  $all_styles = ilStyleDefinition::getAllSkinStyles();
1075  $sel_style = $all_styles[$_GET["style_id"]];
1076 
1077  $options = array();
1078  if (is_array($sel_style["substyle"]))
1079  {
1080  foreach ($sel_style["substyle"] as $subst)
1081  {
1082  $options[$subst["id"]] = $subst["name"];
1083  }
1084  }
1085 
1086  // substyle
1087  include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
1088  $si = new ilSelectInputGUI($this->lng->txt("sty_substyle"), "substyle");
1089  $si->setOptions($options);
1090  $ilToolbar->addInputItem($si, true);
1091 
1092  $ilToolbar->addFormButton($lng->txt("sty_add_assignment"), "addStyleCatAssignment");
1093  $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
1094 
1095  include_once("./Services/Style/classes/class.ilSysStyleCatAssignmentTableGUI.php");
1096  $tab = new ilSysStyleCatAssignmentTableGUI($this, "assignStylesToCats");
1097 
1098  $tpl->setContent($tab->getHTML());
1099  }
1100 
1101 
1109  {
1110  global $ilCtrl, $ilTabs, $lng, $tree, $tpl, $rbacsystem;
1111 
1112  if (!$rbacsystem->checkAccess("write", $this->object->getRefId()))
1113  {
1114  return;
1115  }
1116 
1117  $ilCtrl->setParameter($this, "style_id", urlencode($_GET["style_id"]));
1118  $ilCtrl->setParameter($this, "substyle", urlencode($_REQUEST["substyle"]));
1119 
1120  include_once 'Services/Search/classes/class.ilSearchRootSelector.php';
1121  $exp = new ilSearchRootSelector(
1122  $ilCtrl->getLinkTarget($this,'addStyleCatAssignment'));
1123  $exp->setExpand($_GET["search_root_expand"] ? $_GET["search_root_expand"] : $tree->readRootId());
1124  $exp->setExpandTarget($ilCtrl->getLinkTarget($this,'addStyleCatAssignment'));
1125  $exp->setTargetClass(get_class($this));
1126  $exp->setCmd('saveStyleCatAssignment');
1127  $exp->setClickableTypes(array("cat"));
1128 
1129  // build html-output
1130  $exp->setOutput(0);
1131  $tpl->setContent($exp->getOutput());
1132  }
1133 
1134 
1142  {
1143  global $lng, $ilCtrl, $rbacsystem;
1144 
1145  if (!$rbacsystem->checkAccess("write", $this->object->getRefId()))
1146  {
1147  return;
1148  }
1149 
1150  $ilCtrl->setParameter($this, "style_id", urlencode($_GET["style_id"]));
1151 
1152  $style_arr = explode(":", $_GET["style_id"]);
1153  ilStyleDefinition::writeSystemStyleCategoryAssignment($style_arr[0], $style_arr[1],
1154  $_GET["substyle"], $_GET["root_id"]);
1155  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1156 
1157  $ilCtrl->redirect($this, "assignStylesToCats");
1158  }
1159 
1164  {
1165  global $ilCtrl, $lng, $rbacsystem;
1166 
1167  if (!$rbacsystem->checkAccess("write", $this->object->getRefId()))
1168  {
1169  return;
1170  }
1171 
1172  $ilCtrl->setParameter($this, "style_id", urlencode($_GET["style_id"]));
1173  $style_arr = explode(":", $_GET["style_id"]);
1174  if (is_array($_POST["id"]))
1175  {
1176  foreach ($_POST["id"] as $id)
1177  {
1178  $id_arr = explode(":", $id);
1179  ilStyleDefinition::deleteSystemStyleCategoryAssignment($style_arr[0], $style_arr[1],
1180  $id_arr[0], $id_arr[1]);
1181  }
1182  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1183  }
1184 
1185  $ilCtrl->redirect($this, "assignStylesToCats");
1186  }
1187 
1188 }
1189 ?>
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
exportLayoutObject()
Export page layout template object.
moveIndividualStylesObject()
move all learning modules with individual styles to new style
cancelDeleteObject()
cancel deletion of object
toggleGlobalDefaultObject()
Toggle global default style.
$_POST['username']
Definition: cron.php:12
This class represents an option in a checkbox group.
Explorer for selecting repository items.
This class represents a selection list property in a property form.
importPageLayoutFormObject()
Import page layout.
moveLMStylesObject()
move learning modules from one style to another
This class represents a property form user interface.
_lookupActive($a_id)
Lookup active flag.
$_GET["client_id"]
_writeScope($a_id, $a_scope)
Write scope.
Class ilPageLayoutGUI GUI class.
getTabs(&$tabs_gui)
get tabs public
_moveUsersToStyle($a_from_skin, $a_from_style, $a_to_skin, $a_to_style)
skins and styles
This class represents a file property in a property form.
static getImageTagByType($a_type, $a_path, $a_big=false)
Builds an html image tag TODO: function still in use, but in future use getImagePath and move HTML-Co...
saveStyleCatAssignmentObject()
Save style category assignment.
$cmd
Definition: sahs_server.php:35
setValue($a_value)
Set Value.
toggleGlobalFixedObject()
Toggle global fixed style.
confirmedDeleteObject()
delete selected style objects
ilObjectGUI($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor public.
static _lookupTitle($a_id)
lookup object title
Class ilPageLayout.
saveActiveStylesObject()
Save active styles.
Page layout page object.
_getNumberOfUsersForStyle($a_skin, $a_style)
skins and styles
editContentStylesObject()
view list of styles
TableGUI class for system style to category assignments.
global $ilCtrl
Definition: ilias.php:18
editSystemStylesObject()
edit system styles
saveScopeObject()
Save scope for style.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Style settings GUI class.
importPageLayoutObject()
Import page layout.
static getAllSkinStyles()
Get all skins/styles.
addStyleCatAssignmentObject()
Add style category assignment.
_moveLMStyles($a_from_style, $a_to_style)
move learning modules from one style to another
if(!is_array($argv)) $options
moveUserStylesObject()
Move user styles.
deleteStyleObject($a_error=false)
display deletion confirmation screen
static import($a_filename, $a_filepath)
Import page layout.
TableGUI class for page layouts.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
Class ilObjectGUI Basic methods of all Output classes.
static getLayouts($a_active=false, $a_special_page=false, $a_module=null)
Get layouts.
confirmedDeletePgObject()
conform deletion of Page Layout
special template class to simplify handling of ITX/PEAR
assignStylesToCatsObject()
Assign styles to cats.
static getAvailableModules()
_activateStyle($a_skin, $a_style)
activate style
setSize($a_size)
Set Size.
_getNrLMsIndividualStyles()
get number of learning modules with individual styles
This class represents a text property in a property form.
redirection script todo: (a better solution should control the processing via a xml file) ...
This class represents a property in a property form.
_deactivateStyle($a_skin, $a_style)
deactivate style
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
setOptions($a_options)
Set Options.
prepareOutput()
prepare output
deleteSystemStyleCategoryAssignment($a_skin_id, $a_style_id, $a_substyle, $a_ref_id)
Delete category style assignment.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
_writeActive($a_id, $a_active)
Write active flag.
deletePglObject()
display deletion confirmation screen
& executeCommand()
Execute command.
viewPageLayoutsObject()
view list of page layouts
static ilTempnam()
Create a temporary file in an ILIAS writable directory.
showPossibleSubObjects()
show possible subobjects (pulldown menu)
global $ilSetting
Definition: privfeed.php:40
saveStyleSettingsObject()
save skin and style settings
This class represents a text area property in a property form.
cancelDeletePgObject()
cancel deletion of Page Layout
showActions($with_subobjects=false)
show possible action (form buttons)
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
TableGUI class for system styles.
deleteSysStyleCatAssignmentsObject()
Delete system style to category assignments.
_getAllUserAssignedStyles()
skins and styles
ilObjStyleSettingsGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
Constructor.
_getNrLMsNoStyle()
get number of learning modules assigned no style
static redirect($a_script)
http redirect to other script
writeSystemStyleCategoryAssignment($a_skin_id, $a_style_id, $a_substyle, $a_ref_id)
Write category assignment.
setSuffixes($a_suffixes)
Set Accepted Suffixes.
getReturnLocation($a_cmd, $a_location="")
get return location for command (command is method name without "Object", e.g.
_getNrOfAssignedLMs($a_style_id)
gets the number of learning modules assigned to a content style
initPageLayoutImportForm()
Init page layout import form.
setExpand($a_node_id)
set the expand option this value is stored in a SESSION variable to save it different view (lo view...
savePageLayoutTypesObject()
Save page layout types.
Confirmation screen class.