37 protected \ILIAS\DI\UIServices
$ui;
44 public function __construct($a_id = 0, $a_id_type = self::REPOSITORY_NODE_ID, $a_parent_node_id = 0)
49 $this->
lng = $DIC->language();
50 $this->
lng->loadLanguageModule(
"pwsp");
51 $this->
help = $DIC[
"ilHelp"];
52 $this->tpl =
$DIC->ui()->mainTemplate();
53 $this->
user = $DIC->user();
54 $this->
tabs = $DIC->tabs();
55 $this->
ctrl = $DIC->ctrl();
56 $this->
ui = $DIC->ui();
58 $this->repo_gui_service =
$DIC->repository()->gui();
72 $this->requested_sortation = $this->std_request->getSortation();
74 $this->
lng->loadLanguageModule(
"cntr");
82 protected function setTabs(
bool $a_show_settings =
true): void
89 $this->
ctrl->setParameter($this,
"wsp_id", $this->node_id);
91 $this->tabs_gui->addTab(
94 $this->ctrl->getLinkTarget($this,
"")
97 $this->
ctrl->setParameterByClass(
98 "ilObjWorkspaceRootFolderGUI",
103 $this->tabs_gui->addTab(
106 $this->ctrl->getLinkTargetByClass(
"ilObjWorkspaceRootFolderGUI",
"shareFilter")
109 $this->tabs_gui->addTab(
111 $lng->
txt(
"wsp_tab_ownership"),
112 $this->ctrl->getLinkTargetByClass(array(
"ilObjWorkspaceRootFolderGUI",
"ilObjectOwnershipManagementGUI"),
"listObjects")
115 if (!$this->
ctrl->getNextClass($this)) {
116 if (stristr($this->
ctrl->getCmd(),
"share")) {
117 $this->tabs_gui->activateTab(
"share");
119 $this->tabs_gui->activateTab(
"wsp");
147 $this->tabs_gui->addSubTab(
150 $this->ctrl->getLinkTarget($this,
"edit")
164 $this->
ctrl->redirect($this,
"");
170 $this->
ctrl->redirect($this,
"");
175 $next_class = $this->
ctrl->getNextClass($this);
176 $cmd = $this->
ctrl->getCmd();
178 switch ($next_class) {
179 case "ilcommonactiondispatchergui":
181 $this->
ctrl->forwardCommand($gui);
184 case "ilobjectownershipmanagementgui":
186 $this->tabs_gui->activateTab(
"ownership");
187 $gui = $this->repo_gui_service->ownershipManagementGUI();
188 $this->
ctrl->forwardCommand($gui);
193 if ($this->type !=
"wsrt") {
213 $this->session_repo->clearClipboard();
224 $this->
ctrl->getLinkTargetByClass(array(
"ilcommonactiondispatchergui",
"iltagginggui"),
"",
"",
true,
false)
235 $this->obj_definition,
237 $this->user_folder_settings
242 $exp->setTypeWhiteList(array(
"wsrt",
"wfld"));
243 $exp->setSelectableTypes(array(
"wsrt",
"wfld"));
244 $exp->setLinkToNodeClass(
true);
245 $exp->setActivateHighlighting(
true);
246 if ($exp->handleCommand()) {
249 $left = $exp->getHTML();
258 $this->tabs_gui->activateTab(
"wsp");
259 $this->tabs_gui->activateSubTab(
"settings");
266 $this->tabs_gui->activateTab(
"wsp");
267 $this->tabs_gui->activateSubTab(
"settings");
272 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_clear_clipboard"),
true);
273 $this->session_repo->clearClipboard();
274 $this->
ctrl->redirect($this);
277 public function cut(): void
279 $item_ids = $this->std_request->getItemIds();
280 if (count($item_ids) == 0) {
281 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"),
true);
282 $this->
ctrl->redirect($this);
287 $repo_switch_allowed =
true;
288 foreach ($item_ids as $item_id) {
289 foreach ($this->tree->getSubTree($this->tree->getNodeData($item_id)) as $node) {
291 $repo_switch_allowed =
false;
295 $no_cut[$node[
"wsp_id"]] = $obj->getTitle();
300 if (count($no_cut)) {
301 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"msg_no_perm_cut") .
" " . implode(
',', $no_cut),
true);
302 $this->
ctrl->redirect($this);
306 $this->session_repo->setClipboardSourceIds($item_ids);
307 $this->session_repo->setClipboardCmd(
'cut');
314 $this->session_repo->setClipboardWsp2Repo(
true);
320 $this->session_repo->setClipboardWsp2Repo(
false);
328 $item_ids = $this->std_request->getItemIds();
329 if (count($item_ids) == 0) {
330 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"),
true);
331 $this->
ctrl->redirect($this);
335 $this->
ctrl->setParameter($this,
"wsp_id", $this->node_id);
337 $repo_switch_allowed =
true;
338 foreach ($item_ids as $item_id) {
339 $node = $this->tree->getNodeData($item_id);
341 $repo_switch_allowed =
false;
343 $current_node = $item_id;
344 $owner = $this->tree->lookupOwner($current_node);
345 if ($owner != $ilUser->getId()) {
346 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'permission_denied'),
true);
347 $this->
ctrl->redirect($this);
349 if (!$this->obj_definition->allowCopy($node[
"type"])) {
350 $this->tpl->setOnScreenMessage(
354 $this->
lng->txt(
"obj_" . $node[
"type"]),
355 $this->lng->txt(
"pwsp_type_cannot_be_copied")
359 $this->
ctrl->redirect($this);
364 $this->session_repo->setClipboardSourceIds($item_ids);
365 $this->session_repo->setClipboardCmd(
'copy');
372 $ids = $this->std_request->getItemIds();
373 if (count($ids) != 1) {
374 $this->
ctrl->redirect($this,
"share");
377 $current_node = current($ids);
380 if (
$handler->checkAccess(
"read",
"", $current_node)) {
382 $this->session_repo->setClipboardSourceIds([$current_node]);
383 $this->session_repo->setClipboardCmd(
'copy');
384 $this->session_repo->setClipboardShared(
true);
388 $perms =
$handler->getPermissions($current_node);
395 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'permission_denied'),
true);
396 $this->
ctrl->redirect($this,
"share");
401 $this->session_repo->setClipboardWsp2Repo(
true);
407 $this->session_repo->setClipboardWsp2Repo(
false);
416 $ilTabs->clearTargets();
418 if (!$this->session_repo->getClipboardShared()) {
419 $ilTabs->setBackTarget(
420 $this->
lng->txt(
'back'),
421 $this->ctrl->getLinkTarget($this)
424 $ilTabs->setBackTarget(
425 $this->
lng->txt(
'back'),
426 $this->ctrl->getLinkTarget($this,
'share')
430 $mode = $this->session_repo->getClipboardCmd();
432 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'msg_' . $mode .
'_clipboard'));
434 $this->tpl->addBlockFile(
437 'tpl.paste_into_multiple_objects.html',
438 "components/ILIAS/WorkspaceFolder"
442 if (!$this->session_repo->getClipboardWsp2Repo()) {
444 $exp->setTypeWhiteList(array(
"wsrt",
"wfld"));
445 $exp->setSelectableTypes(array(
"wsrt",
"wfld"));
446 $exp->setSelectMode(
"node",
false);
447 if ($exp->handleCommand()) {
450 $this->tpl->setVariable(
'OBJECT_TREE', $exp->getHTML());
453 if ($repo_switch_allowed) {
454 $switch_cmd = ($mode ==
"cut")
455 ?
"cut_for_repository"
456 :
"copy_to_repository";
457 $this->tpl->setCurrentBlock(
"switch_button");
458 $this->tpl->setVariable(
'CMD_SWITCH', $switch_cmd);
459 $this->tpl->setVariable(
'TXT_SWITCH', $this->
lng->txt(
'wsp_switch_to_repo_tree'));
460 $this->tpl->parseCurrentBlock();
462 foreach ($this->std_request->getItemIds() as
$id) {
463 $this->tpl->setCurrentBlock(
"hidden");
464 $this->tpl->setVariable(
'VALUE', (
string)
$id);
465 $this->tpl->parseCurrentBlock();
474 'paste_' . $mode .
'_repexpand'
476 $exp->setTargetGet(
'ref_id');
478 if ($this->std_request->getPasteExpand($mode) ==
'') {
481 $expanded = $this->std_request->getPasteExpand($mode);
483 $exp->setCheckedItems(array($this->std_request->getNode()));
484 $exp->setExpandTarget($this->
ctrl->getLinkTarget($this,
'showMoveIntoObjectTree'));
485 $exp->setPostVar(
'node');
486 $exp->setExpand($expanded);
488 $this->tpl->setVariable(
'OBJECT_TREE', $exp->getOutput());
490 if (in_array($mode, [
"copy",
"cut"])) {
491 $switch_cmd = ($mode ==
"cut")
492 ?
"cut_for_workspace"
493 :
"copy_to_workspace";
494 $this->tpl->setCurrentBlock(
"switch_button");
495 $this->tpl->setVariable(
'CMD_SWITCH', $switch_cmd);
496 $this->tpl->setVariable(
'TXT_SWITCH', $this->
lng->txt(
'wsp_switch_to_wsp_tree'));
497 $this->tpl->parseCurrentBlock();
499 foreach ($this->std_request->getItemIds() as
$id) {
500 $this->tpl->setCurrentBlock(
"hidden");
501 $this->tpl->setVariable(
'VALUE', (
string)
$id);
502 $this->tpl->parseCurrentBlock();
510 $this->tpl->setVariable(
'FORM_TARGET',
'_top');
511 $this->tpl->setVariable(
513 $this->
ctrl->getFormAction($this,
'performPasteIntoMultipleObjects')
516 $this->tpl->setVariable(
'CMD_SUBMIT',
'performPasteIntoMultipleObjects');
517 $this->tpl->setVariable(
'TXT_SUBMIT', $this->
lng->txt(
'paste'));
524 $mode = $this->session_repo->getClipboardCmd();
525 $source_node_ids = $this->session_repo->getClipboardSourceIds();
526 $target_node_id = $this->std_request->getNode();
528 if (!is_array($source_node_ids) || count($source_node_ids) == 0) {
529 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_at_least_one_object'),
true);
530 $this->
ctrl->redirect($this);
532 if (!$target_node_id) {
533 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_at_least_one_object'),
true);
534 $this->
ctrl->redirect($this,
"showMoveIntoObjectTree");
537 if (!$this->session_repo->getClipboardWsp2Repo()) {
538 $target_obj_id = $this->tree->lookupObjectId($target_node_id);
545 foreach ($source_node_ids as $source_node_id) {
547 $source_obj_id = $this->tree->lookupObjectId($source_node_id);
552 if ($source_node_id == $target_node_id) {
554 $this->
lng->txt(
'msg_obj_exists_in_folder'),
555 $source_object->getTitle(),
556 $target_object->getTitle()
560 if (!in_array($source_object->getType(), array_keys($target_object->getPossibleSubObjects()))) {
562 $this->
lng->txt(
'msg_obj_may_not_contain_objects_of_type'),
563 $target_object->getTitle(),
564 $source_object->getType()
569 $owner = $this->tree->lookupOwner($source_node_id);
570 if ($mode ==
"copy" && $ilUser->getId() == $owner && !$this->checkPermissionBool(
'copy',
'',
'', $source_node_id)) {
571 $fail[] = $this->
lng->txt(
'permission_denied');
574 if (!$this->session_repo->getClipboardWsp2Repo()) {
575 if ($mode ==
"cut" && $this->tree->isGrandChild($source_node_id, $target_node_id)) {
577 $this->
lng->txt(
'msg_paste_object_not_in_itself'),
578 $source_object->getTitle()
583 if ($this->session_repo->getClipboardWsp2Repo() ==
true) {
585 if (!$ilAccess->checkAccess(
"create",
"", $target_node_id, $source_object->getType())) {
587 $this->
lng->txt(
'msg_no_perm_paste_object_in_folder'),
588 $source_object->getTitle(),
589 $target_object->getTitle()
593 if (!$this->
checkPermissionBool(
'create',
'', $source_object->getType(), $target_node_id)) {
595 $this->
lng->txt(
'msg_no_perm_paste_object_in_folder'),
596 $source_object->getTitle(),
597 $target_object->getTitle()
604 $this->tpl->setOnScreenMessage(
'failure', implode(
"<br />", $fail),
true);
605 $this->
ctrl->redirect($this);
608 foreach ($source_node_ids as $source_node_id) {
610 if ($ilUser->getId() != $owner && $mode ==
"copy") {
613 $node_data = $source_tree->getNodeData($source_node_id);
617 if ($mode ==
"cut") {
618 if (!$this->session_repo->getClipboardWsp2Repo()) {
619 $this->tree->moveTree($source_node_id, $target_node_id);
621 $parent_id = $this->tree->getParentId($source_node_id);
625 $this->tree->deleteReference($source_node_id);
626 $source_node = $this->tree->getNodeData($source_node_id);
627 $this->tree->deleteTree($source_node);
630 $source_object->createReference();
631 $source_object->putInTree($target_node_id);
632 $source_object->setPermissions($target_node_id);
637 elseif ($mode ==
"copy") {
640 $this->wsp_log->debug(
"Copy ID: " . $copy_id .
", Source Node: " . $source_node_id
641 .
", source object: " . $source_object->getId());
642 if (!$this->session_repo->getClipboardWsp2Repo()) {
643 $wizard_options->disableTreeCopy();
645 $wizard_options->saveOwner($ilUser->getId());
646 $wizard_options->saveRoot($source_node_id);
647 $wizard_options->read();
649 $new_obj = $source_object->cloneObject($target_node_id, $copy_id);
651 if ($new_obj && !$this->session_repo->getClipboardWsp2Repo()) {
652 $this->wsp_log->debug(
"New Obj ID: " . $new_obj->getId());
653 $new_obj_node_id = $this->tree->insertObject($target_node_id, $new_obj->getId());
654 $this->
getAccessHandler()->setPermissions($target_node_id, $new_obj_node_id);
657 $wizard_options->deleteAll();
662 if (!$this->session_repo->getClipboardWsp2Repo()) {
670 $this->session_repo->clearClipboard();
673 if ($mode ==
'cut') {
674 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_cut_copied'),
true);
676 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_cloned'),
true);
679 $this->
ctrl->setParameter($this,
"wsp_id", $redirect_node);
680 $this->
ctrl->redirect($this);
688 public function share(
bool $a_load_data =
true): void
700 $tbl->writeFilterToSession();
723 $ilTabs->clearTargets();
724 $ilTabs->setBackTarget(
726 $this->ctrl->getLinkTarget($this,
"share")
741 $this->
ctrl->setParameter($this,
"item_ref_id", $a_node_id);
743 $object_data = $this->
getAccessHandler()->getObjectDataFromNode($a_node_id);
746 $form->setFormAction($ilCtrl->getFormAction($this,
"checkPassword"));
747 $form->setTitle(
$lng->
txt(
"wsp_password_for") .
": " . $object_data[
"title"]);
750 $password->setRetype(
false);
751 $password->setRequired(
true);
752 $password->setSkipSyntaxCheck(
true);
753 $form->addItem($password);
755 $form->addCommandButton(
"checkPassword",
$lng->
txt(
"submit"));
756 $form->addCommandButton(
"share",
$lng->
txt(
"cancel"));
765 $ids = $this->std_request->getItemIds();
766 if (count($ids) != 1) {
767 $this->
ctrl->redirect($this,
"share");
772 if ($form->checkInput()) {
774 $input = md5($form->getInput(
"password"));
775 if ($input == $password) {
779 $this->
ctrl->setParameter($this,
"item_ref_id",
$node_id);
780 $this->
ctrl->redirect($this,
"copyShared");
782 $item = $form->getItemByPostVar(
"password");
783 $item->setAlert(
$lng->
txt(
"wsp_invalid_password"));
784 $this->tpl->setOnScreenMessage(
'failure',
$lng->
txt(
"form_input_not_valid"));
788 $form->setValuesByPost();
792 public static function _goto(
string $a_target): void
796 $id = explode(
"_", $a_target);
798 "ilsharedresourceGUI",
810 $tbl->writeFilterToSession();
821 $item_ids = $this->std_request->getItemIds();
823 if (count($item_ids) == 0) {
824 $this->tpl->setOnScreenMessage(
'failure',
$lng->
txt(
"no_checkbox"),
true);
825 $this->
ctrl->redirect($this,
"");
833 $cgui->setHeaderText(
$lng->
txt(
"info_delete_sure") .
"<br/>" .
834 $lng->
txt(
"info_delete_warning_no_trash"));
836 $cgui->setFormAction($this->
ctrl->getFormAction($this));
837 $cgui->setCancel(
$lng->
txt(
"cancel"),
"cancelDeletion");
838 $cgui->setConfirm(
$lng->
txt(
"confirm"),
"confirmedDelete");
841 $children = $this->tree->getSubTree($this->tree->getNodeData(
$node_id));
842 foreach ($children as $child) {
850 $this->tpl->setOnScreenMessage(
'failure',
$lng->
txt(
"msg_no_perm_delete") .
" " . $title,
true);
851 $this->
ctrl->redirect($this);
869 $this->session_repo->clearClipboard();
870 parent::cancelDelete();
884 $main_tpl =
$DIC->ui()->mainTemplate();
888 if (!$this->session_repo->isClipboardEmpty()) {
890 $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
893 $this->
ctrl->setParameter($this,
"type",
"");
894 $this->
ctrl->setParameter($this,
"item_ref_id",
"");
897 $this->
lng->txt(
'paste_clipboard_items'),
902 $this->
lng->txt(
'clear_clipboard'),
906 $main_tpl->addAdminPanelToolbar(
$toolbar,
true,
false);
909 $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
912 $this->
ctrl->setParameter($this,
"type",
"");
913 $this->
ctrl->setParameter($this,
"item_ref_id",
"");
915 if ($this->
object->gotItems($this->node_id)) {
921 $this->
lng->txt(
'delete_selected_items'),
925 $this->
lng->txt(
'move_selected_items'),
929 $this->
lng->txt(
'copy_selected_items'),
933 $this->
lng->txt(
'download_selected_items'),
939 $main_tpl->addAdminPanelToolbar(
941 $this->
object->gotItems($this->node_id) && $this->session_repo->isClipboardEmpty(),
942 ($this->object->gotItems($this->node_id) && $this->session_repo->isClipboardEmpty())
946 if ($this->
object->gotItems($this->node_id)) {
947 $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
958 $this->user_folder_settings->updateSortation($this->
object->getId(), $this->requested_sortation);
959 $this->
ctrl->redirect($this,
"");
966 $initiated_by_folder_action =
false;
968 $ids = $this->std_request->getItemIds();
970 if (count($ids) == 0) {
971 $this->
ctrl->redirect($this,
"");
977 if ($download_job->run()) {
978 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_bt_download_started'),
true);
980 $this->
ctrl->redirect($this);
987 $title = $this->
lng->txt(
'personal_resources');
1001 $filtered_object_types = [];
1002 foreach (array_keys($object_types) as
$type) {
1003 if (isset($settings_map[
$type])
1004 && $this->
settings->get(
"disable_wsp_" . $settings_map[
$type])) {
1011 return $filtered_object_types;
1016 $icon = $this->ui_factory->symbol()->icon()->custom(
1021 $this->
ctrl->setParameterByClass(self::class,
'new_type',
$type);
1023 AddNewItemElementTypes::Object,
1024 $this->
lng->txt(
'wsp_type_' . $type),
1026 new \
ILIAS\Data\URI(ILIAS_HTTP_PATH .
'/' . $this->
ctrl->getLinkTargetByClass(self::class,
'create'))
1028 $this->
ctrl->clearParameterByClass(self::class,
'new_type',
$type);
Render add new item selector.
Workspace clipboard session repository.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _allocateCopyId()
Allocate a copy for further entries.
static _getInstance(int $a_copy_id)
redirectByClass( $a_class, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false)
@inheritDoc
getLinkTarget(object $a_gui_obj, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
@inheritDoc
setParameterByClass(string $a_class, string $a_parameter, $a_value)
@inheritDoc
Background task for downloads.
static getASCIIFilename(string $a_filename)
setScreenIdComponent(string $a_comp)
loadLanguageModule(string $a_module)
Load language module.
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...
static getLogger(string $a_component_id)
Get component logger.
Component logger with individual log levels by component id.
Class ilObjWorkspaceFolderGUI.
getType()
Functions that must be overwritten.
StandardGUIRequest $std_request
__construct($a_id=0, $a_id_type=self::REPOSITORY_NODE_ID, $a_parent_node_id=0)
buildObjectType(string $type)
setTabs(bool $a_show_settings=true)
setSortation()
Set sortation.
performPasteIntoMultipleObjects()
initPasswordForm(int $a_node_id)
ilWorkspaceFolderUserSettings $user_folder_settings
static _goto(string $a_target)
setAdministrationPanel(bool $active)
isActiveAdministrationPanel()
buildAvailableObjectTypes()
listSharedResourcesOfOtherUser()
showMoveIntoObjectTree(bool $repo_switch_allowed=false)
ILIAS Repository ExternalGUIService $repo_gui_service
WorkspaceSessionRepository $session_repo
share(bool $a_load_data=true)
addContentSubTabs(bool $a_show_settings)
showAdministrationPanel()
passwordForm(int $a_node_id, ?ilPropertyFormGUI $form=null)
executeCommand()
execute command
New implementation of ilObjectGUI.
ilGlobalTemplateInterface $tpl
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $node_id=null)
prepareOutput(bool $show_sub_objects=true)
static getClassByType(string $obj_type)
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
addHeaderAction()
Add header action menu.
static prepareJsLinks(string $redraw_url, string $notes_url, string $tags_url, ?ilGlobalTemplateInterface $tpl=null)
Insert js/ajax links into template.
static _lookupType(int $id, bool $reference=false)
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
static _lookupObjId(int $ref_id)
ilPasteIntoMultipleItemsExplorer Explorer
static get(string $a_var)
static set(string $a_var, $a_val)
Set a value.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
activateSubTab(string $a_id)
addSubTab(string $a_id, string $a_text, string $a_link, string $a_frame="")
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
const PERMISSION_ALL_PASSWORD
static getSharedNodePassword(int $a_node_id)
static keepSharedSessionPassword(int $a_node_id, string $a_password)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Explorer for selecting a personal workspace item.
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...
Workspace share handler table GUI class.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setDescription(string $a_descr)
Sets description below title in standard template.
setLeftNavContent(string $a_content)
Sets content of left navigation column.
setTitle(string $a_title, bool $hidden=false)
Sets title in standard template.
setContent(string $a_html)
Sets content for standard template.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.