ILIAS  trunk Revision v11.0_alpha-1753-gb21ca8c4367
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
class.ilPCTabsGUI.php
Go to the documentation of this file.
1 <?php
2 
24 {
25  protected \ILIAS\COPage\PC\PCDefinition $pc_def;
26  protected \ILIAS\COPage\Xsl\XslManager $xsl;
28  protected ilDBInterface $db;
29  protected ilTabsGUI $tabs;
31 
32  public function __construct(
33  ilPageObject $a_pg_obj,
34  ?ilPageContent $a_content_obj,
35  string $a_hier_id,
36  string $a_pc_id = ""
37  ) {
38  global $DIC;
39 
40  $this->tpl = $DIC["tpl"];
41  $this->ctrl = $DIC->ctrl();
42  $this->lng = $DIC->language();
43  $this->db = $DIC->database();
44  $this->tabs = $DIC->tabs();
45  $this->toolbar = $DIC->toolbar();
46  parent::__construct($a_pg_obj, $a_content_obj, $a_hier_id, $a_pc_id);
47  $this->xsl = $DIC->copage()->internal()->domain()->xsl();
48  $this->pc_def = $DIC->copage()->internal()->domain()->pc()->definition();
49  }
50 
51  public function executeCommand(): void
52  {
53  // get next class that processes or forwards current command
54  $next_class = $this->ctrl->getNextClass($this);
55 
56  // get current command
57  $cmd = $this->ctrl->getCmd();
58 
59  switch ($next_class) {
60  default:
61  $this->$cmd();
62  break;
63  }
64  }
65 
69  public function insert(
70  bool $a_omit_form_init = false
71  ): void {
72  $tpl = $this->tpl;
73 
74  $this->displayValidationError();
75 
76  if (!$a_omit_form_init) {
77  $this->initForm("create");
78  }
79  $html = $this->form->getHTML();
80  $tpl->setContent($html);
81  }
82 
83  public function editProperties(bool $init_form = true): void
84  {
85  $tpl = $this->tpl;
86 
87  $this->displayValidationError();
88  $this->setTabs();
89 
90  if ($init_form) {
91  $this->initForm();
92  $this->getFormValues();
93  }
94  $html = $this->form->getHTML();
95  $tpl->setContent($html);
96  }
97 
98  public function initForm(
99  string $a_mode = "edit"
100  ): void {
101  $ilCtrl = $this->ctrl;
102  $lng = $this->lng;
103 
105 
106  // edit form
107  $this->form = new ilPropertyFormGUI();
108  $this->form->setShowTopButtons(false);
109  $this->form->setFormAction($ilCtrl->getFormAction($this));
110  if ($a_mode != "edit") {
111  $this->form->setTitle($lng->txt("cont_ed_insert_tabs"));
112  } else {
113  $this->form->setTitle($lng->txt("cont_edit_tabs"));
114  }
115 
116 
117  // type selection
118  $radg = new ilRadioGroupInputGUI($lng->txt("cont_type"), "type");
120 
121  // type: vertical accordion
122  $op1 = new ilRadioOption($lng->txt("cont_tabs_acc_ver"), ilPCTabs::ACCORDION_VER);
123  $templ = $this->getTemplateOptions("vaccordion");
124  if (count($templ) > 0) {
125 
126  $options = [];
127  foreach ($templ as $k => $te) {
128  $options[$k] = $te;
129  }
130  $vchar_prop = new ilSelectInputGUI($this->lng->txt("cont_characteristic"), "vaccord_templ");
131  $vchar_prop->setOptions($options);
132  $op1->addSubItem($vchar_prop);
133 
134 
135  } else {
136  $vchar_prop = new ilHiddenInputGUI("vaccord_templ");
137  $this->form->addItem($vchar_prop);
138  }
139  $radg->addOption($op1);
140 
141  // type: carousel
142  $op3 = new ilRadioOption($lng->txt("cont_tabs_carousel"), ilPCTabs::CAROUSEL);
143  $templ = $this->getTemplateOptions("carousel");
144  if (count($templ) > 0) {
145  $cchar_prop = new ilSelectInputGUI(
146  $this->lng->txt("cont_characteristic"),
147  "carousel_templ"
148  );
149  $cchar_prop->setOptions($templ);
150  $op3->addSubItem($cchar_prop);
151  } else {
152  $cchar_prop = new ilHiddenInputGUI("carousel_templ");
153  $this->form->addItem($cchar_prop);
154  }
155 
156  $radg->addOption($op3);
157  $this->form->addItem($radg);
158 
159 
160  // number of initial tabs
161  if ($a_mode == "create") {
162  $nr_prop = new ilSelectInputGUI(
163  $lng->txt("cont_number_of_tabs"),
164  "nr"
165  );
166  $nrs = array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6,
167  7 => 7, 8 => 8, 9 => 9, 10 => 10);
168  $nr_prop->setOptions($nrs);
169  $this->form->addItem($nr_prop);
170  }
171 
172  /*
173  $ni = new ilNumberInputGUI($this->lng->txt("cont_tab_cont_width"), "content_width");
174  $ni->setMaxLength(4);
175  $ni->setSize(4);
176  $this->form->addItem($ni);
177 
178  $ni = new ilNumberInputGUI($this->lng->txt("cont_tab_cont_height"), "content_height");
179  $ni->setMaxLength(4);
180  $ni->setSize(4);
181  $this->form->addItem($ni);*/
182 
183  // behaviour
184  $options = array(
185  "AllClosed" => $lng->txt("cont_all_closed"),
186  "FirstOpen" => $lng->txt("cont_first_open"),
187  "ForceAllOpen" => $lng->txt("cont_force_all_open"),
188  );
189  $si = new ilSelectInputGUI($this->lng->txt("cont_behavior"), "vbehavior");
190  $si->setOptions($options);
191  $op1->addSubItem($si);
192  /*
193  $si = new ilSelectInputGUI($this->lng->txt("cont_behavior"), "hbehavior");
194  $si->setOptions($options);
195  $op2->addSubItem($si);*/
196 
197 
198  // alignment
199  /*
200  $align_opts = array("Left" => $lng->txt("cont_left"),
201  "Right" => $lng->txt("cont_right"), "Center" => $lng->txt("cont_center"),
202  "LeftFloat" => $lng->txt("cont_left_float"),
203  "RightFloat" => $lng->txt("cont_right_float"));
204  $align = new ilSelectInputGUI($this->lng->txt("cont_align"), "valign");
205  $align->setOptions($align_opts);
206  $align->setValue("Center");
207  //$align->setInfo($lng->txt("cont_tabs_hor_align_info"));
208  $op1->addSubItem($align);
209  $align = new ilSelectInputGUI($this->lng->txt("cont_align"), "calign");
210  $align->setOptions($align_opts);
211  $align->setValue("Center");
212  $op3->addSubItem($align);*/
213 
214  // carousel: time
215  $ti = new ilNumberInputGUI($this->lng->txt("cont_auto_time"), "auto_time");
216  $ti->setMaxLength(6);
217  $ti->setSize(6);
218  $ti->setSuffix("ms");
219  $ti->setMinValue(100);
220  $op3->addSubItem($ti);
221 
222  // carousel: random start
223  $cb = new ilCheckboxInputGUI($this->lng->txt("cont_rand_start"), "rand_start");
224  //$cb->setOptionTitle($this->lng->txt(""));
225  //$cb->setInfo($this->lng->txt(""));
226  $op3->addSubItem($cb);
227 
228 
229  // save/cancel buttons
230  if ($a_mode == "create") {
231  $this->form->addCommandButton("create", $lng->txt("save"));
232  $this->form->addCommandButton("cancelCreate", $lng->txt("cancel"));
233  } else {
234  $this->form->addCommandButton("update", $lng->txt("save"));
235  $this->form->addCommandButton("cancelUpdate", $lng->txt("cancel"));
236  }
237  }
238 
240  {
241  $this->initForm("create");
242  return $this->form;
243  }
244 
246  {
247  $this->initForm("edit");
248  $this->getFormValues();
249  return $this->form;
250  }
251 
252  public function getFormValues(): void
253  {
254  $values["type"] = $this->content_obj->getTabType();
255  $values["content_width"] = $this->content_obj->getContentWidth();
256  $values["content_height"] = $this->content_obj->getContentHeight();
257  $values["valign"] = $this->content_obj->getHorizontalAlign();
258  $values["calign"] = $this->content_obj->getHorizontalAlign();
259  $values["vbehavior"] = $this->content_obj->getBehavior();
260  $values["hbehavior"] = $this->content_obj->getBehavior();
261 
262  $values["auto_time"] = $this->content_obj->getAutoTime();
263  $values["rand_start"] = $this->content_obj->getRandomStart();
264 
265  $this->form->setValuesByArray($values);
266 
267  if ($values["type"] == ilPCTabs::ACCORDION_VER) {
268  $va = $this->form->getItemByPostVar("vaccord_templ");
269  $v = "t:" .
270  ilObjStyleSheet::_lookupTemplateIdByName($this->getStyleId(), $this->content_obj->getTemplate()) . ":" .
271  $this->content_obj->getTemplate();
272  $va->setValue($v);
273  }
274  /*
275  if ($values["type"] == ilPCTabs::ACCORDION_HOR) {
276  $ha = $this->form->getItemByPostVar("haccord_templ");
277  $v = "t:" .
278  ilObjStyleSheet::_lookupTemplateIdByName($this->getStyleId(), $this->content_obj->getTemplate()) . ":" .
279  $this->content_obj->getTemplate();
280  $ha->setValue($v);
281  }*/
282  if ($values["type"] == ilPCTabs::CAROUSEL) {
283  $ca = $this->form->getItemByPostVar("carousel_templ");
284  $v = "t:" .
285  ilObjStyleSheet::_lookupTemplateIdByName($this->getStyleId(), $this->content_obj->getTemplate()) . ":" .
286  $this->content_obj->getTemplate();
287  $ca->setValue($v);
288  }
289  }
290 
291  protected function checkWidthHeight(ilPropertyFormGUI $form): bool
292  {
293  $ok = true;
294  if ($form->getInput("type") === ilPCTabs::ACCORDION_HOR) {
295  if ($form->getInput("content_width") == "") {
296  $form->getItemByPostVar("content_width")
297  ->setAlert($this->lng->txt("cont_hacc_needs_width"));
298  $ok = false;
299  }
300  if ($form->getInput("content_height") == "") {
301  $form->getItemByPostVar("content_height")
302  ->setAlert($this->lng->txt("cont_hacc_needs_height"));
303  $ok = false;
304  }
305  }
306  return $ok;
307  }
308 
309  public function create(): void
310  {
311  $lng = $this->lng;
312 
313  $this->initForm("create");
314  if ($this->form->checkInput() && $this->checkWidthHeight($this->form)) {
315  $this->content_obj = new ilPCTabs($this->getPage());
316  $this->content_obj->create($this->pg_obj, $this->hier_id, $this->pc_id);
317 
318  $this->setPropertiesByForm();
319 
320  for ($i = 0; $i < $this->request->getInt("nr"); $i++) {
321  $this->content_obj->addTab($lng->txt("cont_new_tab"));
322  }
323 
324  $this->updated = $this->pg_obj->update();
325 
326  if ($this->updated === true) {
327  $this->afterCreation();
328  } else {
329  $this->insert();
330  }
331  } else {
332  $this->form->setValuesByPost();
333  $this->insert(true);
334  }
335  }
336 
337  public function afterCreation(): void
338  {
339  $ilCtrl = $this->ctrl;
340 
341  $this->pg_obj->stripHierIDs();
342  $this->pg_obj->addHierIDs();
343  $ilCtrl->setParameter($this, "hier_id", $this->content_obj->readHierId());
344  $ilCtrl->setParameter($this, "pc_id", $this->content_obj->readPCId());
345  $this->content_obj->setHierId($this->content_obj->readHierId());
346  $this->setHierId($this->content_obj->readHierId());
347  $this->content_obj->setPcId($this->content_obj->readPCId());
348  $this->edit();
349  }
350 
351  public function setPropertiesByForm(): void
352  {
354  $f = $this->form;
355 
356  $c->setTabType($f->getInput("type"));
357 
358  $c->setContentWidth((string) $f->getInput("content_width"));
359  $c->setContentHeight((string) $f->getInput("content_height"));
360  $c->setTemplate("");
361  switch ($this->request->getString("type")) {
363  $t = explode(":", $f->getInput("vaccord_templ"));
364  $c->setTemplate($t[2] ?? "");
365  $c->setBehavior($f->getInput("vbehavior"));
366  $c->setHorizontalAlign($f->getInput("valign"));
367  break;
368 
370  $t = explode(":", $f->getInput("haccord_templ"));
371  $c->setTemplate($t[2] ?? "");
372  $c->setBehavior($f->getInput("hbehavior"));
373  break;
374 
375  case ilPCTabs::CAROUSEL:
376  $t = explode(":", $f->getInput("carousel_templ"));
377  $c->setTemplate($t[2] ?? "");
378  $c->setHorizontalAlign($f->getInput("calign"));
379  $c->setAutoTime($f->getInput("auto_time"));
380  $c->setRandomStart($f->getInput("rand_start"));
381  break;
382  }
383  }
384 
385  public function update(): void
386  {
387  $this->initForm();
388  $this->updated = false;
389  if ($this->form->checkInput() && $this->checkWidthHeight($this->form)) {
390  $this->setPropertiesByForm();
391  $this->updated = $this->pg_obj->update();
392  } else {
393  $this->form->setValuesByPost();
394  $this->editProperties(false);
395  return;
396  }
397  if ($this->updated === true) {
398  $this->tpl->setOnScreenMessage('success', $this->lng->txt("msg_obj_modified"), true);
399  $this->ctrl->redirect($this, "editProperties");
400  } else {
401  $this->pg_obj->addHierIDs();
402  $this->editProperties(false);
403  }
404  }
405 
406  public function edit(): void
407  {
408  $tpl = $this->tpl;
409  $ilTabs = $this->tabs;
410  $ilCtrl = $this->ctrl;
411  $ilToolbar = $this->toolbar;
412  $lng = $this->lng;
413 
414  $this->initEditor();
415  $this->tabs->setBackTarget("", "");
416 
417  $tpl->setContent($this->getTabPanels() . $this->getEditorScriptTag($this->pc_id, "Tabs"));
418  }
419 
423  public function saveTabs(): void
424  {
425  $ilCtrl = $this->ctrl;
426  $lng = $this->lng;
427 
428  $captions = $this->request->getStringArray("caption");
429  $positions = $this->request->getStringArray("position");
430  if (count($captions) > 0) {
431  $this->content_obj->saveCaptions($captions);
432  }
433  if (count($positions)) {
434  $this->content_obj->savePositions($positions);
435  }
436  $this->updated = $this->pg_obj->update();
437  $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
438  $ilCtrl->redirect($this, "edit");
439  }
440 
444  public function addTab(): void
445  {
446  $lng = $this->lng;
447  $ilCtrl = $this->ctrl;
448 
449  $this->content_obj->addTab($lng->txt("cont_new_tab"));
450  $this->updated = $this->pg_obj->update();
451 
452  $this->tpl->setOnScreenMessage('success', $lng->txt("cont_added_tab"), true);
453  $ilCtrl->redirect($this, "edit");
454  }
455 
456  public function confirmTabsDeletion(): void
457  {
458  $ilCtrl = $this->ctrl;
459  $tpl = $this->tpl;
460  $lng = $this->lng;
461 
462  $this->setTabs();
463 
464  $tids = $this->request->getStringArray("tid");
465  if (count($tids) == 0) {
466  $this->tpl->setOnScreenMessage('info', $lng->txt("no_checkbox"), true);
467  $ilCtrl->redirect($this, "edit");
468  } else {
469  $cgui = new ilConfirmationGUI();
470  $cgui->setFormAction($ilCtrl->getFormAction($this));
471  $cgui->setHeaderText($lng->txt("cont_tabs_confirm_deletion"));
472  $cgui->setCancel($lng->txt("cancel"), "cancelTabDeletion");
473  $cgui->setConfirm($lng->txt("delete"), "deleteTabs");
474 
475  foreach ($tids as $k => $i) {
476  $id = explode(":", $k);
477  $cgui->addItem(
478  "tid[]",
479  $k,
480  $this->content_obj->getCaption($id[0], $id[1])
481  );
482  }
483 
484  $tpl->setContent($cgui->getHTML());
485  }
486  }
487 
488  public function cancelTabDeletion(): void
489  {
490  $ilCtrl = $this->ctrl;
491  $ilCtrl->redirect($this, "edit");
492  }
493 
494  public function deleteTabs(): void
495  {
496  $ilCtrl = $this->ctrl;
497 
498  $tids = $this->request->getStringArray("tid");
499  foreach ($tids as $tid) {
500  $ids = explode(":", $tid);
501  $this->content_obj->deleteTab($ids[0], $ids[1]);
502  }
503  $this->updated = $this->pg_obj->update();
504 
505  $ilCtrl->redirect($this, "edit");
506  }
507 
508  public function setTabs(): void
509  {
510  $ilTabs = $this->tabs;
511  $ilCtrl = $this->ctrl;
512  $lng = $this->lng;
513 
514  $ilTabs->setBackTarget(
515  $lng->txt("pg"),
516  $this->ctrl->getParentReturn($this)
517  );
518 
519  $ilTabs->addTarget(
520  "cont_tabs",
521  $ilCtrl->getLinkTarget($this, "edit"),
522  "edit",
523  get_class($this)
524  );
525 
526  $ilTabs->addTarget(
527  "cont_edit_tabs",
528  $ilCtrl->getLinkTarget($this, "editProperties"),
529  "editProperties",
530  get_class($this)
531  );
532  }
533 
534  protected function getCaptionForm(string $caption = ""): \ILIAS\Repository\Form\FormAdapterGUI
535  {
536  return $this->gui->form([self::class], "saveCaption")
537  ->text("caption", $this->lng->txt("title"), "", $caption);
538  }
539 
540  protected function getTabPanels(): string
541  {
543  $tabs = $this->content_obj;
544  $items = [];
545  $ui = $this->gui->ui();
546 
547  $actions = [
548  $this->lng->txt("cont_tab_add_above") => "addAbove",
549  $this->lng->txt("cont_tab_add_below") => "addBelow",
550  $this->lng->txt("cont_tab_move_up") => "moveUp",
551  $this->lng->txt("cont_tab_move_down") => "moveDown",
552  $this->lng->txt("cont_tab_move_top") => "moveTop",
553  $this->lng->txt("cont_tab_move_bottom") => "moveBottom",
554  $this->lng->txt("cont_tab_delete") => "deletePanel"
555  ];
556 
557  $captions = $tabs->getCaptions();
558  $cnt = 1;
559  foreach ($captions as $cap) {
560  $this->ctrl->setParameter($this, "cap_pc_id", $cap["pc_id"]);
561  $form = $this->getCaptionForm($cap["caption"]);
562  $components = $this->gui->modal($this->lng->txt("cont_edit_title"))
563  ->form($form)->getTriggerButtonComponents(
564  $this->lng->txt("cont_edit_title"),
565  true
566  );
567  $items[] = $components["modal"];
568  $dd_items = [$components["button"]];
569  foreach ($actions as $lng => $act) {
570  if ($cnt === 1 && in_array($act, ["moveUp", "moveTop"])) {
571  continue;
572  }
573  if ($cnt === count($captions) && in_array($act, ["moveDown", "moveBottom"])) {
574  continue;
575  }
576  $dd_items[] = $ui->factory()->link()->standard(
577  $lng,
578  $this->ctrl->getLinkTarget($this, $act)
579  );
580  }
581  $dd = $ui->factory()->dropdown()->standard($dd_items);
582  $content = $this->getTabContent($cap["pc_id"]);
583  $items[] = $ui->factory()->panel()->standard(
584  $cap["caption"],
585  $ui->factory()->legacy()->content($content)
586  )
587  ->withActions($dd);
588  $cnt++;
589  }
590 
591  return $ui->renderer()->render($items);
592  }
593 
594  protected function getTabContent(string $pc_id): string
595  {
597  $tabs = $this->content_obj;
598  $xml = $tabs->getNodeXml($pc_id);
599 
600  $xml = "<dummy>" . $xml . $this->getPage()->getMultimediaXML() . "</dummy>";
601 
602  $wb_path = ilFileUtils::getWebspaceDir("output") . "/";
603  $params = array('mode' => "presentation", 'enlarge_path' => "#",
604  'fullscreen_link' => "#",
605  'pg_frame' => "", 'webspace_path' => $wb_path);
606  $output = $this->xsl->process($xml, $params);
607 
608  $defs = $this->pc_def->getPCDefinitions();
609  foreach ($defs as $def) {
610  $pc_class = $def["pc_class"];
611  $pc_obj = new $pc_class($this->getPage());
612 
613  // post xsl page content modification by pc elements
614  $output = $pc_obj->modifyPageContentPostXsl($output, "presentation", false);
615  }
616 
617  return $output;
618  }
619 
620  protected function saveCaption(): void
621  {
623  $tabs = $this->content_obj;
624 
625  $form = $this->getCaptionForm();
626  if ($form->isValid()) {
627  $pc_id = $this->request->getString("cap_pc_id");
628  $tabs->saveCaption($pc_id, $form->getData("caption"));
629  $this->updated = $this->pg_obj->update();
630  }
631  $this->ctrl->redirect($this, "edit");
632  }
633 
634  protected function addAbove(): void
635  {
637  $tabs = $this->content_obj;
638  $pc_id = $this->request->getString("cap_pc_id");
639  $tabs->addAbove($pc_id, $this->lng->txt("cont_new_tab"));
640  $this->updated = $this->pg_obj->update();
641  $this->ctrl->redirect($this, "edit");
642  }
643 
644  protected function addBelow(): void
645  {
647  $tabs = $this->content_obj;
648  $pc_id = $this->request->getString("cap_pc_id");
649  $tabs->addBelow($pc_id, $this->lng->txt("cont_new_tab"));
650  $this->updated = $this->pg_obj->update();
651  $this->ctrl->redirect($this, "edit");
652  }
653 
654  protected function moveUp(): void
655  {
657  $tabs = $this->content_obj;
658  $pc_id = $this->request->getString("cap_pc_id");
659  $tabs->moveUp($pc_id);
660  $this->updated = $this->pg_obj->update();
661  $this->ctrl->redirect($this, "edit");
662  }
663 
664  protected function moveDown(): void
665  {
667  $tabs = $this->content_obj;
668  $pc_id = $this->request->getString("cap_pc_id");
669  $tabs->moveDown($pc_id);
670  $this->updated = $this->pg_obj->update();
671  $this->ctrl->redirect($this, "edit");
672  }
673 
674  protected function moveTop(): void
675  {
677  $tabs = $this->content_obj;
678  $pc_id = $this->request->getString("cap_pc_id");
679  $tabs->moveTop($pc_id);
680  $this->updated = $this->pg_obj->update();
681  $this->ctrl->redirect($this, "edit");
682  }
683 
684  protected function moveBottom(): void
685  {
687  $tabs = $this->content_obj;
688  $pc_id = $this->request->getString("cap_pc_id");
689  $tabs->moveBottom($pc_id);
690  $this->updated = $this->pg_obj->update();
691  $this->ctrl->redirect($this, "edit");
692  }
693 
694  protected function deletePanel(): void
695  {
697  $tabs = $this->content_obj;
698  $pc_id = $this->request->getString("cap_pc_id");
699  $tabs->deletePanel($pc_id);
700  $this->updated = $this->pg_obj->update();
701  $this->ctrl->redirect($this, "edit");
702  }
703 
704 }
static getWebspaceDir(string $mode="filesystem")
get webspace directory
This class represents an option in a radio group.
editProperties(bool $init_form=true)
static _lookupTemplateIdByName(int $a_style_id, string $a_name)
Lookup table template preview.
This class represents a selection list property in a property form.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
getItemByPostVar(string $a_post_var)
saveTabs()
Save tabs properties in db and return to page edit screen.
if(! $DIC->user() ->getId()||!ilLTIConsumerAccess::hasCustomProviderCreationAccess()) $params
Definition: ltiregstart.php:31
insert(bool $a_omit_form_init=false)
Insert new tabs.
Interface Observer Contains several chained tasks and infos about them.
setMaxLength(int $a_maxlength)
checkWidthHeight(ilPropertyFormGUI $form)
setHierId(string $a_hier_id)
set hierarchical id in dom object
setContent(string $a_html)
Sets content for standard template.
setOptions(array $a_options)
ilToolbarGUI $toolbar
getCaptionForm(string $caption="")
$c
Definition: deliver.php:25
ilDBInterface $db
getInput(string $a_post_var, bool $ensureValidation=true)
Returns the input of an item, if item provides getInput method and as fallback the value of the HTTP-...
Content object of ilPageObject (see ILIAS DTD).
$components
addTab()
Save tabs properties in db and return to page edit screen.
const ACCORDION_HOR
This class represents a hidden form property in a property form.
User Interface for Editing of Page Content Objects (Paragraphs, Tables, ...)
This class represents a property in a property form.
static addCss()
Add required css.
redirect(object $a_gui_obj, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false)
initForm(string $a_mode="edit")
This class represents a number property in a property form.
ilPropertyFormGUI $form
Class ilPageObject Handles PageObjects of ILIAS Learning Modules (see ILIAS DTD)
global $DIC
Definition: shib_login.php:22
ilGlobalTemplateInterface $tpl
const ACCORDION_VER
getEditorScriptTag(string $form_pc_id="", string $form_cname="")
form( $class_path, string $cmd, string $submit_caption="")
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
__construct(Container $dic, ilPlugin $plugin)
ILIAS COPage Xsl XslManager $xsl
const CAROUSEL
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setParameter(object $a_gui_obj, string $a_parameter, $a_value)
__construct(ilPageObject $a_pg_obj, ?ilPageContent $a_content_obj, string $a_hier_id, string $a_pc_id="")
getTemplateOptions(string $a_type="")
Get table templates.
ILIAS COPage PC PCDefinition $pc_def