ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilObjWorkspaceFolderGUI.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
4
5require_once "./Services/Object/classes/class.ilObject2GUI.php";
6
19{
20 function getType()
21 {
22 return "wfld";
23 }
24
25 function setTabs($a_show_settings = true)
26 {
27 global $lng, $ilHelp;
28
29 $ilHelp->setScreenIdComponent("wfld");
30
31 $this->ctrl->setParameter($this,"wsp_id",$this->node_id);
32
33 $this->tabs_gui->addTab("wsp", $lng->txt("wsp_tab_personal"),
34 $this->ctrl->getLinkTarget($this, ""));
35
36 $this->ctrl->setParameterByClass("ilObjWorkspaceRootFolderGUI", "wsp_id",
37 $this->getAccessHandler()->getTree()->getRootId());
38
39 $this->tabs_gui->addTab("share", $lng->txt("wsp_tab_shared"),
40 $this->ctrl->getLinkTargetByClass("ilObjWorkspaceRootFolderGUI", "shareFilter"));
41
42 $this->tabs_gui->addTab("ownership", $lng->txt("wsp_tab_ownership"),
43 $this->ctrl->getLinkTargetByClass(array("ilObjWorkspaceRootFolderGUI", "ilObjectOwnershipManagementGUI"), "listObjects"));
44
45 if(!$this->ctrl->getNextClass($this))
46 {
47 if(stristr($this->ctrl->getCmd(), "share"))
48 {
49 $this->tabs_gui->activateTab("share");
50 }
51 else
52 {
53 $this->tabs_gui->activateTab("wsp");
54
55 if($a_show_settings)
56 {
57 if ($this->checkPermissionBool("read"))
58 {
59 $this->tabs_gui->addSubTab("content",
60 $lng->txt("content"),
61 $this->ctrl->getLinkTarget($this, ""));
62 }
63
64 if ($this->checkPermissionBool("write"))
65 {
66 $this->tabs_gui->addSubTab("settings",
67 $lng->txt("settings"),
68 $this->ctrl->getLinkTarget($this, "edit"));
69 }
70 }
71 }
72 }
73 }
74
75 function executeCommand()
76 {
77 $next_class = $this->ctrl->getNextClass($this);
78 $cmd = $this->ctrl->getCmd();
79
80 switch($next_class)
81 {
82 case "ilcommonactiondispatchergui":
83 include_once("Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
85 $this->ctrl->forwardCommand($gui);
86 break;
87
88 case "ilobjectownershipmanagementgui":
89 $this->prepareOutput();
90 $this->tabs_gui->activateTab("ownership");
91 include_once("Services/Object/classes/class.ilObjectOwnershipManagementGUI.php");
93 $this->ctrl->forwardCommand($gui);
94 break;
95
96 default:
97 $this->prepareOutput();
98 if($this->type != "wsrt")
99 {
100 $this->addHeaderAction();
101 }
102 if(!$cmd)
103 {
104 $cmd = "render";
105 }
106 $this->$cmd();
107 break;
108 }
109
110 return true;
111 }
112
113 protected function initCreationForms($a_new_type)
114 {
115 $forms = array(
116 self::CFORM_NEW => $this->initCreateForm($a_new_type)
117 );
118
119 return $forms;
120 }
121
125 function render()
126 {
127 global $tpl, $ilUser, $ilTabs, $ilCtrl;
128
129 unset($_SESSION['clipboard']['wsp2repo']);
130
131 // add new item
132 include_once "Services/Object/classes/class.ilObjectAddNewItemGUI.php";
133 $gui = new ilObjectAddNewItemGUI($this->node_id);
135 $gui->setCreationUrl($ilCtrl->getLinkTarget($this, "create"));
136 $gui->render();
137
138 include_once "Services/Object/classes/class.ilObjectListGUI.php";
140 $this->ctrl->getLinkTargetByClass(array("ilcommonactiondispatchergui", "ilnotegui"), "", "", true, false),
141 $this->ctrl->getLinkTargetByClass(array("ilcommonactiondispatchergui", "iltagginggui"), "", "", true, false));
142
143 include_once "Modules/WorkspaceFolder/classes/class.ilObjWorkspaceFolderTableGUI.php";
144 $table = new ilObjWorkspaceFolderTableGUI($this, "render", $this->node_id, $this->getAccessHandler());
145 $tpl->setContent($table->getHTML());
146
147 include_once "Modules/WorkspaceFolder/classes/class.ilWorkspaceFolderExplorer.php";
148 $exp = new ilWorkspaceFolderExplorer($this->ctrl->getLinkTarget($this), $ilUser->getId());
149
150 if($this->node_id != $exp->getRoot())
151 {
152 $ilTabs->activateSubTab("content");
153 }
154
155 $left = "";
156
157 // sub-folders
158 if($this->node_id != $exp->getRoot() || $exp->hasFolders($this->node_id))
159 {
160 $exp->setTargetGet("wsp_id");
161 $exp->setSessionExpandVariable('wspexpand');
162 $exp->setExpand($this->node_id);
163 $exp->setExpandTarget($this->ctrl->getLinkTarget($this));
164
165 if ($_GET["wspexpand"] != "")
166 {
167 $exp->setExpand($_GET["wspexpand"]);
168 }
169
170 $exp->highlightNode($this->node_id);
171 $exp->setOutput(0);
172
173 $left .= $exp->getOutput();
174 }
175
176 $tpl->setLeftNavContent($left);
177 }
178
179 function edit()
180 {
181 parent::edit();
182
183 $this->tabs_gui->activateTab("wsp");
184 $this->tabs_gui->activateSubTab("settings");
185 }
186
187 function update()
188 {
189 parent::update();
190
191 $this->tabs_gui->activateTab("wsp");
192 $this->tabs_gui->activateSubTab("settings");
193 }
194
200 function cut()
201 {
202 if (!$_REQUEST["item_ref_id"])
203 {
204 ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
205 $this->ctrl->redirect($this);
206 }
207
208 $current_node = $_REQUEST["item_ref_id"];
209 $parent_node = $this->tree->getParentId($current_node);
210
211 // on cancel or fail we return to parent node
212 $this->ctrl->setParameter($this, "wsp_id", $parent_node);
213
214 // check permission
215 $no_cut = array();
216 foreach ($this->tree->getSubTree($this->tree->getNodeData($current_node)) as $node)
217 {
218 if (!$this->checkPermissionBool("delete", "", "", $node["wsp_id"]))
219 {
220 $obj = ilObjectFactory::getInstanceByObjId($node["obj_id"]);
221 $no_cut[$node["wsp_id"]] = $obj->getTitle();
222 unset($obj);
223 }
224 }
225 if (count($no_cut))
226 {
227 ilUtil::sendFailure($this->lng->txt("msg_no_perm_cut")." ".implode(',', $no_cut), true);
228 $this->ctrl->redirect($this);
229 }
230
231 // open current position
232 // using the explorer session storage directly is basically a hack
233 // as we do not use setExpanded() [see below]
234 $_SESSION['paste_cut_wspexpand'] = array();
235 foreach((array)$this->tree->getPathId($parent_node) as $node_id)
236 {
237 $_SESSION['paste_cut_wspexpand'][] = $node_id;
238 }
239
240 // remember source node
241 $_SESSION['clipboard']['source_id'] = $current_node;
242 $_SESSION['clipboard']['cmd'] = 'cut';
243
244 return $this->showMoveIntoObjectTree();
245 }
246
253 {
254 $_SESSION['clipboard']['wsp2repo'] = true;
255 $this->cut();
256 }
257
263 function copy()
264 {
265 global $ilUser;
266
267 if (!$_REQUEST["item_ref_id"])
268 {
269 ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
270 $this->ctrl->redirect($this);
271 }
272
273 $current_node = $_REQUEST["item_ref_id"];
274 $owner = $this->tree->lookupOwner($current_node);
275 if($owner == $ilUser->getId())
276 {
277 $parent_node = $this->tree->getParentId($current_node);
278
279 // on cancel or fail we return to parent node
280 $this->ctrl->setParameter($this, "wsp_id", $parent_node);
281
282 // open current position
283 // using the explorer session storage directly is basically a hack
284 // as we do not use setExpanded() [see below]
285 $_SESSION['paste_copy_wspexpand'] = array();
286 foreach((array)$this->tree->getPathId($parent_node) as $node_id)
287 {
288 $_SESSION['paste_copy_wspexpand'][] = $node_id;
289 }
290 }
291 else
292 {
293 // see copyShared()
294 ilUtil::sendFailure($this->lng->txt('permission_denied'), true);
295 $this->ctrl->redirect($this);
296 }
297
298 // remember source node
299 $_SESSION['clipboard']['source_id'] = $current_node;
300 $_SESSION['clipboard']['cmd'] = 'copy';
301
302 return $this->showMoveIntoObjectTree();
303 }
304
305 function copyShared()
306 {
307 if (!$_REQUEST["item_ref_id"])
308 {
309 $this->ctrl->redirect($this, "share");
310 }
311
312 $current_node = $_REQUEST["item_ref_id"];
313 $handler = $this->getAccessHandler();
314
315 // see ilSharedRessourceGUI::hasAccess()
316 if($handler->checkAccess("read", "", $current_node))
317 {
318 // remember source node
319 $_SESSION['clipboard']['source_id'] = $current_node;
320 $_SESSION['clipboard']['cmd'] = 'copy';
321 $_SESSION['clipboard']['shared'] = true;
322
323 return $this->showMoveIntoObjectTree();
324 }
325 else
326 {
327 $perms = $handler->getPermissions($current_node);
329 {
330 return $this->passwordForm($current_node);
331 }
332 }
333
334 ilUtil::sendFailure($this->lng->txt('permission_denied'), true);
335 $this->ctrl->redirect($this, "share");
336 }
337
344 {
345 $_SESSION['clipboard']['wsp2repo'] = true;
346 $this->copy();
347 }
348
353 {
354 global $ilTabs, $tree;
355
356 $ilTabs->clearTargets();
357
358 if(!$_SESSION['clipboard']['shared'])
359 {
360 $ilTabs->setBackTarget($this->lng->txt('back'),
361 $this->ctrl->getLinkTarget($this));
362 }
363 else
364 {
365 $ilTabs->setBackTarget($this->lng->txt('back'),
366 $this->ctrl->getLinkTarget($this, 'share'));
367 }
368
369 $mode = $_SESSION['clipboard']['cmd'];
370
371 ilUtil::sendInfo($this->lng->txt('msg_'.$mode.'_clipboard'));
372
373 $this->tpl->addBlockfile('ADM_CONTENT', 'adm_content',
374 'tpl.paste_into_multiple_objects.html', "Services/Object");
375
376 // move/copy in personal workspace
377 if(!$_SESSION['clipboard']['wsp2repo'])
378 {
379 require_once 'Services/PersonalWorkspace/classes/class.ilWorkspaceExplorer.php';
381 'paste_'.$mode.'_wspexpand', $this->tree, $this->getAccessHandler());
382 $exp->setTargetGet('wsp_id');
383
384 if($_GET['paste_'.$mode.'_wspexpand'] == '')
385 {
386 // not really used as session is already set [see above]
387 $expanded = $this->tree->readRootId();
388 }
389 else
390 {
391 $expanded = $_GET['paste_'.$mode.'_wspexpand'];
392 }
393
394 }
395 // move/copy to repository
396 else
397 {
398 require_once './Services/Object/classes/class.ilPasteIntoMultipleItemsExplorer.php';
400 '', 'paste_'.$mode.'_repexpand');
401 $exp->setTargetGet('ref_id');
402
403 if($_GET['paste_'.$mode.'_repexpand'] == '')
404 {
405 $expanded = $tree->readRootId();
406 }
407 else
408 {
409 $expanded = $_GET['paste_'.$mode.'_repexpand'];
410 }
411 }
412
413 $exp->setCheckedItems(array((int)$_POST['node']));
414 $exp->setExpandTarget($this->ctrl->getLinkTarget($this, 'showMoveIntoObjectTree'));
415 $exp->setPostVar('node');
416 $exp->setExpand($expanded);
417 $exp->setOutput(0);
418
419 $this->tpl->setVariable('OBJECT_TREE', $exp->getOutput());
420 unset($exp);
421
422 $this->tpl->setVariable('FORM_TARGET', '_top');
423 $this->tpl->setVariable('FORM_ACTION',
424 $this->ctrl->getFormAction($this, 'performPasteIntoMultipleObjects'));
425
426 $this->tpl->setVariable('CMD_SUBMIT', 'performPasteIntoMultipleObjects');
427 $this->tpl->setVariable('TXT_SUBMIT', $this->lng->txt('paste'));
428 }
429
434 {
435 global $ilUser;
436
437 $mode = $_SESSION['clipboard']['cmd'];
438 $source_node_id = $_SESSION['clipboard']['source_id'];
439 $target_node_id = $_REQUEST['node'];
440
441 if(!$source_node_id)
442 {
443 ilUtil::sendFailure($this->lng->txt('select_at_least_one_object'), true);
444 $this->ctrl->redirect($this);
445 }
446 if(!$target_node_id)
447 {
448 ilUtil::sendFailure($this->lng->txt('select_at_least_one_object'), true);
449 $this->ctrl->redirect($this, "showMoveIntoObjectTree");
450 }
451
452 // object instances
453 $source_obj_id = $this->tree->lookupObjectId($source_node_id);
454 $source_object = ilObjectFactory::getInstanceByObjId($source_obj_id);
455
456 if(!$_SESSION['clipboard']['wsp2repo'])
457 {
458 $target_obj_id = $this->tree->lookupObjectId($target_node_id);
459 }
460 else
461 {
462 $target_obj_id = ilObject::_lookupObjId($target_node_id);
463 }
464 $target_object = ilObjectFactory::getInstanceByObjId($target_obj_id);
465
466
467 // sanity checks
468
469 $fail = array();
470
471 if($source_node_id == $target_node_id)
472 {
473 $fail[] = sprintf($this->lng->txt('msg_obj_exists_in_folder'),
474 $source_object->getTitle(), $target_object->getTitle());
475 }
476
477 if(!in_array($source_object->getType(), array_keys($target_object->getPossibleSubObjects())))
478 {
479 $fail[] = sprintf($this->lng->txt('msg_obj_may_not_contain_objects_of_type'),
480 $target_object->getTitle(), $source_object->getType());
481 }
482
483 // if object is shared permission to copy has been checked above
484 $owner = $this->tree->lookupOwner($source_node_id);
485 if($mode == "copy" && $ilUser->getId() == $owner && !$this->checkPermissionBool('copy', '', '', $source_node_id))
486 {
487 $fail[] = $this->lng->txt('permission_denied');
488 }
489
490 if(!$_SESSION['clipboard']['wsp2repo'])
491 {
492 if($mode == "cut" && $this->tree->isGrandChild($source_node_id, $target_node_id))
493 {
494 $fail[] = sprintf($this->lng->txt('msg_paste_object_not_in_itself'),
495 $source_object->getTitle());
496 }
497 }
498
499 if ($_SESSION['clipboard']['wsp2repo'] == true) // see #22959
500 {
501 global $ilAccess;
502 if (!$ilAccess->checkAccess("create", "", $target_node_id, $source_object->getType()))
503 {
504 $fail[] = sprintf($this->lng->txt('msg_no_perm_paste_object_in_folder'),
505 $source_object->getTitle(), $target_object->getTitle());
506 }
507 }
508 else
509 {
510 if (!$this->checkPermissionBool('create', '', $source_object->getType(), $target_node_id))
511 {
512 $fail[] = sprintf($this->lng->txt('msg_no_perm_paste_object_in_folder'),
513 $source_object->getTitle(), $target_object->getTitle());
514 }
515 }
516
517 if(sizeof($fail))
518 {
519 ilUtil::sendFailure(implode("<br />", $fail), true);
520 $this->ctrl->redirect($this);
521 }
522
523
524 // move the node
525 if($mode == "cut")
526 {
527 if(!$_SESSION['clipboard']['wsp2repo'])
528 {
529 $this->tree->moveTree($source_node_id, $target_node_id);
530 }
531 else
532 {
533 $parent_id = $this->tree->getParentId($source_node_id);
534
535 // remove from personal workspace
536 $this->getAccessHandler()->removePermission($source_node_id);
537 $this->tree->deleteReference($source_node_id);
538 $source_node = $this->tree->getNodeData($source_node_id);
539 $this->tree->deleteTree($source_node);
540
541 // add to repository
542 $source_object->createReference();
543 $source_object->putInTree($target_node_id);
544 $source_object->setPermissions($target_node_id);
545
546 $source_node_id = $parent_id;
547 }
548 }
549 // copy the node
550 else if($mode == "copy")
551 {
552 include_once('Services/CopyWizard/classes/class.ilCopyWizardOptions.php');
554 $wizard_options = ilCopyWizardOptions::_getInstance($copy_id);
555
556 if(!$_SESSION['clipboard']['wsp2repo'])
557 {
558 $wizard_options->disableTreeCopy();
559 }
560 $wizard_options->saveOwner($ilUser->getId());
561 $wizard_options->saveRoot($source_node_id);
562 $wizard_options->read();
563
564 $new_obj = $source_object->cloneObject($target_node_id, $copy_id);
565
566 // insert into workspace tree
567 if($new_obj && !$_SESSION['clipboard']['wsp2repo'])
568 {
569 $new_obj_node_id = $this->tree->insertObject($target_node_id, $new_obj->getId());
570 $this->getAccessHandler()->setPermissions($target_node_id, $new_obj_node_id);
571 }
572
573 $wizard_options->deleteAll();
574 }
575
576 // redirect to target if not repository
577 if(!$_SESSION['clipboard']['wsp2repo'])
578 {
579 $redirect_node = $target_node_id;
580 }
581 else
582 {
583 // reload current folder
584 $redirect_node = $this->node_id;
585 }
586
587 unset($_SESSION['clipboard']['cmd']);
588 unset($_SESSION['clipboard']['source_id']);
589 unset($_SESSION['clipboard']['wsp2repo']);
590 unset($_SESSION['clipboard']['shared']);
591
592 // #17746
593 if($mode == 'cut')
594 {
595 ilUtil::sendSuccess($this->lng->txt('msg_cut_copied'), true);
596 }
597 else
598 {
599 ilUtil::sendSuccess($this->lng->txt('msg_cloned'), true);
600 }
601
602 $this->ctrl->setParameter($this, "wsp_id", $redirect_node);
603 $this->ctrl->redirect($this);
604 }
605
606 function shareFilter()
607 {
608 $this->share(false);
609 }
610
611 function share($a_load_data = true)
612 {
613 global $tpl;
614
615 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceShareTableGUI.php";
616 $tbl = new ilWorkspaceShareTableGUI($this, "share", $this->getAccessHandler(), $this->node_id, $a_load_data);
617 $tpl->setContent($tbl->getHTML());
618 }
619
621 {
622 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceShareTableGUI.php";
623 $tbl = new ilWorkspaceShareTableGUI($this, "share", $this->getAccessHandler(), $this->node_id);
624 $tbl->resetOffset();
625 $tbl->writeFilterToSession();
626
627 $this->share();
628 }
629
631 {
632 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceShareTableGUI.php";
633 $tbl = new ilWorkspaceShareTableGUI($this, "share", $this->getAccessHandler(), $this->node_id);
634 $tbl->resetOffset();
635 $tbl->resetFilter();
636
637 $this->shareFilter();
638 }
639
640 protected function passwordForm($a_node_id, $form = null)
641 {
642 global $tpl, $lng, $ilTabs;
643
644 $tpl->setTitle($lng->txt("wsp_password_protected_resource"));
645 $tpl->setDescription($lng->txt("wsp_password_protected_resource_info"));
646
647 $ilTabs->clearTargets();
648 $ilTabs->setBackTarget($lng->txt("back"),
649 $this->ctrl->getLinkTarget($this, "share"));
650
651 if(!$form)
652 {
653 $form = $this->initPasswordForm($a_node_id);
654 }
655
656 $tpl->setContent($form->getHTML());
657 }
658
659 protected function initPasswordForm($a_node_id)
660 {
661 global $ilCtrl, $lng;
662
663 $this->ctrl->setParameter($this, "item_ref_id", $a_node_id);
664
665 $object_data = $this->getAccessHandler()->getObjectDataFromNode($a_node_id);
666
667 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
668 $form = new ilPropertyFormGUI();
669 $form->setFormAction($ilCtrl->getFormAction($this, "checkPassword"));
670 $form->setTitle($lng->txt("wsp_password_for").": ".$object_data["title"]);
671
672 $password = new ilPasswordInputGUI($lng->txt("password"), "password");
673 $password->setRetype(false);
674 $password->setRequired(true);
675 $password->setSkipSyntaxCheck(true);
676 $form->addItem($password);
677
678 $form->addCommandButton("checkPassword", $lng->txt("submit"));
679 $form->addCommandButton("share", $lng->txt("cancel"));
680
681 return $form;
682 }
683
684 protected function checkPassword()
685 {
686 global $lng;
687
688 $node_id = $_REQUEST["item_ref_id"];
689 if(!$node_id)
690 {
691 $this->ctrl->redirect($this, "share");
692 }
693
694 $form = $this->initPasswordForm($node_id);
695 if($form->checkInput())
696 {
697 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
699 $input = md5($form->getInput("password"));
700 if($input == $password)
701 {
702 // we save password and start over
704
705 $this->ctrl->setParameter($this, "item_ref_id", $node_id);
706 $this->ctrl->redirect($this, "copyShared");
707 }
708 else
709 {
710 $item = $form->getItemByPostVar("password");
711 $item->setAlert($lng->txt("wsp_invalid_password"));
712 ilUtil::sendFailure($lng->txt("form_input_not_valid"));
713 }
714 }
715
716 $form->setValuesByPost();
717 $this->passwordForm($node_id, $form);
718 }
719
725 public static function _goto($a_target)
726 {
727 $id = explode("_", $a_target);
728
729 $_GET["baseClass"] = "ilsharedresourceGUI";
730 $_GET["wsp_id"] = $id[0];
731 include("ilias.php");
732 exit;
733 }
734
739 {
740 global $ilCtrl;
741
742 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceShareTableGUI.php";
743 $tbl = new ilWorkspaceShareTableGUI($this, "share", $this->getAccessHandler(), $this->node_id);
744 $tbl->resetOffset();
745 $tbl->resetFilter();
746 $_POST["user"] = $_GET["user"];
747 $tbl->writeFilterToSession();
748 $this->share();
749 }
750
751}
752
753?>
sprintf('%.4f', $callTime)
$_GET["client_id"]
$_POST["username"]
$_SESSION["AccountId"]
An exception for terminatinating execution or to throw for unit testing.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static _allocateCopyId()
Allocate a copy for further entries.
static _getInstance($a_copy_id)
Get instance of copy wizard options.
Class ilObjWorkspaceFolderGUI.
getType()
Functions that must be overwritten.
initCreationForms($a_new_type)
Init creation froms.
performPasteIntoMultipleObjects()
Move node: target has been selected, execute.
copy_to_repository()
Copy node preparation (to repository)
showMoveIntoObjectTree()
Move node: select target (via explorer)
cut_for_repository()
Move node preparation (to repository)
listSharedResourcesOfOtherUser()
Entry point for awareness tool.
static _goto($a_target)
Deep link.
Class ilObjWorkspaceFolderTableGUI.
New implementation of ilObjectGUI.
getAccessHandler()
Get access handler.
prepareOutput($a_show_subobjects=true)
prepare output
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_node_id=null)
Check permission.
Render add new item selector.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
initCreateForm($a_new_type)
Init object creation form.
addHeaderAction()
Add header action menu.
static prepareJsLinks($a_redraw_url, $a_notes_url, $a_tags_url, $a_tpl=null)
Insert js/ajax links into template
Class ilObjectOwnershipManagementGUI.
static _lookupObjId($a_id)
This class represents a password property in a property form.
This class represents a property form user interface.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static keepSharedSessionPassword($a_node_id, $a_password)
Workspace share handler table GUI class.
$tbl
Definition: example_048.php:81
global $ilCtrl
Definition: ilias.php:18
$cmd
Definition: sahs_server.php:35
$ilUser
Definition: imgupload.php:18