47         int $a_parent_node_id = null,
    48         bool $a_load_data = 
false    53         $this->ui_factory = $DIC->ui()->factory();
    54         $this->renderer = $DIC->ui()->renderer();
    56         $this->
ctrl = $DIC->ctrl();
    57         $this->
lng = $DIC->language();
    59         $this->
user = $DIC->user();
    60         $ilCtrl = $DIC->ctrl();
    61         $lng = $DIC->language();
    62         $this->handler = $a_handler;
    68         $this->parent_node_id = 0;
    70         if (stristr(get_class($a_parent_obj), 
"portfolio")) {
    71             $this->parent_node_id = (
int) $a_parent_node_id;
    72             $this->portfolio_mode = 
true;
    77         $this->
setId(
"il_tbl_wspsh" . (
int) $this->portfolio_mode);
    81         $this->
addColumn($this->
lng->txt(
"lastname"), 
"lastname");
    82         $this->
addColumn($this->
lng->txt(
"firstname"), 
"firstname");
    85         if (!$this->portfolio_mode) {
    86             $this->
addColumn($this->
lng->txt(
"wsp_shared_object_type"), 
"obj_type");
    89         $this->
addColumn($this->
lng->txt(
"wsp_shared_date"), 
"acl_date");
    90         $this->
addColumn($this->
lng->txt(
"wsp_shared_title"), 
"title");
   101         $this->
setRowTemplate(
"tpl.shared_row.html", 
"Services/PersonalWorkspace");
   104         $this->
setResetCommand(
"resetsharefilter", $this->
lng->txt(
"wsp_shared_filter_reset_button"));
   110         if ($this->portfolio_mode &&
   111             !$this->
filter[
"obj_type"]) {
   112             $this->
filter[
"obj_type"] = 
"prtf";
   116         if ((isset($this->
filter[
"user"]) && $this->
filter[
"user"] !== 
"") ||
   117             (isset($this->
filter[
"title"]) && $this->
filter[
"title"] !== 
"") ||
   118             (isset($this->
filter[
"acl_type"]) && $this->
filter[
"acl_type"] !== 
"") ||
   119             (isset($this->
filter[
"acl_date"]) && $this->
filter[
"acl_date"] !== 
"")) {
   159         $this->
filter[
"user"] = $item->getValue();
   163         if ($this->std_request->getShareId() &&
   164             !is_array($form_sess) && 
   165             !$this->filter[
"user"]) {
   167             $this->filter[
"user"] = $this->filter[
"user"][
"login"];
   168             $item->setValue($this->filter[
"user"]);
   172         $this->filter[
"title"] = $item->getValue();
   175         $this->filter[
"acl_date"] = $item->getDate();
   177         if (!$this->portfolio_mode) {
   179             $options = array(
"" => 
$lng->
txt(
"search_any"));
   180             $settings_map = array(
"blog" => 
"blogs",
   183             foreach (array(
"file", 
"blog") as $type) {
   184                 if (isset($settings_map[$type]) && 
$ilSetting->get(
"disable_wsp_" . $settings_map[$type])) {
   187                 $options[$type] = 
$lng->
txt(
"wsp_type_" . $type);
   190             $options = array(
"prtf" => 
$lng->
txt(
"obj_prtf"));
   192         if (count($options) > 0) {
   195             $item->setOptions($options);
   196             $this->filter[
"obj_type"] = $item->getValue();
   201         $options[
"user"] = 
$lng->
txt(
"wsp_set_permission_single_user");
   203         if (
sizeof($this->grp_ids)) {
   204             $options[
"group"] = 
$lng->
txt(
"wsp_set_permission_group");
   207         if (
sizeof($this->crs_ids)) {
   208             $options[
"course"] = 
$lng->
txt(
"wsp_set_permission_course");
   211         if (!$this->handler->hasRegisteredPermission($this->parent_node_id)) {
   212             $options[
"registered"] = 
$lng->
txt(
"wsp_set_permission_registered");
   215         if (
$ilSetting->get(
"enable_global_profiles")) {
   216             if (!$this->handler->hasGlobalPasswordPermission($this->parent_node_id)) {
   217                 $options[
"password"] = $this->
lng->txt(
"wsp_set_permission_all_password");
   220             if (!$this->handler->hasGlobalPermission($this->parent_node_id)) {
   221                 $options[
"all"] = $this->
lng->txt(
"wsp_set_permission_all");
   225         if (count($options) > 0) {
   227             $item->setOptions(array(
"" => 
$lng->
txt(
"search_any")) + $options);
   228             $this->filter[
"acl_type"] = $item->getValue();
   231         if (
sizeof($this->crs_ids) || 
sizeof($this->grp_ids)) {
   233             foreach ($this->crs_ids as $crs_id) {
   236             foreach ($this->grp_ids as $grp_id) {
   241             $item->setOptions(array(
"" => 
$lng->
txt(
"search_any")) + $options);
   242             $this->filter[
"crsgrp"] = $item->getValue();
   252         $user_data = array();
   254         $objects = $this->handler->findSharedObjects($this->
filter, $this->crs_ids, $this->grp_ids);
   256             foreach ($objects as $wsp_id => $item) {
   257                 if (!isset($user_data[$item[
"owner"]])) {
   262                 if (!$user_data[$item[
"owner"]][
"login"]) {
   267                     "obj_id" => $item[
"obj_id"],
   268                     "type" => $item[
"type"] ?? 
"",
   269                     "obj_type" => 
$lng->
txt(
"wsp_type_" . ($item[
"type"] ?? 
"")),
   270                     "title" => $item[
"title"],
   271                     "owner_id" => $item[
"owner"],
   272                     "lastname" => $user_data[$item[
"owner"]][
"lastname"],
   273                     "firstname" => $user_data[$item[
"owner"]][
"firstname"],
   274                     "login" => $user_data[$item[
"owner"]][
"login"],
   275                     "acl_type" => $item[
"acl_type"],
   276                     "acl_date" => $item[
"acl_date"]
   287     protected function fillRow(array $a_set): void
   291         $this->tpl->setVariable(
"LASTNAME", $a_set[
"lastname"]);
   292         $this->tpl->setVariable(
"FIRSTNAME", $a_set[
"firstname"]);
   293         $this->tpl->setVariable(
"LOGIN", $a_set[
"login"]);
   295         $this->tpl->setVariable(
"TITLE", $a_set[
"title"]);
   297         if (!$this->portfolio_mode) {
   298             $icon = $this->ui_factory->symbol()->icon()->standard($a_set[
"type"], 
"");
   299             $this->tpl->setVariable(
"ICON", $this->renderer->render(
$icon));
   300             $this->tpl->setVariable(
"TYPE", $a_set[
"obj_type"]);
   301             $url = $this->handler->getGotoLink($a_set[
"wsp_id"], $a_set[
"obj_id"]);
   305         $this->tpl->setVariable(
"URL_TITLE", 
$url);
   307         $this->tpl->setVariable(
   312         asort($a_set[
"acl_type"]);
   313         foreach ($a_set[
"acl_type"] as $obj_id) {
   318                     $type = 
"registered";
   323                     $type = 
"all_password";
   328                     $type = 
"all_password";
   333                     if ($type != 
"usr") {
   341             $this->tpl->setCurrentBlock(
"acl_type_bl");
   342             $this->tpl->setVariable(
"ACL_TYPE", 
$title);
   343             $this->tpl->parseCurrentBlock();
   346         if (!$this->portfolio_mode) {
   348             if ($a_set[
"type"] == 
"file") {
   349                 $ilCtrl->setParameter(
   352                     $this->parent_node_id
   354                 $ilCtrl->setParameter(
   359                 $url = $ilCtrl->getLinkTarget($this->parent_obj, 
"copyshared");
   361                 $this->tpl->setCurrentBlock(
"action_bl");
   362                 $this->tpl->setVariable(
"URL_ACTION", 
$url);
   363                 $this->tpl->setVariable(
"ACTION", 
$lng->
txt(
"copy"));
   364                 $this->tpl->parseCurrentBlock();
   366                 $this->tpl->touchBlock(
"action_col_bl");
   369             $ilCtrl->setParameter($this->parent_obj, 
"owner_id", $a_set[
"owner_id"]);
   370             $ilCtrl->setParameter($this->parent_obj, 
"prt_id", $a_set[
"obj_id"]);
   371             $b = $this->ui_factory->button()->shy(
   372                 $this->
lng->txt(
"wsp_send_mail"),
   373                 $ilCtrl->getLinkTarget($this->parent_obj, 
"redirectSendMailToSharer")
   375             $dd = $this->ui_factory->dropdown()->standard([
$b]);
   376             $this->tpl->setCurrentBlock(
"action_bl");
   377             $this->tpl->setVariable(
"ACTION_DD", $this->renderer->render($dd));
   378             $this->tpl->parseCurrentBlock();
 
__construct(object $a_parent_obj, string $a_parent_cmd, $a_handler, int $a_parent_node_id=null, bool $a_load_data=false)
 
static get(string $a_var)
 
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...
 
setFormAction(string $a_form_action, bool $a_multipart=false)
 
const PERMISSION_ALL_PASSWORD
 
setResetCommand(string $a_val, string $a_caption="")
 
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
 
setDisableFilterHiding(bool $a_val=true)
 
static _lookupName(int $a_user_id)
lookup user name 
 
loadLanguageModule(string $a_module)
Load language module. 
 
const PERMISSION_REGISTERED
 
ilGlobalTemplateInterface $main_tpl
 
Workspace share handler table GUI class. 
 
addFilterItemByMetaType(string $id, int $type=self::FILTER_TEXT, bool $a_optional=false, string $caption="")
Add filter by standard type. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
static getNamePresentation( $a_user_id, bool $a_user_image=false, bool $a_profile_link=false, string $a_profile_back_link='', bool $a_force_first_lastname=false, bool $a_omit_login=false, bool $a_sortable=true, bool $a_return_data_array=false, $a_ctrl_path='ilpublicuserprofilegui')
Default behaviour is: 
 
static _lookupTitle(int $obj_id)
 
ILIAS UI Renderer $renderer
 
setDefaultOrderField(string $a_defaultorderfield)
 
static _getStaticLink(?int $a_ref_id, string $a_type='', bool $a_fallback_goto=true, string $append="")
 
setRowTemplate(string $a_template, string $a_template_dir="")
Set row template. 
 
setFilterCommand(string $a_val, string $a_caption="")
 
setDefaultOrderDirection(string $a_defaultorderdirection)
 
setTitle(string $a_title, string $a_icon="", string $a_icon_alt="")
 
StandardGUIRequest $std_request
 
ILIAS UI Factory $ui_factory
 
addColumn(string $a_text, string $a_sort_field="", string $a_width="", bool $a_is_checkbox_action_column=false, string $a_class="", string $a_tooltip="", bool $a_tooltip_with_html=false)
 
disable(string $a_module_name)
 
filter(string $filter_id, $class_path, string $cmd, bool $activated=true, bool $expanded=true)
 
static _getMembershipByType(int $a_usr_id, array $a_type, bool $a_only_member_role=false)
get membership by type Get course or group membership 
 
static _lookupType(int $id, bool $reference=false)