4 define (
"IL_LIST_AS_TRIGGER",
"trigger");
5 define (
"IL_LIST_FULL",
"full");
135 $this->rbacsystem = $rbacsystem;
136 $this->
ilias = $ilias;
140 $this->path_enabled =
false;
152 include_once(
'Services/LDAP/classes/class.ilLDAPRoleGroupMapping.php');
155 $lng->loadLanguageModule(
"obj");
167 $this->container_obj = $container_obj;
179 return $this->container_obj;
191 $this->static_link_enabled =
true;
192 $this->delete_enabled =
true;
193 $this->cut_enabled =
true;
194 $this->subscribe_enabled =
true;
195 $this->link_enabled =
false;
196 $this->copy_enabled =
false;
197 $this->payment_enabled =
false;
198 $this->progress_enabled =
false;
199 $this->notice_properties_enabled =
true;
200 $this->info_screen_enabled =
false;
202 $this->gui_class_name =
"";
205 include_once(
'./Services/Object/classes/class.ilObjectAccess.php');
218 $this->properties_enabled = $a_status;
240 $this->preconditions_enabled = $a_status;
258 $this->notice_properties_enabled = $a_status;
280 $this->description_enabled = $a_status;
314 $this->search_fragment_enabled = $a_status;
326 $this->path_linked = $a_status;
344 $this->enabled_relevance = $a_status;
354 $this->relevance = $a_rel;
374 $this->icons_enabled = $a_status;
394 $this->checkboxes_enabled = $a_status;
414 $this->expand_enabled = $a_status;
429 $this->is_expanded = $a_status;
444 $this->position_enabled =
true;
445 $this->position_field_index = $a_field_index;
446 $this->position_value = $a_position_value;
457 $this->delete_enabled = $a_status;
469 return $this->delete_enabled;
480 $this->cut_enabled = $a_status;
491 return $this->cut_enabled;
502 $this->copy_enabled = $a_status;
524 $this->subscribe_enabled = $a_status;
535 return $this->subscribe_enabled;
545 $this->payment_enabled = $a_status;
556 return $this->payment_enabled;
566 $this->link_enabled = $a_status;
577 return $this->link_enabled;
589 $this->path_enabled = $a_path;
590 $this->path_start_node = (int)$a_start_node;
600 return $this->path_enabled;
611 $this->commands_enabled = $a_status;
612 $this->std_cmd_only = $a_std_only;
632 $this->info_screen_enabled = $a_info_screen;
642 $this->sub_item_html[] = $a_html;
664 $this->progress_enabled = $a_status;
688 $this->substitutions_enabled = $a_status;
712 $this->item_detail_links_enabled = $a_status;
735 $this->item_detail_links = $a_detail_links;
736 $this->item_detail_links_intro = $a_intro_txt;
748 if(!count($this->item_detail_links))
752 if(strlen($this->item_detail_links_intro))
754 $this->tpl->setCurrentBlock(
'item_detail_intro');
755 $this->tpl->setVariable(
'ITEM_DETAIL_INTRO_TXT',$this->item_detail_links_intro);
756 $this->tpl->parseCurrentBlock();
759 foreach($this->item_detail_links as
$info)
761 $this->tpl->setCurrentBlock(
'item_detail_link');
762 $this->tpl->setVariable(
'ITEM_DETAIL_LINK_TARGET',$info[
'target']);
763 $this->tpl->setVariable(
'ITEM_DETAIL_LINK_DESC',$info[
'desc']);
764 $this->tpl->setVariable(
'ITEM_DETAIL_LINK_HREF',$info[
'link']);
765 $this->tpl->setVariable(
'ITEM_DETAIL_LINK_NAME',$info[
'name']);
766 $this->tpl->parseCurrentBlock();
768 $this->tpl->setCurrentBlock(
'item_detail_links');
769 $this->tpl->parseCurrentBlock();
780 $this->title = $a_title;
799 $this->description = $a_description;
809 return $this->description;
819 $this->search_fragment = $a_text;
838 $this->separate_commands = $a_val;
871 $this->additional_information = $a_val;
893 $this->details_level = $a_level;
912 $this->repository_transfer_enabled = (bool)$a_value;
922 $this->restrict_to_goto = (bool)$a_value;
940 $cache_prefix = null;
941 if($this->context == self::CONTEXT_WORKSPACE || $this->context == self::CONTEXT_WORKSPACE_SHARING)
943 $cache_prefix =
"wsp";
944 if(!$this->ws_access)
946 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
951 if (isset($this->access_cache[$a_permission][
"-".$a_cmd][$cache_prefix.$a_ref_id]))
953 return $this->access_cache[$a_permission][
"-".$a_cmd][$cache_prefix.$a_ref_id];
956 if($this->context == self::CONTEXT_REPOSITORY || $this->context == self::CONTEXT_SHOP)
958 $access = $ilAccess->checkAccess($a_permission,$a_cmd,$a_ref_id,$a_type,$a_obj_id);
959 if ($ilAccess->getPreventCachingLastResult())
961 $this->prevent_access_caching =
true;
966 $access = $this->ws_access->checkAccess($a_permission,$a_cmd,$a_ref_id,$a_type);
969 $this->access_cache[$a_permission][
"-".$a_cmd][$cache_prefix.$a_ref_id] = $access;
982 function initItem($a_ref_id, $a_obj_id, $a_title =
"", $a_description =
"", $a_context = self::CONTEXT_REPOSITORY)
984 $this->offline_mode =
false;
985 include_once(
'Modules/ScormAicc/classes/class.ilObjSAHSLearningModuleAccess.php');
986 if ($this->type ==
"sahs") {
989 $this->access_cache = array();
990 $this->ref_id = $a_ref_id;
991 $this->obj_id = $a_obj_id;
992 $this->context = $a_context;
995 #$this->description = $a_description; 998 $this->adm_commands_included =
false;
999 $this->prevent_access_caching =
false;
1005 $this->condition_target = array(
1006 'ref_id' => $a_ref_id,
1007 'obj_id' => $a_obj_id,
1008 'target_type' => $a_target_type
1014 $this->condition_target = array();
1019 $this->title_link_disabled = $a_status;
1025 $this->default_command_params = $a_params;
1040 if($this->static_link_enabled and !$this->default_command_params)
1042 include_once(
'./Services/Link/classes/class.ilLink.php');
1045 $command[
'link'] = $link;
1046 $command[
'frame'] =
'_top';
1049 if($this->default_command_params)
1052 foreach($this->default_command_params as $name => $value)
1059 if(!stristr($command[
'link'],
'?'))
1061 $command[
'link'] .=
'?'.$params;
1065 $command[
'link'] .=
'&'.$params;
1085 if($this->context == self::CONTEXT_REPOSITORY || $this->context == self::CONTEXT_SHOP)
1088 require_once (
'Services/WebDAV/classes/class.ilDAVActivationChecker.php');
1091 require_once (
'Services/WebDAV/classes/class.ilDAVServer.php');
1098 return $davServer->getMountURI($this->ref_id).
1099 '" folder="'.$davServer->getFolderURI($this->ref_id);
1103 $this->ctrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $this->
getCommandId());
1104 $cmd_link = $this->ctrl->getLinkTargetByClass(
"ilrepositorygui", $a_cmd);
1105 $this->ctrl->setParameterByClass(
"ilrepositorygui",
"ref_id",
$_GET[
"ref_id"]);
1116 $this->ctrl->setParameterByClass($this->gui_class_name,
"ref_id",
"");
1117 $this->ctrl->setParameterByClass($this->gui_class_name,
"wsp_id", $this->ref_id);
1118 return $this->ctrl->getLinkTargetByClass($this->gui_class_name, $a_cmd);
1135 require_once (
'Services/WebDAV/classes/class.ilDAVActivationChecker.php');
1141 if($a_cmd ==
'fileManagerLaunch')
1176 global $objDefinition;
1186 if($this->context == self::CONTEXT_REPOSITORY)
1189 require_once (
'Services/WebDAV/classes/class.ilDAVActivationChecker.php');
1192 require_once (
'Services/WebDAV/classes/class.ilDAVServer.php');
1193 global $ilias,
$lng;
1196 require_once(
'Services/WebDAV/classes/class.ilDAVLocks.php');
1198 if ($ilias->account->getId() != ANONYMOUS_USER_ID)
1200 $locks =& $davLocks->getLocksOnObjectObj($this->obj_id);
1201 if (count($locks) > 0)
1203 $lockUser =
new ilObjUser($locks[0][
'ilias_owner']);
1207 "property" => $lng->txt(
"in_use_by"),
1208 "value" => $lockUser->getLogin(),
1209 "link" =>
"./ilias.php?user=".$locks[0][
'ilias_owner'].
'&cmd=showUserProfile&cmdClass=ilpersonaldesktopgui&cmdNode=1&baseClass=ilPersonalDesktopGUI',
1221 if (preg_match(
'/^(\\.|\\.\\.)$/', $this->title))
1223 $props[] = array(
"alert" =>
false,
"property" => $lng->txt(
"filename_interoperability"),
1224 "value" => $lng->txt(
"filename_special_filename"),
1225 'propertyNameVisible' =>
false);
1227 else if (preg_match(
'/^\\./', $this->title))
1229 $props[] = array(
"alert" =>
false,
"property" => $lng->txt(
"filename_visibility"),
1230 "value" => $lng->txt(
"filename_hidden_unix_file"),
1231 'propertyNameVisible' =>
false);
1233 else if (preg_match(
'/~$/', $this->title))
1235 $props[] = array(
"alert" =>
false,
"property" => $lng->txt(
"filename_visibility"),
1236 "value" => $lng->txt(
"filename_hidden_backup_file"),
1237 'propertyNameVisible' =>
false);
1239 else if (preg_match(
'/[\\/]/', $this->title))
1241 $props[] = array(
"alert" =>
false,
"property" => $lng->txt(
"filename_interoperability"),
1242 "value" => $lng->txt(
"filename_special_characters"),
1243 'propertyNameVisible' =>
false);
1245 else if (preg_match(
'/[\\\\\\/:*?"<>|]/', $this->title))
1247 $props[] = array(
"alert" =>
false,
"property" => $lng->txt(
"filename_interoperability"),
1248 "value" => $lng->txt(
"filename_windows_special_characters"),
1249 'propertyNameVisible' =>
false);
1251 else if (preg_match(
'/\\.$/', $this->title))
1253 $props[] = array(
"alert" =>
false,
"property" => $lng->txt(
"filename_interoperability"),
1254 "value" => $lng->txt(
"filename_windows_empty_extension"),
1255 'propertyNameVisible' =>
false);
1257 else if (preg_match(
'/^(\\.|\\.\\.)$/', $this->title))
1259 $props[] = array(
"alert" =>
false,
"property" => $lng->txt(
"filename_interoperability"),
1260 "value" => $lng->txt(
"filename_special_filename"),
1261 'propertyNameVisible' =>
false);
1263 else if (preg_match(
'/#/', $this->title))
1265 $props[] = array(
"alert" =>
false,
"property" => $lng->txt(
"filename_interoperability"),
1266 "value" => $lng->txt(
"filename_windows_webdav_issue"),
1267 'propertyNameVisible' =>
false);
1273 require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
1277 if ($ilias->account->getId() != ANONYMOUS_USER_ID)
1283 $isContainer = in_array($this->type, array(
'cat',
'fold',
'crs',
'grp'));
1291 "value" => $lng->txt(
'state_changed_inside'),
1292 'propertyNameVisible' =>
false);
1300 elseif($this->type ==
"file")
1307 "value" => $lng->txt(($state == 1) ?
'state_unread' :
'state_changed'),
1308 'propertyNameVisible' =>
false);
1323 $a_alert =
false, $a_newline =
false)
1325 $this->cust_prop[] = array(
"property" => $a_property,
"value" => $a_value,
1326 "alert" => $a_alert,
"newline" => $a_newline);
1334 if (is_array($this->cust_prop))
1336 foreach($this->cust_prop as $prop)
1353 if($prop[
'alert'] ==
true)
1366 $this->notice_prop = array();
1367 if($infos = $this->ldap_mapping->getInfoStrings($this->obj_id,
true))
1369 foreach($infos as
$info)
1371 $this->notice_prop[] = array(
'value' => $info);
1374 return $this->notice_prop ? $this->notice_prop : array();
1381 $this->cust_commands[] =
1382 array(
"link" => $a_link,
"lang_var" => $a_lang_var,
1383 "frame" => $a_frame,
"onclick" => $onclick);
1392 $this->force_visible_only = $a_stat;
1431 $ref_commands = array();
1432 foreach($this->commands as $command)
1434 $permission = $command[
"permission"];
1435 $cmd = $command[
"cmd"];
1436 $lang_var = $command[
"lang_var"];
1438 $info_object = null;
1440 if (isset($command[
"txt"]))
1442 $txt = $command[
"txt"];
1448 if ($ilias->account->getId() == ANONYMOUS_USER_ID &&
1449 $command[
'enable_anonymous'] ==
'false')
1457 $ilBench->start(
"ilObjectListGUI",
"4110_get_commands_check_access");
1460 $ilBench->stop(
"ilObjectListGUI",
"4110_get_commands_check_access");
1467 $access_granted =
true;
1471 $access_granted =
false;
1472 $info_object = $ilAccess->getInfo();
1475 if (!isset($command[
"default"]))
1477 $command[
"default"] =
"";
1479 $ref_commands[] = array(
1480 "permission" => $permission,
1482 "link" => $cmd_link,
1483 "frame" => $cmd_frame,
1484 "lang_var" => $lang_var,
1486 "granted" => $access_granted,
1487 "access_info" => $info_object,
1488 "img" => $cmd_image,
1489 "default" => $command[
"default"]
1493 return $ref_commands;
1506 if ($this->type ==
"sahs" && $this->offline_mode) {
1507 return $this->type .
"_offline";
1522 if($this->restrict_to_goto)
1524 $this->default_command = array(
"frame" =>
"",
1529 !$this->default_command ||
1531 $this->title_link_disabled
1535 $this->tpl->setCurrentBlock(
"item_title");
1536 $this->tpl->setVariable(
"TXT_TITLE", $this->
getTitle());
1537 $this->tpl->parseCurrentBlock();
1541 $this->default_command[
'link'] = $this->
modifyTitleLink($this->default_command[
'link']);
1543 $this->default_command[
"link"] =
1544 $this->
modifySAHSlaunch($this->default_command[
"link"],$this->default_command[
"frame"]);
1546 if ($this->default_command[
"frame"] !=
"")
1548 $this->tpl->setCurrentBlock(
"title_linked_frame");
1549 $this->tpl->setVariable(
"TARGET_TITLE_LINKED", $this->default_command[
"frame"]);
1550 $this->tpl->parseCurrentBlock();
1554 #var_dump("<pre>",$this->default_command['link'],"</pre>"); 1555 $this->default_command[
"link"] =
1558 #var_dump("<pre>",$this->default_command['link'],"</pre>"); 1562 $this->tpl->setCurrentBlock(
"item_title_linked");
1563 $this->tpl->setVariable(
"TXT_TITLE_LINKED", $this->
getTitle());
1564 $this->tpl->setVariable(
"HREF_TITLE_LINKED", $this->default_command[
"link"]);
1567 include_once(
"./Services/Preview/classes/class.ilPreview.php");
1570 include_once(
"./Services/Preview/classes/class.ilPreviewGUI.php");
1573 $access_handler = null;
1575 switch ($this->context)
1577 case self::CONTEXT_WORKSPACE:
1578 case self::CONTEXT_WORKSPACE_SHARING:
1580 include_once(
"./Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php");
1587 $access_handler = $ilAccess;
1593 $preview_status_class =
"";
1594 $preview_text_topic =
"preview_show";
1597 $preview_status_class =
"ilPreviewStatusNone";
1598 $preview_text_topic =
"preview_none";
1600 $this->tpl->setCurrentBlock(
"item_title_linked");
1601 $this->tpl->setVariable(
"PREVIEW_STATUS_CLASS", $preview_status_class);
1602 $this->tpl->setVariable(
"SRC_PREVIEW_ICON",
ilUtil::getImagePath(
"preview.png",
"Services/Preview"));
1603 $this->tpl->setVariable(
"TXT_PREVIEW", $this->lng->txt($preview_text_topic));
1604 $this->tpl->setVariable(
"SCRIPT_PREVIEW_CLICK",
$preview->getJSCall($this->getUniqueItemId(
true)));
1605 $this->tpl->parseCurrentBlock();
1608 $this->tpl->parseCurrentBlock();
1611 if ($this->bold_title ==
true)
1613 $this->tpl->touchBlock(
'bold_title_start');
1614 $this->tpl->touchBlock(
'bold_title_end');
1620 switch($this->context)
1622 case self::CONTEXT_WORKSPACE_SHARING:
1623 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
1640 $fields_shown =
false;
1641 foreach($this->substitutions->getParsedSubstitutions($this->ref_id,$this->obj_id) as
$data)
1645 $data[
'name'] =
'<strong>'.$data[
'name'].
'</strong>';
1646 $data[
'value'] =
'<strong>'.$data[
'value'].
'</strong>';
1648 $this->tpl->touchBlock(
"std_prop");
1649 $this->tpl->setCurrentBlock(
'item_property');
1650 if(
$data[
'show_field'])
1652 $this->tpl->setVariable(
'TXT_PROP',
$data[
'name']);
1654 $this->tpl->setVariable(
'VAL_PROP',
$data[
'value']);
1655 $this->tpl->parseCurrentBlock();
1657 if(
$data[
'newline'])
1659 $this->tpl->touchBlock(
'newline_prop');
1661 $fields_shown =
false;
1666 $this->tpl->touchBlock(
'newline_prop');
1683 if(!$this->substitutions->isDescriptionEnabled())
1691 $d = strip_tags(
$d,
"<b>");
1692 $this->tpl->setCurrentBlock(
"item_description");
1693 $this->tpl->setVariable(
"TXT_DESC",
$d);
1694 $this->tpl->parseCurrentBlock();
1705 $this->tpl->setCurrentBlock(
'search_fragment');
1706 $this->tpl->setVariable(
'TXT_SEARCH_FRAGMENT',$this->
getSearchFragment().
' ...');
1707 $this->tpl->parseCurrentBlock();
1725 include_once
"Services/UIComponent/ProgressBar/classes/class.ilProgressBar.php";
1729 $this->tpl->setCurrentBlock(
'relevance');
1730 $this->tpl->setVariable(
'REL_PBAR', $pbar->render());
1731 $this->tpl->parseCurrentBlock();
1741 $this->mode = $a_mode;
1759 $this->condition_depth = $a_depth;
1771 if ($a_mode == $this->mode)
1793 if($this->context != self::CONTEXT_WORKSPACE && $this->context != self::CONTEXT_WORKSPACE_SHARING)
1796 include_once
"Services/Tracking/classes/class.ilLPStatus.php";
1800 $props[] = array(
"alert" =>
false,
1801 "property" => $lng->txt(
"learning_progress"),
1808 if ($this->
ilias->account->getId() == ANONYMOUS_USER_ID)
1810 if (!$ilAccess->checkAccess(
"read",
"", $this->ref_id, $this->type, $this->obj_id))
1812 $props[] = array(
"alert" =>
true,
1813 "value" => $lng->txt(
"no_access_item_public"),
1822 if($this->reference_ref_id)
1825 $note_obj_id = $this->reference_obj_id;
1828 $redraw_js =
"il.Object.redrawListItem(".$note_ref_id.
");";
1833 self::$cnt_tags[$note_obj_id] > 0 ||
1834 is_array(self::$tags[$note_obj_id])) &&
1835 ($ilUser->getId() != ANONYMOUS_USER_ID))
1837 include_once(
"./Services/Notes/classes/class.ilNoteGUI.php");
1838 include_once(
"./Services/Tagging/classes/class.ilTaggingGUI.php");
1844 $props[] = array(
"alert" =>
false,
1845 "property" => $lng->txt(
"notes_comments"),
1846 "value" =>
"<a href='#' onclick=\"return ".
1853 if ($this->notes_enabled && self::$cnt_notes[$note_obj_id][
IL_NOTE_PRIVATE] > 0)
1855 $props[] = array(
"alert" =>
false,
1856 "property" => $lng->txt(
"notes"),
1857 "value" =>
"<a href='#' onclick=\"return ".
1863 if ($this->tags_enabled &&
1864 (self::$cnt_tags[$note_obj_id] > 0 ||
1865 is_array(self::$tags[$note_obj_id])))
1868 if ($tags_set->get(
"enable"))
1873 if(is_array(self::$tags[$note_obj_id]))
1875 $tags_tmp = array();
1876 foreach(self::$tags[$note_obj_id] as $tag => $is_tag_owner)
1880 $tags_tmp[] =
"<a class=\"ilTag ilTagRelHigh\" href='#' onclick=\"return ".
1881 $tags_url.
"\">".$tag.
"</a>";
1885 $tags_tmp[] =
"<span class=\"ilTag ilTagRelMiddle\">".$tag.
"</span>";
1888 $tags_value = implode(
" ", $tags_tmp);
1895 $tags_value =
"<a href='#' onclick=\"return ".$tags_url.
"\">".
1896 self::$cnt_tags[$note_obj_id].
"</a>";
1897 $prop_text = $lng->txt(
"tagging_tags");
1899 $props[] = array(
"alert" =>
false,
1900 "property" => $prop_text,
1901 "value" => $tags_value,
1909 if (is_array($props) && count($props) > 0)
1911 foreach($props as $prop)
1916 $this->tpl->touchBlock(
"separator_prop");
1920 if ($prop[
"alert"] ==
true)
1922 $this->tpl->touchBlock(
"alert_prop");
1926 $this->tpl->touchBlock(
"std_prop");
1928 if ($prop[
"newline"] ==
true && $cnt > 1)
1930 $this->tpl->touchBlock(
"newline_prop");
1933 if (isset($prop[
"property"]) && $prop[
'propertyNameVisible'] !==
false && $prop[
"property"] !=
"")
1936 $this->tpl->setCurrentBlock(
"prop_name");
1937 $this->tpl->setVariable(
"TXT_PROP", $prop[
"property"]);
1938 $this->tpl->parseCurrentBlock();
1940 $this->tpl->setCurrentBlock(
"item_property");
1944 $this->tpl->setVariable(
"LINK_PROP", $prop[
'link']);
1945 $this->tpl->setVariable(
"LINK_VAL_PROP", $prop[
"value"]);
1949 $this->tpl->setVariable(
"VAL_PROP", $prop[
"value"]);
1952 $this->tpl->parseCurrentBlock();
1956 $this->tpl->setCurrentBlock(
"item_properties");
1957 $this->tpl->parseCurrentBlock();
1964 foreach($this->notice_prop as $property)
1966 $this->tpl->setCurrentBlock(
'notice_item');
1967 $this->tpl->setVariable(
'NOTICE_ITEM_VALUE',$property[
'value']);
1968 $this->tpl->parseCurrentBlock();
1970 $this->tpl->setCurrentBlock(
'notice_property');
1971 $this->tpl->parseCurrentBlock();
1982 global $ilAccess,$ilObjDataCache,
$ilUser;
1984 if(IS_PAYMENT_ENABLED && $this->payment_enabled)
1986 include_once
'./Services/Payment/classes/class.ilPaymentObject.php';
1987 include_once
'./Services/Payment/classes/class.ilPaymentBookings.php';
1989 if(ilPaymentobject::_requiresPurchaseToAccess($this->ref_id))
1995 $order_infos = array();
1998 if(count($order_infos) > 0)
2002 $pay_lang->loadLanguageModule(
'payment');
2005 $a_property = $pay_lang->txt(
'object_purchased_date');
2012 $a_property = $this->lng->txt(
'object_duration');
2013 if($order_infos[
'duration'] == 0)
2014 $a_value = $pay_lang->txt(
'unlimited_duration');
2016 $a_value = $order_infos[
'duration'] .
' '.$this->lng->txt(
'months');
2023 $has_extension_prices =
true;
2032 $this->ctpl =
new ilTemplate(
"tpl.container_list_item_commands.html",
true,
true,
2033 "Services/Container",
"DEFAULT",
false,
true);
2034 $this->ctpl->setCurrentBlock(
'payment');
2036 $this->ctpl->setVariable(
'PAYMENT_ALT_IMG', $this->lng->txt(
'payment_system') .
': ' . $this->lng->txt(
'payment_buyable'));
2037 $this->ctpl->parseCurrentBlock();
2047 $commands = $this->
getCommands($this->ref_id, $this->obj_id);
2048 foreach($commands as $command)
2050 if($command[
'default'] ===
true)
2058 $command[
'link'] =
'ilias.php?baseClass=ilSAHSPresentationGUI&ref_id='.$this->ref_id;
2062 $command[
'link'] =
'ilias.php?baseClass=ilLMPresentationGUI&ref_id='.$this->ref_id;
2066 $command[
'link'] =
'ilias.php?baseClass=ilShopController&cmdClass=ilshoppurchasegui&ref_id='.$this->ref_id;
2072 if(strpos($command[
'link'],
'_'.
$type.
'_') !==
false)
2074 $demo_link = str_replace(
'_'.
$type.
'_',
'_'.$type.
'purchasetypedemo_', $command[
'link']);
2075 $buy_link = str_replace(
'_'.
$type.
'_',
'_'.$type.
'purchasetypebuy_', $command[
'link']);
2079 $demo_link = $command[
'link'].(strpos($command[
'link'],
'?') ===
false ?
'?' :
'&').
'purchasetype=demo';
2080 $buy_link = $command[
'link'].(strpos($command[
'link'],
'?') ===
false ?
'?' :
'&').
'purchasetype=buy';
2083 $this->current_selection_list->addItem($this->lng->txt(
'payment_demo'),
"", $demo_link, $a_img, $this->lng->txt(
'payment_demo'), $command[
'frame']);
2084 if($has_extension_prices ==
true)
2086 $this->current_selection_list->addItem($this->lng->txt(
'buy_extension'),
"", $buy_link, $a_img, $this->lng->txt(
'buy_extension'), $command[
'frame']);
2089 $this->current_selection_list->addItem($this->lng->txt(
'buy'),
"", $buy_link, $a_img, $this->lng->txt(
'buy'), $command[
'frame']);
2097 global $ilAccess,
$lng, $objDefinition,$tree;
2100 $num_optional_required =
2104 $visible_conditions = array();
2105 $passed_optional = 0;
2106 foreach($conditions as $condition)
2108 if($obligatory and !$condition[
'obligatory'])
2112 if(!$obligatory and $condition[
'obligatory'])
2117 if($tree->isDeleted($condition[
'trigger_ref_id']))
2122 include_once
'Services/Container/classes/class.ilMemberViewSettings.php';
2128 $visible_conditions[] = $condition[
'id'];
2131 if(!$obligatory and
$ok)
2135 if($passed_optional >= $num_optional_required)
2142 foreach($conditions as $condition)
2144 if(!in_array($condition[
'id'], $visible_conditions))
2149 include_once
'./Services/AccessControl/classes/class.ilConditionHandlerGUI.php';
2153 $class = $objDefinition->getClassName($condition[
"trigger_type"]);
2154 $location = $objDefinition->getLocation($condition[
"trigger_type"]);
2159 $missing_cond_exist =
true;
2161 $full_class =
"ilObj".$class.
"ListGUI";
2162 include_once(
$location.
"/class.".$full_class.
".php");
2163 $item_list_gui =
new $full_class($this);
2165 $item_list_gui->enablePath(
false);
2166 $item_list_gui->enableIcon(
true);
2167 $item_list_gui->setConditionDepth($this->condition_depth + 1);
2169 $item_list_gui->addCustomProperty($this->lng->txt(
"precondition_required_itemlist"), $cond_txt,
false,
true);
2171 $item_list_gui->enableCommands($this->commands_enabled, $this->std_cmd_only);
2172 $item_list_gui->enableProperties($this->properties_enabled);
2174 $trigger_html = $item_list_gui->getListItemHTML($condition[
'trigger_ref_id'],
2177 $this->tpl->setCurrentBlock(
"precondition");
2178 if ($trigger_html ==
"")
2180 $trigger_html = $this->lng->txt(
"precondition_not_accessible");
2182 $this->tpl->setVariable(
"TXT_CONDITION", trim($cond_txt));
2183 $this->tpl->setVariable(
"TRIGGER_ITEM", $trigger_html);
2184 $this->tpl->parseCurrentBlock();
2187 if ($missing_cond_exist and $obligatory)
2189 $this->tpl->setCurrentBlock(
"preconditions");
2190 $this->tpl->setVariable(
"CONDITION_TOGGLE_ID",
"_obl_".$toggle_id);
2191 $this->tpl->setVariable(
"TXT_PRECONDITIONS", $lng->txt(
"preconditions_obligatory_hint"));
2192 $this->tpl->parseCurrentBlock();
2195 elseif($missing_cond_exist and !$obligatory)
2197 $this->tpl->setCurrentBlock(
"preconditions");
2198 $this->tpl->setVariable(
"CONDITION_TOGGLE_ID",
"_opt_".$toggle_id);
2199 $this->tpl->setVariable(
"TXT_PRECONDITIONS", sprintf($lng->txt(
"preconditions_optional_hint"),$num_optional_required));
2200 $this->tpl->parseCurrentBlock();
2203 return !$missing_cond_exist;
2211 global $ilAccess,
$lng, $objDefinition,$tree;
2213 include_once(
"./Services/AccessControl/classes/class.ilConditionHandler.php");
2215 $missing_cond_exist =
false;
2218 if ($this->condition_depth > 0)
2231 if($this->condition_target)
2234 $this->condition_target[
'ref_id'],
2235 $this->condition_target[
'obj_id'],
2236 $this->condition_target[
'target_type']
2244 if(
sizeof($conditions))
2246 for($i = 0; $i < count($conditions); $i++)
2252 ++self::$js_unique_id;
2255 $all_done_obl = $this->
parseConditions(self::$js_unique_id,$conditions,
true);
2256 $all_done_opt = $this->
parseConditions(self::$js_unique_id,$conditions,
false);
2258 if(!$all_done_obl || !$all_done_opt)
2260 $this->tpl->setCurrentBlock(
"preconditions_toggle");
2261 $this->tpl->setVariable(
"PRECONDITION_TOGGLE_INTRO", $this->lng->txt(
"precondition_toggle"));
2262 $this->tpl->setVariable(
"PRECONDITION_TOGGLE_TRIGGER", $this->lng->txt(
"show"));
2263 $this->tpl->setVariable(
"PRECONDITION_TOGGLE_ID", self::$js_unique_id);
2264 $this->tpl->setVariable(
"TXT_PRECONDITION_SHOW", $this->lng->txt(
"show"));
2265 $this->tpl->setVariable(
"TXT_PRECONDITION_HIDE", $this->lng->txt(
"hide"));
2266 $this->tpl->parseCurrentBlock();
2279 function insertCommand($a_href, $a_text, $a_frame =
"", $a_img =
"", $a_cmd =
"", $a_onclick =
"")
2282 $chksum = md5($a_href.$a_text);
2283 if($a_href ==
"#" ||
2284 !in_array($chksum, $this->prevent_duplicate_commands))
2288 $this->prevent_duplicate_commands[] = $chksum;
2291 $prevent_background_click =
false;
2292 if ($a_cmd ==
'mount_webfolder')
2294 $prevent_background_click =
true;
2296 $this->current_selection_list->addItem($a_text,
"", $a_href, $a_img, $a_text, $a_frame,
2297 "", $prevent_background_click, $a_onclick);
2310 if ($this->std_cmd_only)
2323 $this->adm_commands_included =
true;
2331 $this->ctrl->setParameter($this->container_obj,
"ref_id",
2332 $this->container_obj->object->getRefId());
2333 $this->ctrl->setParameter($this->container_obj,
"item_ref_id", $this->
getCommandId());
2334 $cmd_link = $this->ctrl->getLinkTarget($this->container_obj,
"delete");
2335 $this->
insertCommand($cmd_link, $this->lng->txt(
"delete"),
"",
2337 $this->adm_commands_included =
true;
2350 global $objDefinition;
2352 if ($this->std_cmd_only)
2359 !$objDefinition->allowLink($this->type))
2372 $this->adm_commands_included =
true;
2379 $this->ctrl->setParameter($this->container_obj,
"ref_id",
2380 $this->container_obj->object->getRefId());
2381 $this->ctrl->setParameter($this->container_obj,
"item_ref_id", $this->
getCommandId());
2382 $cmd_link = $this->ctrl->getLinkTarget($this->container_obj,
"link");
2383 $this->
insertCommand($cmd_link, $this->lng->txt(
"link"),
"",
2385 $this->adm_commands_included =
true;
2399 if ($this->std_cmd_only)
2412 $this->adm_commands_included =
true;
2422 $this->container_obj->object)
2424 $this->ctrl->setParameter($this->container_obj,
"ref_id",
2425 $this->container_obj->object->getRefId());
2426 $this->ctrl->setParameter($this->container_obj,
"item_ref_id", $this->
getCommandId());
2428 if(!$a_to_repository)
2430 $cmd_link = $this->ctrl->getLinkTarget($this->container_obj,
"cut");
2431 $this->
insertCommand($cmd_link, $this->lng->txt(
"move"),
"",
2436 $cmd_link = $this->ctrl->getLinkTarget($this->container_obj,
"cut_for_repository");
2437 $this->
insertCommand($cmd_link, $this->lng->txt(
"wsp_move_to_repository"),
"",
2441 $this->adm_commands_included =
true;
2452 global $objDefinition;
2454 if($this->std_cmd_only)
2460 $objDefinition->allowCopy($this->type))
2462 if($this->context != self::CONTEXT_WORKSPACE && $this->context != self::CONTEXT_WORKSPACE_SHARING)
2464 $this->ctrl->setParameterByClass(
'ilobjectcopygui',
'source_id',$this->
getCommandId());
2465 $cmd_copy = $this->ctrl->getLinkTargetByClass(
'ilobjectcopygui',
'initTargetSelection');
2470 $this->ctrl->setParameter($this->container_obj,
"ref_id",
2471 $this->container_obj->object->getRefId());
2472 $this->ctrl->setParameter($this->container_obj,
"item_ref_id", $this->
getCommandId());
2474 if(!$a_to_repository)
2476 $cmd_copy = $this->ctrl->getLinkTarget($this->container_obj,
'copy');
2481 $cmd_copy = $this->ctrl->getLinkTarget($this->container_obj,
'copy_to_repository');
2482 $this->
insertCommand($cmd_copy, $this->lng->txt(
'wsp_copy_to_repository'));
2486 $this->adm_commands_included =
true;
2497 global $ilAccess, $objDefinition;
2499 if ($this->std_cmd_only)
2516 $this->adm_commands_included =
true;
2533 if ($this->std_cmd_only)
2538 if((
int)$ilSetting->get(
'disable_my_offers'))
2545 if ($ilUser->getId() != ANONYMOUS_USER_ID)
2575 if(is_object($this->container_obj) &&
2577 is_object($this->container_obj->object))
2579 $this->ctrl->setParameter($this->container_obj,
"ref_id", $this->container_obj->object->getRefId());
2582 if (!$ilUser->isDesktopItem($this->getCommandId(),
$type))
2586 if ($this->
checkCommandAccess(
"read",
"", $this->ref_id, $this->type, $this->obj_id))
2590 $this->ctrl->setParameter($this->container_obj,
"type",
$type);
2591 $this->ctrl->setParameter($this->container_obj,
"item_ref_id", $this->
getCommandId());
2592 $cmd_link = $this->ctrl->getLinkTarget($this->container_obj,
"addToDesk");
2593 $this->
insertCommand($cmd_link, $this->lng->txt(
"to_desktop"),
"",
2602 $this->ctrl->setParameter($this->container_obj,
"type",
$type);
2603 $this->ctrl->setParameter($this->container_obj,
"item_ref_id", $this->
getCommandId());
2604 $cmd_link = $this->ctrl->getLinkTarget($this->container_obj,
"removeFromDesk");
2605 $this->
insertCommand($cmd_link, $this->lng->txt(
"unsubscribe"),
"",
2617 if ($this->std_cmd_only)
2623 $this->
insertCommand($cmd_link, $this->lng->txt(
"info_short"), $cmd_frame,
2637 if ($this->std_cmd_only ||
2638 ($ilUser->getId() == ANONYMOUS_USER_ID))
2642 $lng->loadLanguageModule(
"notes");
2643 $lng->loadLanguageModule(
"tagging");
2647 include_once(
"./Services/Notes/classes/class.ilNoteGUI.php");
2651 if($this->reference_ref_id)
2656 $js_updater = $a_header_actions
2657 ?
"il.Object.redrawActionHeader();" 2658 :
"il.Object.redrawListItem(".$note_ref_id.
")";
2663 $this->
insertCommand(
"#", $this->lng->txt(
"notes_comments"), $cmd_frame,
2667 if($this->notes_enabled)
2669 $this->
insertCommand(
"#", $this->lng->txt(
"notes"), $cmd_frame,
2673 if ($this->tags_enabled)
2675 include_once(
"./Services/Tagging/classes/class.ilTaggingGUI.php");
2677 $this->
insertCommand(
"#", $this->lng->txt(
"tagging_set_tag"), $cmd_frame,
2689 if ($this->std_cmd_only || !$this->container_obj->object)
2695 $parent_type = $this->container_obj->object->getType();
2700 $this->ctrl->setParameterByClass(
'ilobjectactivationgui',
'cadh',
2702 $this->ctrl->setParameterByClass(
'ilobjectactivationgui',
'parent_id',
2704 $cmd_lnk = $this->ctrl->getLinkTargetByClass(array($this->gui_class_name,
'ilcommonactiondispatchergui',
'ilobjectactivationgui'),
2707 $this->
insertCommand($cmd_lnk, $this->lng->txt(
'obj_activation_list_gui'));
2719 $a_asynch_url =
"", $a_header_actions =
false)
2728 include_once(
"Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
2730 $this->current_selection_list->setAsynch($a_use_asynch && !$a_get_asynch_commands);
2731 $this->current_selection_list->setAsynchUrl($a_asynch_url);
2732 if ($a_header_actions)
2734 $this->current_selection_list->setListTitle(
"<span class='hidden-xs'>".$lng->txt(
"actions").
"</span>");
2738 $this->current_selection_list->setListTitle(
"");
2740 $this->current_selection_list->setId(
"act_".$this->
getUniqueItemId(
false));
2741 $this->current_selection_list->setSelectionHeaderClass(
"small");
2742 $this->current_selection_list->setItemLinkClass(
"xsmall");
2743 $this->current_selection_list->setLinksMode(
"il_ContainerItemCommand2");
2745 $this->current_selection_list->setUseImages(
false);
2746 $this->current_selection_list->setAdditionalToggleElement($this->
getUniqueItemId(
true),
"ilContainerListItemOuterHighlight");
2748 include_once
'Services/Payment/classes/class.ilPaymentObject.php';
2750 $this->ctrl->setParameterByClass($this->gui_class_name,
"ref_id", $this->ref_id);
2753 $only_default =
false;
2754 if ($a_use_asynch && !$a_get_asynch_commands)
2756 $only_default =
true;
2759 $this->default_command =
false;
2760 $this->prevent_duplicate_commands = array();
2763 $valid_header_commands = array(
"mount_webfolder");
2765 $commands = $this->
getCommands($this->ref_id, $this->obj_id);
2766 foreach($commands as $command)
2768 if($a_header_actions && !in_array($command[
"cmd"], $valid_header_commands))
2773 if ($command[
"granted"] ==
true )
2775 if (!$command[
"default"] ===
true)
2777 if (!$this->std_cmd_only && !$only_default)
2783 $cmd_link = $command[
"link"];
2784 $txt = ($command[
"lang_var"] ==
"")
2786 : $this->lng->txt($command[
"lang_var"]);
2788 $command[
"frame"], $command[
"img"], $command[
"cmd"]);
2797 elseif($command[
"default"] ===
true)
2799 $items =& $command[
"access_info"];
2800 foreach ($items as $item)
2815 if (is_array($this->cust_commands))
2817 foreach ($this->cust_commands as $command)
2819 $this->
insertCommand($command[
"link"], $this->lng->txt($command[
"lang_var"]),
2820 $command[
"frame"],
"", $command[
"cmd"], $command[
"onclick"]);
2833 if($this->timings_enabled)
2839 if ($this->delete_enabled)
2845 if ($this->link_enabled)
2851 if ($this->cut_enabled)
2857 if ($this->copy_enabled)
2863 if ($this->repository_transfer_enabled)
2870 if ($this->subscribe_enabled)
2876 if ($this->multi_download_enabled && $a_header_actions)
2882 if($this->cut_enabled or $this->link_enabled)
2888 if(IS_PAYMENT_ENABLED)
2901 if(!$a_header_actions)
2903 $this->ctrl->clearParametersByClass($this->gui_class_name);
2910 if ($a_use_asynch && !$a_get_asynch_commands && !$a_header_actions)
2912 if ($ilUser->getId() == ANONYMOUS_USER_ID && $this->type ==
"cat")
2914 include_once(
"./Services/Container/classes/class.ilContainer.php");
2915 include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
2926 if ($a_use_asynch && $a_get_asynch_commands)
2928 return $this->current_selection_list->getHTML(
true);
2931 return $this->current_selection_list->getHTML();
2944 if($ilSetting->get(
"disable_comments"))
2949 $this->comments_enabled = (bool)$a_value;
2950 $this->comments_settings_enabled = (bool)$a_enable_comments_settings;
2963 if($ilSetting->get(
"disable_notes"))
2968 $this->notes_enabled = (bool)$a_value;
2979 if (!$tags_set->get(
"enable"))
2983 $this->tags_enabled = (bool)$a_value;
2994 function enableRating($a_value, $a_text = null, $a_categories =
false, array $a_ctrl_path = null)
2996 $this->rating_enabled = (bool)$a_value;
2998 if($this->rating_enabled)
3000 $this->rating_categories_enabled = (bool)$a_categories;
3001 $this->rating_text = $a_text;
3002 $this->rating_ctrl_path = $a_ctrl_path;
3014 if (!$folder_set->get(
"enable_multi_download"))
3018 $this->multi_download_enabled = (bool)$a_value;
3023 global $ilAccess, $objDefinition;
3025 if ($this->std_cmd_only)
3037 $cmd =
$_GET[
"cmd"] ==
"enableMultiDownload" ?
"render" :
"enableMultiDownload";
3039 $this->
insertCommand($cmd_link, $this->lng->txt(
"download_multiple_objects"));
3053 if (in_array($this->type, array(
"file",
"fold")) &&
3054 $ilAccess->checkAccess(
"read",
"", $a_ref_id, $this->type))
3056 $this->download_checkbox_state = self::DOWNLOAD_CHECKBOX_ENABLED;
3060 $this->download_checkbox_state = self::DOWNLOAD_CHECKBOX_DISABLED;
3065 $this->download_checkbox_state = self::DOWNLOAD_CHECKBOX_NONE;
3077 static function prepareJsLinks($a_redraw_url, $a_notes_url, $a_tags_url, $a_tpl = null)
3081 if (is_null($a_tpl))
3088 include_once(
"./Services/Notes/classes/class.ilNoteGUI.php");
3094 include_once(
"./Services/Tagging/classes/class.ilTaggingGUI.php");
3100 $a_tpl->addOnLoadCode(
"il.Object.setRedrawAHUrl('".
3101 $a_redraw_url.
"');");
3113 $this->sub_obj_type = $a_type;
3114 $this->sub_obj_id = (int)$a_id;
3126 function addHeaderIcon($a_id, $a_img, $a_tooltip = null, $a_onclick = null, $a_status_text = null, $a_href = null)
3128 $this->header_icons[$a_id] = array(
"img" => $a_img,
3129 "tooltip" => $a_tooltip,
3130 "onclick" => $a_onclick,
3131 "status_text" => $a_status_text,
3142 $this->header_icons[$a_id] = $a_html;
3147 $this->ajax_hash = $a_hash;
3159 $htpl =
new ilTemplate(
"tpl.header_action.html",
true,
true,
"Services/Repository");
3161 $redraw_js =
"il.Object.redrawActionHeader();";
3164 if($this->tags_enabled)
3166 include_once(
"./Services/Tagging/classes/class.ilTagging.php");
3169 if (count(
$tags) > 0)
3171 include_once(
"./Services/Tagging/classes/class.ilTaggingGUI.php");
3172 $lng->loadLanguageModule(
"tagging");
3175 $lng->txt(
"tagging_tags").
": ".count(
$tags),
3183 if($this->notes_enabled || $comments_enabled)
3185 include_once(
"./Services/Notes/classes/class.ilNote.php");
3186 include_once(
"./Services/Notes/classes/class.ilNoteGUI.php");
3201 $lng->loadLanguageModule(
"notes");
3212 if($this->rating_enabled)
3214 include_once(
"./Services/Rating/classes/class.ilRatingGUI.php");
3216 $rating_gui->enableCategories($this->rating_categories_enabled);
3218 $rating_gui->setObject($this->obj_id, $this->type);
3219 if($this->rating_text)
3221 $rating_gui->setYourRatingText($this->rating_text);
3224 $this->ctrl->setParameterByClass(
"ilRatingGUI",
"cadh", $this->ajax_hash);
3225 $this->ctrl->setParameterByClass(
"ilRatingGUI",
"rnsb",
true);
3226 if($this->rating_ctrl_path)
3228 $rating_gui->setCtrlPath($this->rating_ctrl_path);
3229 $ajax_url = $this->ctrl->getLinkTargetByClass($this->rating_ctrl_path,
"saveRating",
"",
true,
false);
3234 $ajax_url = $this->ctrl->getLinkTargetByClass(
"ilRatingGUI",
"saveRating",
"",
true,
false);
3236 $tpl->addOnLoadCode(
"il.Object.setRatingUrl('".$ajax_url.
"');");
3239 $rating_gui->getHtml(
true,
3240 $this->checkCommandAccess(
"read",
"", $this->ref_id, $this->type),
3241 "il.Object.saveRating(%rating%);"));
3244 if($this->header_icons)
3246 include_once(
"./Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php");
3249 foreach($this->header_icons as $id => $attr)
3255 if($attr[
"onclick"])
3257 $htpl->setCurrentBlock(
"onclick");
3258 $htpl->setVariable(
"PROP_ONCLICK", $attr[
"onclick"]);
3259 $htpl->parseCurrentBlock();
3262 if($attr[
"status_text"])
3264 $htpl->setCurrentBlock(
"status");
3265 $htpl->setVariable(
"PROP_TXT", $attr[
"status_text"]);
3266 $htpl->parseCurrentBlock();
3271 $attr[
"href"] =
"#";
3274 $htpl->setCurrentBlock(
"prop");
3275 $htpl->setVariable(
"PROP_ID", $id);
3276 $htpl->setVariable(
"IMG",
ilUtil::img($attr[
"img"]));
3277 $htpl->setVariable(
"PROP_HREF", $attr[
"href"]);
3278 $htpl->parseCurrentBlock();
3280 if($attr[
"tooltip"])
3293 $htpl->setVariable(
"PROP_CHUNKS",
3294 implode(
" ", $chunks).
" ");
3298 $htpl->setVariable(
"ACTION_DROP_DOWN",
3301 return $htpl->get();
3311 $script = substr(strrchr(
$_SERVER[
"PHP_SELF"],
"/"),1);
3314 if ((strtolower(
$_GET[
"baseClass"]) !=
"ilrepositorygui") &&
3315 is_int(strpos($a_link,
"baseClass=ilRepositoryGUI")))
3317 if ($this->type !=
"frm")
3329 if($this->default_command_params)
3332 foreach($this->default_command_params as $name => $value)
3340 if(!stristr($a_default_link,
'?'))
3342 $a_default_link = ($a_default_link.
'?'.
$params);
3346 $a_default_link = ($a_default_link.
'&'.
$params);
3349 return $a_default_link;
3359 if (strstr($a_link,
'ilSAHSPresentationGUI') && !$this->offline_mode)
3361 include_once
'Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php';
3363 $om = $sahs_obj->getOpenMode();
3364 $width = $sahs_obj->getWidth();
3365 $height = $sahs_obj->getHeight();
3366 if ( ($om == 5 || $om == 1) && $width > 0 && $height > 0) $om++;
3367 if ($om != 0 && !$ilBrowser->isMobile())
3369 $this->default_command[
"frame"]=
"";
3370 $a_link =
"javascript:void(0); onclick=startSAHS('".$a_link.
"','".$wtarget.
"',".$om.
",".$width.
",".$height.
");";
3385 include_once
'Services/Tree/classes/class.ilPathGUI.php';
3387 $path_gui->enableTextOnly(!$this->path_linked);
3388 $path_gui->setUseImages(
false);
3390 $start_node = $this->path_start_node
3391 ? $this->path_start_node
3394 $this->tpl->setCurrentBlock(
"path_item");
3395 $this->tpl->setVariable(
'PATH_ITEM',$path_gui->getPath($start_node,$this->ref_id));
3396 $this->tpl->parseCurrentBlock();
3398 $this->tpl->setCurrentBlock(
"path");
3399 $this->tpl->setVariable(
"TXT_LOCATION", $lng->txt(
"locator"));
3400 $this->tpl->parseCurrentBlock();
3422 global
$lng, $objDefinition;
3427 $this->tpl->setCurrentBlock(
"check");
3428 $this->tpl->setVariable(
"VAL_ID", $this->
getCommandId());
3429 $this->tpl->parseCurrentBlock();
3434 $this->tpl->setCurrentBlock(
"check_download");
3436 $this->tpl->setVariable(
"VAL_ID", $this->
getCommandId());
3438 $this->tpl->setVariable(
"VAL_VISIBILITY",
"visibility: hidden;\" disabled=\"disabled");
3439 $this->tpl->parseCurrentBlock();
3444 $this->tpl->setCurrentBlock(
'expand');
3448 $this->ctrl->setParameter($this->container_obj,
'expand',-1 * $this->obj_id);
3449 $this->tpl->setVariable(
'EXP_HREF',$this->ctrl->getLinkTarget($this->container_obj,
'',$this->getUniqueItemId(
true)));
3450 $this->ctrl->clearParameters($this->container_obj);
3452 $this->tpl->setVariable(
'EXP_ALT',$this->lng->txt(
'collapse'));
3456 $this->ctrl->setParameter($this->container_obj,
'expand',$this->obj_id);
3457 $this->tpl->setVariable(
'EXP_HREF',$this->ctrl->getLinkTarget($this->container_obj,
'',$this->getUniqueItemId(
true)));
3458 $this->ctrl->clearParameters($this->container_obj);
3460 $this->tpl->setVariable(
'EXP_ALT',$this->lng->txt(
'expand'));
3463 $this->tpl->parseCurrentBlock();
3471 $this->tpl->touchBlock(
"i_1");
3475 if ($this->title_link_disabled || !$this->default_command || (!$this->
getCommandsStatus() && !$this->restrict_to_goto))
3480 $this->tpl->setCurrentBlock(
"icon_link_s");
3482 if ($this->default_command[
"frame"] !=
"")
3484 $this->tpl->setVariable(
"ICON_TAR",
"target='".$this->default_command[
"frame"].
"'");
3487 $this->tpl->setVariable(
"ICON_HREF",
3488 $this->default_command[
"link"]);
3489 $this->tpl->parseCurrentBlock();
3490 $this->tpl->touchBlock(
"icon_link_e");
3493 $this->tpl->setCurrentBlock(
"icon");
3494 if (!$objDefinition->isPlugin($this->getIconImageType()))
3496 $this->tpl->setVariable(
"ALT_ICON", $lng->txt(
"icon").
" ".$lng->txt(
"obj_".$this->
getIconImageType()));
3500 include_once(
"Services/Component/classes/class.ilPlugin.php");
3501 $this->tpl->setVariable(
"ALT_ICON", $lng->txt(
"icon").
" ".
3505 $this->tpl->setVariable(
"SRC_ICON",
3507 $this->tpl->parseCurrentBlock();
3511 $this->tpl->touchBlock(
"d_".$cnt);
3519 foreach ($this->sub_item_html as $sub_html)
3521 $this->tpl->setCurrentBlock(
"subitem");
3522 $this->tpl->setVariable(
"SUBITEM", $sub_html);
3523 $this->tpl->parseCurrentBlock();
3532 if ($this->position_enabled)
3534 $this->tpl->setCurrentBlock(
"position");
3535 $this->tpl->setVariable(
"POS_ID", $this->position_field_index);
3536 $this->tpl->setVariable(
"POS_VAL", $this->position_value);
3537 $this->tpl->parseCurrentBlock();
3547 return $this->adm_commands_included;
3556 if($this->acache->getLastAccessStatus() ==
"miss" &&
3557 !$this->prevent_access_caching)
3559 $this->acache->storeEntry($ilUser->getId().
":".
$this->ref_id,
3579 $a_use_asynch =
false, $a_get_asynch_commands =
false, $a_asynch_url =
"", $a_context = self::CONTEXT_REPOSITORY)
3585 $this->adm_commands_included =
false;
3591 $ilBench->start(
"ilObjectListGUI",
"1000_getListHTML_init$type");
3592 $this->
initItem($a_ref_id, $a_obj_id, $a_title, $a_description, $a_context);
3593 $ilBench->stop(
"ilObjectListGUI",
"1000_getListHTML_init$type");
3596 include_once
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php";
3597 if($a_context == self::CONTEXT_REPOSITORY)
3607 if ($a_use_asynch && $a_get_asynch_commands)
3612 if($this->rating_enabled)
3619 $rating->setObject($this->obj_id, $this->type);
3628 $rating->getListGUIProperty($this->ref_id, $may_rate, $this->ajax_hash, $this->parent_ref_id),
3636 include_once(
"Services/Object/classes/class.ilListItemAccessCache.php");
3638 $cres = $this->acache->getEntry($ilUser->getId().
":".$a_ref_id);
3639 if($this->acache->getLastAccessStatus() ==
"hit")
3641 $this->access_cache = unserialize($cres);
3652 $ilBench->stop(
"ilObjectListGUI",
"2000_getListHTML_check_visible");
3666 $this->tpl =
new ilTemplate(static::$tpl_file_name,
true,
true,
3667 static::$tpl_component,
"DEFAULT",
false,
true);
3670 ($this->payment_enabled && IS_PAYMENT_ENABLED))
3674 $this->tpl->setVariable(
"COMMAND_SELECTION_LIST",
3675 $this->
insertCommands($a_use_asynch, $a_get_asynch_commands, $a_asynch_url));
3704 $ilBench->start(
"ilObjectListGUI",
"6000_insert_properties$type");
3709 $ilBench->stop(
"ilObjectListGUI",
"6000_insert_properties$type");
3712 $ilBench->start(
"ilObjectListGUI",
"6500_insert_notice_properties$type");
3717 $ilBench->stop(
"ilObjectListGUI",
"6500_insert_notice_properties$type");
3720 $ilBench->start(
"ilObjectListGUI",
"7000_insert_preconditions");
3725 $ilBench->stop(
"ilObjectListGUI",
"7000_insert_preconditions");
3728 $ilBench->start(
"ilObjectListGUI",
"8000_insert_path");
3730 $ilBench->stop(
"ilObjectListGUI",
"8000_insert_path");
3732 $ilBench->start(
"ilObjectListGUI",
"8500_item_detail_links");
3737 $ilBench->stop(
"ilObjectListGUI",
"8500_item_detail_links");
3756 $this->tpl->setVariable(
"DIV_CLASS",
'ilContainerListItemOuter');
3757 $this->tpl->setVariable(
"DIV_ID",
'id = "'.$this->
getUniqueItemId(
true).
'"');
3763 return $this->tpl->get();
3772 $this->cust_prop = array();
3773 $this->cust_commands = array();
3774 $this->sub_item_html = array();
3775 $this->position_enabled =
false;
3785 $this->parent_ref_id = $a_ref_id;
3797 $id_ref = ($this->reference_ref_id > 0)
3798 ? $this->reference_ref_id
3802 if($this->condition_depth)
3804 $id_ref .=
"_pc".$this->condition_depth;
3808 $id_ref .=
"_pref_".$this->parent_ref_id;
3817 return "lg_div_".$id_ref;
3844 $this->bold_title = $a_bold_title;
3868 if($a_context == self::CONTEXT_REPOSITORY)
3870 $active_notes = !$ilSetting->get(
"disable_notes");
3871 $active_comments = !$ilSetting->get(
"disable_comments");
3873 if($active_notes || $active_comments)
3875 include_once(
"./Services/Notes/classes/class.ilNote.php");
3878 if($active_comments)
3885 if($ilSetting->get(
'comments_tagging_in_lists'))
3887 if($active_notes || $active_comments)
3891 $lng->loadLanguageModule(
"notes");
3895 if($tags_set->get(
"enable"))
3897 $all_users = $tags_set->get(
"enable_all_users");
3899 include_once(
"./Services/Tagging/classes/class.ilTagging.php");
3900 if(!$ilSetting->get(
'comments_tagging_in_lists_tags'))
3906 $tag_user_id = null;
3909 $tag_user_id = $ilUser->getId();
3914 $lng->loadLanguageModule(
"tagging");
3918 $lng->loadLanguageModule(
"rating");
3921 self::$preload_done =
true;
3934 protected function isCommentsActivated($a_type, $a_ref_id, $a_obj_id, $a_header_actions, $a_check_write_access =
true)
3936 if($this->comments_enabled)
3938 if(!$this->comments_settings_enabled)
3942 if($a_check_write_access && $this->
checkCommandAccess(
'write',
'', $a_ref_id, $a_type))
3948 if(!$a_header_actions && self::$preload_done)
3950 if(self::$comments_activation[$a_obj_id][$a_type])
3957 include_once(
"./Services/Notes/classes/class.ilNote.php");
3976 $this->timings_enabled = (bool)$a_status;
3987 include_once(
"./Services/FileUpload/classes/class.ilFileUploadUtil.php");
3996 include_once(
"./Services/FileUpload/classes/class.ilFileUploadGUI.php");
4001 $this->tpl->setCurrentBlock(
"fileupload");
4002 $this->tpl->setVariable(
"FILE_UPLOAD", $upload->getHTML());
4003 $this->tpl->parseCurrentBlock();
parseConditions($toggle_id, $conditions, $obligatory=true)
getCommands()
get all current commands for a specific ref id (in the permission context of the current user) ...
getProgressInfoStatus()
get progress info status
static initFileUpload()
Initializes the file upload and loads the needed javascripts and styles.
insertTitle()
insert item title
insertPaymentCommand($has_extension_prices=false)
Creates a path for a start and endnode.
insertIconsAndCheckboxes()
Insert icons and checkboxes.
const CONTEXT_WORKSPACE_SHARING
enableInfoScreen($a_info_screen)
En/disable path.
static _getIcon($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
$repository_transfer_enabled
insertSearchFragment()
Insert highlighted search fragment.
setConditionTarget($a_ref_id, $a_obj_id, $a_target_type)
getDescription()
getDescription overwritten in class.ilObjLinkResourceList.php
getListCommentsJSCall($a_hash, $a_update_code=null)
Get list comments js call.
isMode($a_mode)
check current output mode
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']
getContainerObject()
get container object
insertLinkCommand()
insert link command
insertMultiDownloadCommand()
storeAccessCache()
Store access cache.
static _lookupInsideChangeState($parent_obj_id, $usr_id)
Returns the changed state of objects which are children of the specified parent object.
getIconStatus()
Are icons enabled?
getCommandLink($a_cmd)
Get command link url.
static _getConditionsOfTarget($a_target_ref_id, $a_target_obj_id, $a_target_type="")
get all conditions of target object
disableTitleLink($a_status)
enableNotes($a_value)
Toogle notes action status.
static _lookupPobjectId($a_ref_id)
ilObjectListGUI()
constructor
enablePayment($a_status)
En/disable payment.
enableDelete($a_status)
En/disable delete.
insertCopyCommand($a_to_repository=false)
Insert copy command.
getCheckboxStatus()
Are checkboxes enabled?
addHeaderIcon($a_id, $a_img, $a_tooltip=null, $a_onclick=null, $a_status_text=null, $a_href=null)
static _getStaticLink($a_ref_id, $a_type='', $a_fallback_goto=true, $append="")
Get static link.
const DOWNLOAD_CHECKBOX_NONE
insertPreconditions()
insert all missing preconditions
static translateOperator($a_obj_id, $a_operator)
Translate operator.
enableProperties($a_status)
En/disable properties.
static _countNotesAndComments($a_rep_obj_id, $a_sub_obj_id=null)
Get all notes related to a specific object.
static _isFileHidden($a_file_name)
Returns true, if a file with the specified name, is usually hidden from the user. ...
addCustomCommand($a_link, $a_lang_var, $a_frame="", $onclick="")
add a custom command
resetCustomData()
reset properties and commands
enableCut($a_status)
En/disable cut.
getAdditionalInformation()
Get additional information.
const DOWNLOAD_CHECKBOX_ENABLED
insertPasteCommand()
Insert paste command.
Access handler for personal workspace.
getItemDetailLinkStatus()
get item detail link status
getCommandsHTML()
Get commands HTML (must be called after get list item html)
static getListGUIStatus($a_obj_id)
static _lookupTitle($a_id)
lookup object title
createDefaultCommand($command)
Get default command link Overwritten for e.g categories,courses => they return a goto link If search ...
setBoldTitle($a_bold_title)
public boolean $a_bold_title set the item title bold
insertCommand($a_href, $a_text, $a_frame="", $a_img="", $a_cmd="", $a_onclick="")
insert command button
getSubstitutionStatus()
Get substitution status.
static _isActive()
Static getter.
enableSubstitutions($a_status)
Enable substitutions.
enableSearchFragments($a_status)
En/disable description.
enableMultiDownload($a_value)
Toggles whether multiple objects can be downloaded at once or not.
static getTagsForUserAndObject($a_obj_id, $a_obj_type, $a_sub_obj_id, $a_sub_obj_type, $a_user_id)
Get tags for a user and an object.
static _lookupUserIsOfflineMode($a_obj_id)
Checks offlineMode and returns false if.
insertSubscribeCommand()
insert subscribe command
setContainerObject($container_obj)
set the container object (e.g categorygui) Used for link, delete ...
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static preloadCommonProperties($a_obj_ids, $a_context)
Preload common properties.
$rating_categories_enabled
static calculateRequiredTriggers($a_target_ref_id, $a_target_obj_id, $a_target_obj_type='', $a_force_update=false)
calculate number of obligatory items
static hasRatingInListGUI($a_obj_id, $a_obj_type)
static $comments_activation
insertDeleteCommand()
insert cut command
static lookupRenderStatus($a_obj_id)
Gets the render status for the object with the specified id.
isVisibleOnlyForced()
Force unreadable.
checkCommandAccess($a_permission, $a_cmd, $a_ref_id, $a_type, $a_obj_id="")
setDescription($a_description)
restrictToGoto($a_value)
Restrict all actions/links to goto.
enableLinkedPath($a_status)
Enable linked path.
getCommandFrame($a_cmd)
Get command target frame.
static _getInstance()
Get singleton instance of this class.
enableRepositoryTransfer($a_value)
Enable copy/move to repository (from personal workspace)
insertPositionField()
Insert field for positioning.
enablePath($a_path, $a_start_node=null)
En/disable path.
setPositionInputField($a_field_index, $a_position_value)
Set position input field.
enableRating($a_value, $a_text=null, $a_categories=false, array $a_ctrl_path=null)
Toogle rating action status.
static lookupTxt($a_mod_prefix, $a_pl_id, $a_lang_var)
Lookup language text.
modifySAHSlaunch($a_link, $wtarget)
workaround: SAHS in new javavasript-created window or iframe
static appendUrlParameterString($a_url, $a_par, $xml_style=false)
append URL parameter string ("par1=value1&par2=value2...") to given URL string
isFileUploadAllowed()
Gets a value indicating whether file uploads to this object are allowed or not.
getListTagsJSCall($a_hash, $a_update_code=null)
Get tagging js call.
getNoticeProperties()
get notice properties
static getInstance()
Factory.
enableSubscribe($a_status)
En/disable subscribe.
static hasPreview($a_obj_id, $a_type="")
Determines whether the object with the specified reference id has a preview.
getCommandId()
get command id Normally the ref id.
static getGotoLink($a_node_id, $a_obj_id, $a_additional=null)
const CONTEXT_PERSONAL_DESKTOP
static buildAjaxHash($a_node_type, $a_node_id, $a_obj_type, $a_obj_id, $a_sub_type=null, $a_sub_id=null)
Build ajax hash.
getDownloadCheckboxState()
insertProgressInfo()
insert progress info
enablePreconditions($a_status)
En/disable preconditions.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
enableDownloadCheckbox($a_ref_id, $a_value)
static prepareJsLinks($a_redraw_url, $a_notes_url, $a_tags_url, $a_tpl=null)
Insert js/ajax links into template.
enableDescription($a_status)
En/disable description.
insertSubItems()
Insert subitems.
static _lookupObjId($a_id)
enabledRelevance()
enabled relevance
getProperties($a_item='')
Get item properties.
setAdditionalInformation($a_val)
Set additional information.
special template class to simplify handling of ITX/PEAR
initJavascript($a_ajax_url, $a_type=IL_NOTE_PRIVATE)
Init javascript.
setSearchFragment($a_text)
set search fragment
static getOptionalConditionsOfTarget($a_target_ref_id, $a_target_obj_id, $a_obj_type='')
Get optional conditions.
static getRepObjActivation($a_rep_obj_ids)
Get activation for repository objects.
insertInfoScreenCommand()
insert info screen command
static formatDate(ilDateTime $date)
Format a date public.
getSearchFragment()
get search fragment
getListItemHTML($a_ref_id, $a_obj_id, $a_title, $a_description, $a_use_asynch=false, $a_get_asynch_commands=false, $a_asynch_url="", $a_context=self::CONTEXT_REPOSITORY)
Get all item information (title, commands, description) in HTML.
redirection script todo: (a better solution should control the processing via a xml file) ...
enableProgressInfo($a_status)
enable progress info
getDetailsLevel()
Get current details level.
enableNoticeProperties($a_status)
En/disable notices.
static _lookupOrder($a_pobject_id)
getSearchFragmentStatus()
Show hide search result fragments.
getCommandImage($a_cmd)
Get command icon image.
getIconImageType()
Returns the icon image type.
insertPayment()
insert payment information
static getInstance()
Get singelton iunstance.
insertItemDetailLinks()
insert item detail links
initJavascript($a_ajax_url)
Init javascript.
forceVisibleOnly($a_stat)
Force visible access only.
enableCommands($a_status, $a_std_only=false)
En/disable commands.
static _hasAccess($a_pobject_id, $a_user_id=0, $a_transaction=0)
_getCommands()
get commands
static _lookupType($a_id, $a_reference=false)
lookup object type
enableCopy($a_status)
En/disable copy.
setDetailsLevel($a_level)
Details level Currently used in Search which shows only limited properties of forums Currently used f...
Caches (check) access information on list items.
enableComments($a_value, $a_enable_comments_settings=true)
Toogle comments action status.
appendRepositoryFrameParameter($a_link)
workaround: all links into the repository (from outside) must tell repository to setup the frameset ...
getTitle()
getTitle overwritten in class.ilObjLinkResourceList.php
addCustomProperty($a_property="", $a_value="", $a_alert=false, $a_newline=false)
add custom property
enableExpand($a_status)
En/Dis-able expand/collapse link.
User interface class for advanced drop-down selection lists.
setDefaultCommandParameters(array $a_params)
enableIcon($a_status)
En/Dis-able icons.
insertProperties($a_item='')
insert properties
static _countTags($a_obj_ids, $a_all_users=false)
Count all tags for repository objects.
$prevent_duplicate_commands
setRelevance($a_rel)
set relevance
setItemDetailLinks($a_detail_links, $a_intro_txt='')
set items detail links
enableItemDetailLinks($a_status)
enable item detail links E.g Direct links to chapters or pages
static commentsActivated($a_rep_obj_id, $a_obj_id, $a_obj_type)
Are comments activated for object?
modifyTitleLink($a_default_link)
enableCheckbox($a_status)
En/Dis-able checkboxes.
_checkCondition($a_id, $a_usr_id=0)
checks wether a single condition is fulfilled every trigger object type must implement a static metho...
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
setParentRefId($a_ref_id)
Set current parent ref id to enable unique js-ids (sessions, etc.)
addHeaderIconHTML($a_id, $a_html)
setConditionDepth($a_depth)
set depth for precondition output (stops at level 5)
getNoticePropertiesStatus()
getRelevance()
get relevance
Interface for gui classes (e.g ilLuceneSearchGUI) that offer add/remove to/from desktop.
enableTags($a_value)
Toogle tags action status.
static isUploadAllowed($a_ref_id, $a_type="")
Determines whether files can be uploaded to the object with the specified reference id...
isCommentsActivated($a_type, $a_ref_id, $a_obj_id, $a_header_actions, $a_check_write_access=true)
Check comments status against comments settings and context.
insertTimingsCommand()
insert edit timings command
isSideBlock()
Returns whether current item is a block in a side column or not.
static getInstance()
Get instance.
static _isActive()
Returns true, if change event tracking is active.
getUniqueItemId($a_as_div=false)
Get unique item identifier (for js-actions)
setSeparateCommands($a_val)
Set separate commands.
enableLink($a_status)
En/disable link.
setMode($a_mode)
set output mode
getSeparateCommands()
Get separate commands.
_lookupContainerSetting($a_id, $a_keyword, $a_default_value=NULL)
Lookup a container setting.
const INFO_TAB_VISIBILITY
$item_detail_links_enabled
$notice_properties_enabled
insertCommands($a_use_asynch=false, $a_get_asynch_commands=false, $a_asynch_url="", $a_header_actions=false)
insert all commands into html code
getAlertProperties()
get all alert properties
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
insertCommonSocialCommands($a_header_actions=false)
Insert common social commands (comments, notes, tagging)
Interface for GUI classes (PDGUI, LuceneSearchGUI...) that have to handle administration commands (cu...
getExpandStatus()
Is expand/collapse enabled.
setHeaderSubObject($a_type, $a_id)
Set sub object identifier.
$comments_settings_enabled
static _getListTagsForObjects(array $a_obj_ids, $a_user_id=null)
Get tags for given object ids.
$search_fragments_enabled
insertDescription()
insert item description
insertFileUpload()
Inserts a file upload component.
insertRelevance()
insert relevance
initItem($a_ref_id, $a_obj_id, $a_title="", $a_description="", $a_context=self::CONTEXT_REPOSITORY)
inititialize new item (is called by getItemHTML())
getCustomProperties($a_prop)
get custom properties
getListNotesJSCall($a_hash, $a_update_code=null)
Get list notes js call.
Class ilObjSCORMLearningModule.
static _hasExtensions($a_ref_id)
const DOWNLOAD_CHECKBOX_DISABLED
static _countNotesAndCommentsMultiple($a_rep_obj_ids, $a_no_sub_objs=false)
Get all notes related to multiple objcts.
enableRelevance($a_status)
enable relevance
static _lookupChangeState($obj_id, $usr_id)
Returns the change state of the object for the specified user.
adminCommandsIncluded()
returns whether any admin commands (link, delete, cut) are included in the output ...
addSubItemHTML($a_html)
Add HTML for subitem (used for sessions)
getHeaderAction()
Get header action.
enableTimings($a_status)
enable timings link
insertCutCommand($a_to_repository=false)
insert cut command
insertSubstitutions()
Insert substitutions.