ILIAS  release_8 Revision v8.24
class.ilColumnGUI.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
23define("IL_COL_LEFT", "left");
24define("IL_COL_RIGHT", "right");
25define("IL_COL_CENTER", "center");
26
27define("IL_SCREEN_SIDE", "");
28define("IL_SCREEN_CENTER", "center");
29define("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;
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;
397 $ilUser = $this->user;
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 {
508 $ilUser = $this->user;
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 {
547 $ilUser = $this->user;
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 {
693 $ilSetting = $this->settings;
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 {
753 $ilSetting = $this->settings;
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}
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
This library is borrowed from the phpGroupWare API http://www.phpgroupware.org/api Modifications made...
const IL_SCREEN_SIDE
const IL_SCREEN_CENTER
const IL_COL_RIGHT
const IL_COL_CENTER
const IL_COL_LEFT
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static sortArray(array $array, string $a_array_sortby_key, string $a_array_sortorder="asc", bool $a_numeric=false, bool $a_keep_keys=false)
static _lookupSide(string $a_type, int $a_user=0, int $a_block_id=0)
Lookup side.
static _writeDetailLevel(string $a_type, string $a_value, int $a_user=0, int $a_block_id=0)
static lookupCalendarContentPresentationEnabled(int $obj_id)
Column user interface class.
updateBlock()
Update Block (asynchronous)
ilLanguage $lng
static addCustomBlockLocation(string $className, string $path)
Adds location information of the custom block gui.
AgentDetermination $browser
static array $locations
setColType(string $a_coltype)
static array $block_types
setAdminCommands(bool $a_admincommands)
setRepositoryItems(array $a_repositoryitems)
addBlock()
Add a block.
ilSetting $settings
setSide(string $a_side)
static getScreenMode()
determineBlocks()
Determine which blocks to show.
setAllBlockProperties(array $a_block_properties)
setEnableEdit(bool $a_enableedit)
ILIAS Block StandardGUIRequest $request
isGloballyActivated(string $a_type)
Check whether a block type is globally activated.
exceededLimit(string $a_type)
Check whether limit is not exceeded.
static addCustomBlockType(string $className, string $identifier)
Adds the block type of the custom block gui.
getBlockProperties(string $a_block_type)
setActionMenu(ilAdvancedSelectionListGUI $action_menu)
array $check_global_activation
ilTemplate $tpl
ilDashboardSidePanelSettingsRepository $dash_side_panel_settings
setRepositoryMode(bool $a_repositorymode)
activateBlock()
Activate hidden block.
__construct(string $a_col_type="", string $a_side="", bool $use_std_context=false)
static getCmdSide()
Get Column Side of Current Command.
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 _lookupContainerSetting(int $a_id, string $a_keyword, string $a_default_value=null)
Class ilCtrl provides processing control methods.
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...
language handling
User class.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
special template class to simplify handling of ITX/PEAR
return['3gp', '7z', 'ai', 'aif', 'aifc', 'aiff', 'au', 'arw', 'avi', 'backup', 'bak', 'bas', 'bpmn', 'bpmn2', 'bmp', 'bib', 'bibtex', 'bz', 'bz2', 'c', 'c++', 'cc', 'cct', 'cdf', 'cer', 'class', 'cls', 'conf', 'cpp', 'crt', 'crs', 'crw', 'cr2', 'css', 'cst', 'csv', 'cur', 'db', 'dcr', 'des', 'dng', 'doc', 'docx', 'dot', 'dotx', 'dtd', 'dvi', 'el', 'eps', 'epub', 'f', 'f77', 'f90', 'flv', 'for', 'g3', 'gif', 'gl', 'gan', 'ggb', 'gsd', 'gsm', 'gtar', 'gz', 'gzip', 'h', 'hpp', 'htm', 'html', 'htmls', 'ibooks', 'ico', 'ics', 'ini', 'ipynb', 'java', 'jbf', 'jpeg', 'jpg', 'js', 'jsf', 'jso', 'json', 'latex', 'lang', 'less', 'log', 'lsp', 'ltx', 'm1v', 'm2a', 'm2v', 'm3u', 'm4a', 'm4v', 'markdown', 'm', 'mat', 'md', 'mdl', 'mdown', 'mid', 'min', 'midi', 'mobi', 'mod', 'mov', 'movie', 'mp2', 'mp3', 'mp4', 'mpa', 'mpeg', 'mpg', 'mph', 'mpga', 'mpp', 'mpt', 'mpv', 'mpx', 'mv', 'mw', 'mv4', 'nb', 'nbp', 'nef', 'nif', 'niff', 'obj', 'obm', 'odt', 'ods', 'odp', 'odg', 'odf', 'oga', 'ogg', 'ogv', 'old', 'p', 'pas', 'pbm', 'pcl', 'pct', 'pcx', 'pdf', 'pgm', 'pic', 'pict', 'png', 'por', 'pov', 'project', 'properties', 'ppa', 'ppm', 'pps', 'ppsx', 'ppt', 'pptx', 'ppz', 'ps', 'psd', 'pwz', 'qt', 'qtc', 'qti', 'qtif', 'r', 'ra', 'ram', 'rar', 'rast', 'rda', 'rev', 'rexx', 'ris', 'rf', 'rgb', 'rm', 'rmd', 'rmi', 'rmm', 'rmp', 'rt', 'rtf', 'rtx', 'rv', 's', 's3m', 'sav', 'sbs', 'sec', 'sdml', 'sgm', 'sgml', 'smi', 'smil', 'srt', 'sps', 'spv', 'stl', 'svg', 'swa', 'swf', 'swz', 'tar', 'tex', 'texi', 'texinfo', 'text', 'tgz', 'tif', 'tiff', 'ttf', 'txt', 'tmp', 'uvproj', 'vdf', 'vimeo', 'viv', 'vivo', 'vrml', 'vsdx', 'wav', 'webm', 'wmv', 'wmx', 'wmz', 'woff', 'wwd', 'xhtml', 'xif', 'xls', 'xlsx', 'xmind', 'xml', 'xsl', 'xsd', 'zip']
global $DIC
Definition: feed.php:28
$ilUser
Definition: imgupload.php:34
exit
Definition: login.php:28
$path
Definition: ltiservices.php:32
$res
Definition: ltiservices.php:69
$i
Definition: metadata.php:41
global $ilSetting
Definition: privfeed.php:17
$type