ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilColumnGUI.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
23 define("IL_COL_LEFT", "left");
24 define("IL_COL_RIGHT", "right");
25 define("IL_COL_CENTER", "center");
26 
27 define("IL_SCREEN_SIDE", "");
28 define("IL_SCREEN_CENTER", "center");
29 define("IL_SCREEN_FULL", "full");
30 
41 {
42  protected string $coltype;
44  protected \ILIAS\Block\StandardGUIRequest $request;
45  protected ilCtrl $ctrl;
46  protected ilLanguage $lng;
47  protected ilObjUser $user;
48  protected ilTemplate $tpl;
50  protected ilSetting $settings;
51 
52  protected string $side = IL_COL_RIGHT;
53  protected string $type;
54  protected bool $enableedit = false;
55  protected bool $repositorymode = false;
57  protected array $repositoryitems = array();
59  protected array $blocks = [];
60  // all blocks that are repository objects
62  protected array $rep_block_types = array("feed","poll");
64  protected array $block_property = array();
65  protected bool $admincommands = false;
67 
68  //
69  // This two arrays may be replaced by some
70  // xml or other magic in the future...
71  //
72 
73  protected static array $locations = array(
74  "ilNewsForContextBlockGUI" => "Services/News/",
75  "ilCalendarBlockGUI" => "Services/Calendar/",
76  "ilPDCalendarBlockGUI" => "Services/Calendar/",
77  "ilConsultationHoursCalendarBlockGUI" => "Services/Calendar/",
78  "ilPDTasksBlockGUI" => "Services/Tasks/",
79  "ilPDMailBlockGUI" => "Services/Mail/",
80  "ilPDSelectedItemsBlockGUI" => "Services/Dashboard/ItemsBlock/",
81  "ilPDNewsBlockGUI" => "Services/News/",
82  'ilPollBlockGUI' => 'Modules/Poll/',
83  'ilClassificationBlockGUI' => 'Services/Classification/',
84  "ilPDStudyProgrammeSimpleListGUI" => "Modules/StudyProgramme/",
85  "ilPDStudyProgrammeExpandableListGUI" => "Modules/StudyProgramme/",
86  );
87 
88  protected static array $block_types = array(
89  "ilPDMailBlockGUI" => "pdmail",
90  "ilPDTasksBlockGUI" => "pdtasks",
91  "ilPDNewsBlockGUI" => "pdnews",
92  "ilNewsForContextBlockGUI" => "news",
93  "ilCalendarBlockGUI" => "cal",
94  "ilPDCalendarBlockGUI" => "pdcal",
95  "ilConsultationHoursCalendarBlockGUI" => "chcal",
96  "ilPDSelectedItemsBlockGUI" => "pditems",
97  'ilPollBlockGUI' => 'poll',
98  'ilClassificationBlockGUI' => 'clsfct',
99  "ilPDStudyProgrammeSimpleListGUI" => "prgsimplelist",
100  "ilPDStudyProgrammeExpandableListGUI" => "prgexpandablelist",
101  );
102 
103 
104  protected array $default_blocks = array(
105  "cat" => array(
106  "ilNewsForContextBlockGUI" => IL_COL_RIGHT,
107  "ilClassificationBlockGUI" => IL_COL_RIGHT
108  ),
109  "crs" => array(
110  "ilNewsForContextBlockGUI" => IL_COL_RIGHT,
111  "ilCalendarBlockGUI" => IL_COL_RIGHT,
112  "ilConsultationHoursCalendarBlockGUI" => IL_COL_RIGHT,
113  "ilClassificationBlockGUI" => IL_COL_RIGHT
114  ),
115  "grp" => array(
116  "ilNewsForContextBlockGUI" => IL_COL_RIGHT,
117  "ilCalendarBlockGUI" => IL_COL_RIGHT,
118  "ilConsultationHoursCalendarBlockGUI" => IL_COL_RIGHT,
119  "ilClassificationBlockGUI" => IL_COL_RIGHT
120  ),
121  "frm" => array("ilNewsForContextBlockGUI" => IL_COL_RIGHT),
122  "root" => array(),
123  "info" => array(
124  "ilNewsForContextBlockGUI" => IL_COL_RIGHT),
125  "pd" => array(
126  "ilPDTasksBlockGUI" => IL_COL_RIGHT,
127  "ilPDCalendarBlockGUI" => IL_COL_RIGHT,
128  "ilPDNewsBlockGUI" => IL_COL_RIGHT,
129  "ilPDStudyProgrammeSimpleListGUI" => IL_COL_CENTER,
130  "ilPDStudyProgrammeExpandableListGUI" => IL_COL_CENTER,
131  "ilPDSelectedItemsBlockGUI" => IL_COL_CENTER,
132  "ilPDMailBlockGUI" => IL_COL_RIGHT
133  )
134  );
135 
136  // these are only for pd blocks
137  // other blocks are rep objects now
138  protected array $custom_blocks = array(
139  "cat" => array(),
140  "crs" => array(),
141  "grp" => array(),
142  "frm" => array(),
143  "root" => array(),
144  "info" => array(),
145  "fold" => array(),
146  "pd" => array()
147  );
148 
149  // check global activation for these block types
150  // @todo: add calendar
151  protected array $check_global_activation =
152  array("news" => true,
153  "cal" => true,
154  "pdcal" => true,
155  "chcal" => true,
156  "pdnews" => true,
157  "pdtag" => true,
158  "pdmail" => true,
159  "pdtasks" => true,
160  "tagcld" => true,
161  "clsfct" => true);
162 
163  protected array $check_nr_limit =
164  array("pdfeed" => true);
165 
166  public function __construct(
167  string $a_col_type = "",
168  string $a_side = "",
169  bool $use_std_context = false
170  ) {
171  global $DIC;
172 
173  $this->ctrl = $DIC->ctrl();
174  $this->lng = $DIC->language();
175  $this->user = $DIC->user();
176  $this->browser = $DIC->http()->agent();
177  $this->settings = $DIC->settings();
178  $this->setColType($a_col_type);
179  $this->setSide($a_side);
180 
181  $block_service = new ILIAS\Block\Service($DIC);
182  $this->request = $block_service->internal()
183  ->gui()
184  ->standardRequest();
185 
186  $this->dash_side_panel_settings = new ilDashboardSidePanelSettingsRepository();
187  }
188 
192  public static function addCustomBlockLocation(
193  string $className,
194  string $path
195  ): void {
196  self::$locations[$className] = $path;
197  }
198 
204  public static function addCustomBlockType(
205  string $className,
206  string $identifier
207  ): void {
208  self::$block_types[$className] = $identifier;
209  }
210 
214  public static function getCmdSide(): ?string
215  {
216  global $DIC;
217 
218  $block_service = new ILIAS\Block\Service($DIC);
219  $request = $block_service->internal()
220  ->gui()
221  ->standardRequest();
222  return $request->getColSide();
223  }
224 
228  public function setColType(string $a_coltype): void
229  {
230  $this->coltype = $a_coltype;
231  }
232 
233  public function getColType(): string
234  {
235  return $this->coltype;
236  }
237 
241  public function setSide(string $a_side): void
242  {
243  $this->side = $a_side;
244  }
245 
246  public function getSide(): string
247  {
248  return $this->side;
249  }
250 
251  public function setEnableEdit(bool $a_enableedit): void
252  {
253  $this->enableedit = $a_enableedit;
254  }
255 
256  public function getEnableEdit(): bool
257  {
258  return $this->enableedit;
259  }
260 
261  public function setRepositoryMode(
262  bool $a_repositorymode
263  ): void {
264  $this->repositorymode = $a_repositorymode;
265  }
266 
267  public function getRepositoryMode(): bool
268  {
269  return $this->repositorymode;
270  }
271 
272  public function setAdminCommands(bool $a_admincommands): void
273  {
274  $this->admincommands = $a_admincommands;
275  }
276 
277  public function getAdminCommands(): bool
278  {
279  return $this->admincommands;
280  }
281 
282  public static function getScreenMode(): string
283  {
284  global $DIC;
285 
286  $ilCtrl = $DIC->ctrl();
287 
288  $block_service = new ILIAS\Block\Service($DIC);
289  $request = $block_service->internal()
290  ->gui()
291  ->standardRequest();
292 
293  if ($ilCtrl->getCmdClass() == "ilcolumngui") {
294  switch ($ilCtrl->getCmd()) {
295  case "addBlock":
296  return IL_SCREEN_CENTER;
297  }
298  }
299 
300  $cur_block_type = $request->getBlockType();
301 
302  if ($class = array_search($cur_block_type, self::$block_types)) {
303  return call_user_func(array($class, 'getScreenMode'));
304  }
305 
306  return IL_SCREEN_SIDE;
307  }
308 
313  public function setBlockProperty(
314  string $a_block_type,
315  string $a_property,
316  string $a_value
317  ): void {
318  $this->block_property[$a_block_type][$a_property] = $a_value;
319  }
320 
321  public function getBlockProperties(
322  string $a_block_type
323  ): array {
324  return $this->block_property[$a_block_type];
325  }
326 
327  public function setAllBlockProperties(
328  array $a_block_properties
329  ): void {
330  $this->block_property = $a_block_properties;
331  }
332 
333  public function setRepositoryItems(
334  array $a_repositoryitems
335  ): void {
336  $this->repositoryitems = $a_repositoryitems;
337  }
338 
339  public function getRepositoryItems(): array
340  {
341  return $this->repositoryitems;
342  }
343 
344  public function executeCommand(): string
345  {
346  $ilCtrl = $this->ctrl;
347 
348  $ilCtrl->setParameter($this, "col_side", $this->getSide());
349 
350  $next_class = $ilCtrl->getNextClass();
351  $cmd = $ilCtrl->getCmd("getHTML");
352 
353  $cur_block_type = $this->request->getBlockType();
354 
355  if ($next_class != "") {
356  // forward to block
357  if ($gui_class = array_search($cur_block_type, self::$block_types)) {
358  $ilCtrl->setParameter($this, "block_type", $cur_block_type);
359  $block_gui = new $gui_class();
360  $block_gui->setProperties($this->block_property[$cur_block_type] ?? []);
361  $block_gui->setRepositoryMode($this->getRepositoryMode());
362  $block_gui->setEnableEdit($this->getEnableEdit());
363  $block_gui->setAdminCommands($this->getAdminCommands());
364 
365  if (in_array($gui_class, $this->custom_blocks[$this->getColType()]) ||
366  in_array($cur_block_type, $this->rep_block_types)) {
367  $block_class = substr($gui_class, 0, strlen($gui_class) - 3);
368  $app_block = new $block_class($this->request->getBlockId());
369  $block_gui->setBlock($app_block);
370  }
371  $html = $ilCtrl->forwardCommand($block_gui);
372  $ilCtrl->setParameter($this, "block_type", "");
373 
374  return $html;
375  }
376  } else {
377  return (string) $this->$cmd();
378  }
379  return "";
380  }
381 
382  public function getHTML(): string
383  {
384  $ilCtrl = $this->ctrl;
385 
386  $ilCtrl->setParameter($this, "col_side", $this->getSide());
387 
388  $this->tpl = new ilTemplate("tpl.column.html", true, true, "Services/Block");
389  $this->determineBlocks();
390  $this->showBlocks();
391  return $this->tpl->get();
392  }
393 
394  public function showBlocks(): void
395  {
396  $ilCtrl = $this->ctrl;
398 
399  $i = 1;
400  $sum_moveable = count($this->blocks[$this->getSide()]);
401 
402  foreach ($this->blocks[$this->getSide()] as $block) {
403  $gui_class = $block["class"] ?? null;
404  if (!is_string($gui_class)) {
405  continue;
406  }
407  $block_class = substr($gui_class, 0, strlen($gui_class) - 3);
408 
409  // get block gui class
410  $block_gui = new $gui_class();
411  if (isset($this->block_property[$block["type"]])) {
412  $block_gui->setProperties($this->block_property[$block["type"]]);
413  }
414  $block_gui->setRepositoryMode($this->getRepositoryMode());
415  $block_gui->setEnableEdit($this->getEnableEdit());
416  $block_gui->setAdminCommands($this->getAdminCommands());
417 
418  // get block for custom blocks
419  if ($block["custom"]) {
420  $path = "./" . self::$locations[$gui_class] . "classes/" .
421  "class." . $block_class . ".php";
422  if (file_exists($path)) {
423  $app_block = new $block_class((int) $block["id"]);
424  } else {
425  // we only need generic block
426  $app_block = new ilCustomBlock((int) $block["id"]);
427  }
428  $block_gui->setBlock($app_block);
429  if (isset($block["ref_id"])) {
430  $block_gui->setRefId((int) $block["ref_id"]);
431  }
432  }
433 
434  $ilCtrl->setParameter($this, "block_type", $block_gui->getBlockType());
435  $this->tpl->setCurrentBlock("col_block");
436 
437  $html = $ilCtrl->getHTML($block_gui);
438 
439  // don't render a block if it's empty
440  if ($html != "") {
441  $this->tpl->setVariable("BLOCK", $html);
442  $this->tpl->parseCurrentBlock();
443  $ilCtrl->setParameter($this, "block_type", "");
444  }
445  }
446  }
447 
448 
452  public function updateBlock(): void
453  {
454  $ilCtrl = $this->ctrl;
455 
456  $this->determineBlocks();
457  $i = 1;
458  $sum_moveable = count($this->blocks[$this->getSide()]);
459 
460  foreach ($this->blocks[$this->getSide()] as $block) {
461 
462  // set block id to context obj id,
463  // if block is not a custom block and context is not personal desktop
464  if (!$block["custom"] && $ilCtrl->getContextObjType() != "" && $ilCtrl->getContextObjType() != "user") {
465  $block["id"] = $ilCtrl->getContextObjId();
466  }
467 
468  if ($this->request->getBlockId() == "block_" . $block["type"] . "_" . $block["id"]) {
469  $gui_class = $block["class"];
470  $block_class = substr($block["class"], 0, strlen($block["class"]) - 3);
471 
472  $block_gui = new $gui_class();
473  $block_gui->setProperties($this->block_property[$block["type"]]);
474  $block_gui->setRepositoryMode($this->getRepositoryMode());
475  $block_gui->setEnableEdit($this->getEnableEdit());
476  $block_gui->setAdminCommands($this->getAdminCommands());
477 
478  // get block for custom blocks
479  if ($block["custom"]) {
480  $app_block = new $block_class($block["id"]);
481  $block_gui->setBlock($app_block);
482  $block_gui->setRefId($block["ref_id"]);
483  }
484 
485  $ilCtrl->setParameter($this, "block_type", $block["type"]);
486  echo $ilCtrl->getHTML($block_gui);
487  exit;
488  }
489 
490  // count (moveable) blocks
491  if ($block["type"] != "pdfeedb"
492  && $block["type"] != "news") {
493  $i++;
494  } else {
495  $sum_moveable--;
496  }
497  }
498  echo "Error: ilColumnGUI::updateBlock: Block '" .
499  $this->request->getBlockId() . "' unknown.";
500  exit;
501  }
502 
506  public function activateBlock(): void
507  {
509  $ilCtrl = $this->ctrl;
510 
511  if ($this->request->getBlock() != "") {
512  $block = explode("_", $this->request->getBlock());
513  ilBlockSetting::_writeDetailLevel($block[0], 2, $ilUser->getId(), $block[1]);
514  }
515 
516  $ilCtrl->returnToParent($this);
517  }
518 
522  public function addBlock(): string
523  {
524  $ilCtrl = $this->ctrl;
525 
526  $class = array_search($this->request->getBlockType(), self::$block_types);
527 
528  $ilCtrl->setCmdClass($class);
529  $ilCtrl->setCmd("create");
530  $block_gui = new $class();
531  $block_gui->setProperties($this->block_property[$this->request->getBlockType()]);
532  $block_gui->setRepositoryMode($this->getRepositoryMode());
533  $block_gui->setEnableEdit($this->getEnableEdit());
534  $block_gui->setAdminCommands($this->getAdminCommands());
535 
536  $ilCtrl->setParameter($this, "block_type", $this->request->getBlockType());
537  $html = $ilCtrl->forwardCommand($block_gui);
538  $ilCtrl->setParameter($this, "block_type", "");
539  return $html;
540  }
541 
545  public function determineBlocks(): void
546  {
548  $ilCtrl = $this->ctrl;
549 
550  $this->blocks[IL_COL_LEFT] = array();
551  $this->blocks[IL_COL_RIGHT] = array();
552  $this->blocks[IL_COL_CENTER] = array();
553 
554  $user_id = ($this->getColType() === "pd")
555  ? $ilUser->getId()
556  : 0;
557 
558  $def_nr = 1000;
559  if (isset($this->default_blocks[$this->getColType()])) {
560  foreach ($this->default_blocks[$this->getColType()] as $class => $def_side) {
561  $type = self::$block_types[$class];
562  if ($this->isGloballyActivated($type)) {
563  $nr = $def_nr++;
564 
565  // extra handling for system messages, feedback block and news
566  if ($type == "news") { // always show news first
567  $nr = -15;
568  }
569  if ($type == "cal") {
570  $nr = -8;
571  }
572  if ($type == "chcal") { // consultation hours always directly below calendar
573  $nr = -7;
574  }
575  if ($type == "pdfeedb") { // always show feedback request second
576  $nr = -10;
577  }
578  if ($type == "clsfct") { // mkunkel wants to have this on top
579  $nr = -16;
580  }
581  $side = ilBlockSetting::_lookupSide($type, $user_id);
582  if (is_null($side) || $side === "") {
583  $side = $def_side;
584  }
585  if ($side == IL_COL_LEFT) {
586  $side = IL_COL_RIGHT;
587  }
588  $this->blocks[$side][] = array(
589  "nr" => $nr,
590  "class" => $class,
591  "type" => $type,
592  "id" => 0,
593  "custom" => false);
594  }
595  }
596  }
597 
598  if (!$this->getRepositoryMode()) {
599  $custom_block = new ilCustomBlock();
600  $custom_block->setContextObjId($ilCtrl->getContextObjId());
601  $custom_block->setContextObjType($ilCtrl->getContextObjType());
602  $c_blocks = $custom_block->queryBlocksForContext();
603 
604  foreach ($c_blocks as $c_block) {
605  $type = $c_block["type"];
606 
607  if ($this->isGloballyActivated($type)) {
608  $class = array_search($type, self::$block_types);
609  $nr = $def_nr++;
610  $side = ilBlockSetting::_lookupSide($type, $user_id, $c_block["id"]);
611  if (is_null($side)) {
612  $side = IL_COL_RIGHT;
613  }
614 
615  $this->blocks[$side][] = array(
616  "nr" => $nr,
617  "class" => $class,
618  "type" => $type,
619  "id" => $c_block["id"],
620  "custom" => true);
621  }
622  }
623  } else { // get all subitems
624  $rep_items = $this->getRepositoryItems();
625  foreach ($this->rep_block_types as $block_type) {
626  if ($this->isGloballyActivated($block_type)) {
627  if (!isset($rep_items[$block_type]) || !is_array($rep_items[$block_type])) {
628  continue;
629  }
630  foreach ($rep_items[$block_type] as $item) {
631  $costum_block = new ilCustomBlock();
632  $costum_block->setContextObjId((int) $item["obj_id"]);
633  $costum_block->setContextObjType($block_type);
634  $c_blocks = $costum_block->queryBlocksForContext();
635  $c_block = $c_blocks[0];
636 
637  $type = $block_type;
638  $class = array_search($type, self::$block_types);
639  $nr = $def_nr++;
640  $side = ilBlockSetting::_lookupSide($type, $user_id, (int) $c_block["id"]);
641  if ($side == false) {
642  $side = IL_COL_RIGHT;
643  }
644 
645  $this->blocks[$side][] = array(
646  "nr" => $nr,
647  "class" => $class,
648  "type" => $type,
649  "id" => $c_block["id"],
650  "custom" => true,
651  "ref_id" => $item["ref_id"]);
652  }
653  }
654  }
655 
656  // repository object custom blocks
657  $custom_block = new ilCustomBlock();
658  $custom_block->setContextObjId($ilCtrl->getContextObjId());
659  $custom_block->setContextObjType($ilCtrl->getContextObjType());
660  $c_blocks = $custom_block->queryBlocksForContext(false); // get all sub-object types
661  foreach ($c_blocks as $c_block) {
662  $type = $c_block["type"];
663  $class = array_search($type, self::$block_types);
664 
665  if ($class) {
666  $nr = $def_nr++;
667  $side = IL_COL_RIGHT;
668 
669  $this->blocks[$side][] = array(
670  "nr" => $nr,
671  "class" => $class,
672  "type" => $type,
673  "id" => $c_block["id"],
674  "custom" => true);
675  }
676  }
677  }
678 
679  $this->blocks[IL_COL_LEFT] =
680  ilArrayUtil::sortArray($this->blocks[IL_COL_LEFT], "nr", "asc", true);
681  $this->blocks[IL_COL_RIGHT] =
682  ilArrayUtil::sortArray($this->blocks[IL_COL_RIGHT], "nr", "asc", true);
683  $this->blocks[IL_COL_CENTER] =
684  ilArrayUtil::sortArray($this->blocks[IL_COL_CENTER], "nr", "asc", true);
685  }
686 
690  protected function isGloballyActivated(
691  string $a_type
692  ): bool {
694  $ilCtrl = $this->ctrl;
695 
696  if ($a_type == 'pdfeed') {
697  return false;
698  }
699 
700  if (isset($this->check_global_activation[$a_type]) && $this->check_global_activation[$a_type]) {
701  if ($a_type == 'pdnews') {
702  return ($this->dash_side_panel_settings->isEnabled($this->dash_side_panel_settings::NEWS) &&
703  $ilSetting->get('block_activated_news'));
704  } elseif ($a_type == 'pdmail') {
705  return $this->dash_side_panel_settings->isEnabled($this->dash_side_panel_settings::MAIL);
706  } elseif ($a_type == 'pdtasks') {
707  return $this->dash_side_panel_settings->isEnabled($this->dash_side_panel_settings::TASKS);
708  } elseif ($a_type == 'news') {
709  return
710  $ilSetting->get('block_activated_news') &&
711 
712  (!in_array($ilCtrl->getContextObjType(), ["grp", "crs"]) ||
714  $GLOBALS['ilCtrl']->getContextObjId(),
716  "1"
717  )) &&
719  $GLOBALS['ilCtrl']->getContextObjId(),
720  'cont_show_news',
721  "1"
722  );
723  } elseif ($ilSetting->get("block_activated_" . $a_type)) {
724  return true;
725  } elseif ($a_type == 'cal' || $a_type == 'chcal') {
726  return ilCalendarSettings::lookupCalendarContentPresentationEnabled($ilCtrl->getContextObjId());
727  } elseif ($a_type == 'pdcal') {
728  if (!$this->dash_side_panel_settings->isEnabled($this->dash_side_panel_settings::CALENDAR)) {
729  return false;
730  }
731  return ilCalendarSettings::_getInstance()->isEnabled();
732  } elseif ($a_type == "tagcld") {
733  $tags_active = new ilSetting("tags");
734  return (bool) $tags_active->get("enable", "0");
735  } elseif ($a_type == "clsfct") {
736  if ($ilCtrl->getContextObjType() == "cat") { // taxonomy presentation in classification block
737  return true;
738  }
739  $tags_active = new ilSetting("tags"); // tags presentation in classification block
740  return (bool) $tags_active->get("enable", "0");
741  }
742  return false;
743  }
744  return true;
745  }
746 
750  protected function exceededLimit(
751  string $a_type
752  ): bool {
754  $ilCtrl = $this->ctrl;
755 
756  if ($this->check_nr_limit[$a_type]) {
757  if (!$this->getRepositoryMode()) {
758  $costum_block = new ilCustomBlock();
759  $costum_block->setContextObjId($ilCtrl->getContextObjId());
760  $costum_block->setContextObjType($ilCtrl->getContextObjType());
761  $costum_block->setType($a_type);
762  $res = $costum_block->queryCntBlockForContext();
763  $cnt = (int) $res[0]["cnt"];
764  } else {
765  return false; // not implemented for repository yet
766  }
767 
768 
769  if ($ilSetting->get("block_limit_" . $a_type) > $cnt) {
770  return false;
771  } else {
772  return true;
773  }
774  }
775  return false;
776  }
777 
778  public function setActionMenu(
779  ilAdvancedSelectionListGUI $action_menu
780  ): void {
781  $this->action_menu = $action_menu;
782  }
783 
785  {
786  return $this->action_menu;
787  }
788 }
static addCustomBlockType(string $className, string $identifier)
Adds the block type of the custom block gui.
$res
Definition: ltiservices.php:69
setSide(string $a_side)
static getCmdSide()
Get Column Side of Current Command.
exit
Definition: login.php:28
static array $locations
This library is borrowed from the phpGroupWare API http://www.phpgroupware.org/api Modifications made...
setActionMenu(ilAdvancedSelectionListGUI $action_menu)
setCmdClass($a_cmd_class)
activateBlock()
Activate hidden block.
ilTemplate $tpl
__construct(string $a_col_type="", string $a_side="", bool $use_std_context=false)
const IL_COL_CENTER
setAdminCommands(bool $a_admincommands)
setRepositoryMode(bool $a_repositorymode)
const IL_COL_RIGHT
getBlockProperties(string $a_block_type)
setEnableEdit(bool $a_enableedit)
AgentDetermination $browser
addBlock()
Add a block.
$path
Definition: ltiservices.php:32
ilDashboardSidePanelSettingsRepository $dash_side_panel_settings
static _lookupContainerSetting(int $a_id, string $a_keyword, string $a_default_value=null)
static array $block_types
global $DIC
Definition: feed.php:28
exceededLimit(string $a_type)
Check whether limit is not exceeded.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
isGloballyActivated(string $a_type)
Check whether a block type is globally activated.
array $check_global_activation
Column user interface class.
static _writeDetailLevel(string $a_type, string $a_value, int $a_user=0, int $a_block_id=0)
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
const IL_SCREEN_CENTER
ilAdvancedSelectionListGUI $action_menu
setBlockProperty(string $a_block_type, string $a_property, string $a_value)
This function is supposed to be used for block type specific properties, that should be passed to ilB...
static lookupCalendarContentPresentationEnabled(int $obj_id)
setColType(string $a_coltype)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getScreenMode()
global $ilSetting
Definition: privfeed.php:17
updateBlock()
Update Block (asynchronous)
$ilUser
Definition: imgupload.php:34
setParameter(object $a_gui_obj, string $a_parameter, $a_value)
static _lookupSide(string $a_type, int $a_user=0, int $a_block_id=0)
Lookup side.
const IL_SCREEN_SIDE
ilSetting $settings
static addCustomBlockLocation(string $className, string $path)
Adds location information of the custom block gui.
setRepositoryItems(array $a_repositoryitems)
determineBlocks()
Determine which blocks to show.
const IL_COL_LEFT
setAllBlockProperties(array $a_block_properties)
ILIAS Block StandardGUIRequest $request
$i
Definition: metadata.php:41
static sortArray(array $array, string $a_array_sortby_key, string $a_array_sortorder="asc", bool $a_numeric=false, bool $a_keep_keys=false)
ilLanguage $lng