4define (
"IL_LIST_AS_TRIGGER",
"trigger");
5define (
"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)
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)
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++)
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();
2949 $this->comments_enabled = (bool)$a_value;
2950 $this->comments_settings_enabled = (bool)$a_enable_comments_settings;
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))
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),
3185 include_once(
"./Services/Notes/classes/class.ilNote.php");
3186 include_once(
"./Services/Notes/classes/class.ilNoteGUI.php");
3201 $lng->loadLanguageModule(
"notes");
3205 $lng->txt(
"notes_public_comments").
": ".$cnt[$this->obj_id][
IL_NOTE_PUBLIC],
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").
" ".
3502 ilPlugin::lookupTxt(
"rep_robj", $this->getIconImageType(),
"obj_".$this->getIconImageType()));
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,
3560 serialize($this->access_cache), $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();
User interface class for advanced drop-down selection lists.
static _lookupChangeState($obj_id, $usr_id)
Returns the change state of the object for the specified user.
static _isActive()
Returns true, if change event tracking is active.
static _lookupInsideChangeState($parent_obj_id, $usr_id)
Returns the changed state of objects which are children of the specified parent object.
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.
static translateOperator($a_obj_id, $a_operator)
Translate operator.
static getOptionalConditionsOfTarget($a_target_ref_id, $a_target_obj_id, $a_obj_type='')
Get optional conditions.
static calculateRequiredTriggers($a_target_ref_id, $a_target_obj_id, $a_target_obj_type='', $a_force_update=false)
calculate number of obligatory items
static _getConditionsOfTarget($a_target_ref_id, $a_target_obj_id, $a_target_type="")
get all conditions of target object
_checkCondition($a_id, $a_usr_id=0)
checks wether a single condition is fulfilled every trigger object type must implement a static metho...
_lookupContainerSetting($a_id, $a_keyword, $a_default_value=NULL)
Lookup a container setting.
static _isActive()
Static getter.
static getInstance()
Get singelton iunstance.
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
static initFileUpload()
Initializes the file upload and loads the needed javascripts and styles.
static isUploadAllowed($a_ref_id, $a_type="")
Determines whether files can be uploaded to the object with the specified reference id.
static _getInstance()
Get singleton instance of this class.
static getListGUIStatus($a_obj_id)
static _getStaticLink($a_ref_id, $a_type='', $a_fallback_goto=true, $append="")
Get static link.
Caches (check) access information on list items.
static getInstance()
Get instance.
initJavascript($a_ajax_url, $a_type=IL_NOTE_PRIVATE)
Init javascript.
getListCommentsJSCall($a_hash, $a_update_code=null)
Get list comments js call.
getListNotesJSCall($a_hash, $a_update_code=null)
Get list notes js call.
static commentsActivated($a_rep_obj_id, $a_obj_id, $a_obj_type)
Are comments activated for object?
static _countNotesAndComments($a_rep_obj_id, $a_sub_obj_id=null)
Get all notes related to a specific object.
static _countNotesAndCommentsMultiple($a_rep_obj_ids, $a_no_sub_objs=false)
Get all notes related to multiple objcts.
static getRepObjActivation($a_rep_obj_ids)
Get activation for repository objects.
static _isFileHidden($a_file_name)
Returns true, if a file with the specified name, is usually hidden from the user.
static _lookupUserIsOfflineMode($a_obj_id)
Checks offlineMode and returns false if.
Class ilObjSCORMLearningModule.
_getCommands()
get commands
enableDescription($a_status)
En/disable description.
getAdditionalInformation()
Get additional information.
enabledRelevance()
enabled relevance
$search_fragments_enabled
getContainerObject()
get container object
setHeaderSubObject($a_type, $a_id)
Set sub object identifier.
getTitle()
getTitle overwritten in class.ilObjLinkResourceList.php
isTitleBold()
@access public
const DOWNLOAD_CHECKBOX_DISABLED
setBoldTitle($a_bold_title)
@access public @params boolean $a_bold_title set the item title bold
addHeaderIconHTML($a_id, $a_html)
insertProperties($a_item='')
insert properties
setSearchFragment($a_text)
set search fragment
setMode($a_mode)
set output mode
initItem($a_ref_id, $a_obj_id, $a_title="", $a_description="", $a_context=self::CONTEXT_REPOSITORY)
inititialize new item (is called by getItemHTML())
setConditionTarget($a_ref_id, $a_obj_id, $a_target_type)
getAlertProperties()
get all alert properties
enableLinkedPath($a_status)
Enable linked path.
storeAccessCache()
Store access cache.
modifyTitleLink($a_default_link)
adminCommandsIncluded()
returns whether any admin commands (link, delete, cut) are included in the output
insertTitle()
insert item title
$rating_categories_enabled
setDetailsLevel($a_level)
Details level Currently used in Search which shows only limited properties of forums Currently used f...
enableDownloadCheckbox($a_ref_id, $a_value)
$notice_properties_enabled
enableCommands($a_status, $a_std_only=false)
En/disable commands.
setDefaultCommandParameters(array $a_params)
getCommandLink($a_cmd)
Get command link url.
const CONTEXT_WORKSPACE_SHARING
enableRepositoryTransfer($a_value)
Enable copy/move to repository (from personal workspace)
getCommands()
get all current commands for a specific ref id (in the permission context of the current user)
insertRelevance()
insert relevance
insertSubstitutions()
Insert substitutions.
enableProperties($a_status)
En/disable properties.
getIconImageType()
Returns the icon image type.
setSeparateCommands($a_val)
Set separate commands.
insertFileUpload()
Inserts a file upload component.
static prepareJsLinks($a_redraw_url, $a_notes_url, $a_tags_url, $a_tpl=null)
Insert js/ajax links into template
insertPreconditions()
insert all missing preconditions
const CONTEXT_PERSONAL_DESKTOP
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.
enableRelevance($a_status)
enable relevance
const DOWNLOAD_CHECKBOX_NONE
parseConditions($toggle_id, $conditions, $obligatory=true)
addCustomCommand($a_link, $a_lang_var, $a_frame="", $onclick="")
add a custom command
isMode($a_mode)
check current output mode
insertPasteCommand()
Insert paste command.
enableLink($a_status)
En/disable link.
getSearchFragmentStatus()
Show hide search result fragments.
$item_detail_links_enabled
insertPayment()
insert payment information
enableSubstitutions($a_status)
Enable substitutions.
isSideBlock()
Returns whether current item is a block in a side column or not.
isVisibleOnlyForced()
Force unreadable.
getProperties($a_item='')
Get item properties.
enableCheckbox($a_status)
En/Dis-able checkboxes.
const DOWNLOAD_CHECKBOX_ENABLED
insertMultiDownloadCommand()
getCommandsHTML()
Get commands HTML (must be called after get list item html)
setConditionDepth($a_depth)
set depth for precondition output (stops at level 5)
getItemDetailLinkStatus()
get item detail link status
resetCustomData()
reset properties and commands
forceVisibleOnly($a_stat)
Force visible access only.
$repository_transfer_enabled
addSubItemHTML($a_html)
Add HTML for subitem (used for sessions)
getCommandFrame($a_cmd)
Get command target frame.
getNoticeProperties()
get notice properties
enableNotes($a_value)
Toogle notes action status.
addCustomProperty($a_property="", $a_value="", $a_alert=false, $a_newline=false)
add custom property
insertTimingsCommand()
insert edit timings command
insertInfoScreenCommand()
insert info screen command
enableNoticeProperties($a_status)
En/disable notices.
enablePayment($a_status)
En/disable payment.
getUniqueItemId($a_as_div=false)
Get unique item identifier (for js-actions)
getCommandImage($a_cmd)
Get command icon image.
setParentRefId($a_ref_id)
Set current parent ref id to enable unique js-ids (sessions, etc.)
enableIcon($a_status)
En/Dis-able icons.
getSearchFragment()
get search fragment
insertSearchFragment()
Insert highlighted search fragment.
getHeaderAction()
Get header action.
insertCutCommand($a_to_repository=false)
insert cut command
createDefaultCommand($command)
Get default command link Overwritten for e.g categories,courses => they return a goto link If search ...
enableSearchFragments($a_status)
En/disable description.
enableCopy($a_status)
En/disable copy.
enableTimings($a_status)
enable timings link
disableTitleLink($a_status)
addHeaderIcon($a_id, $a_img, $a_tooltip=null, $a_onclick=null, $a_status_text=null, $a_href=null)
insertItemDetailLinks()
insert item detail links
static preloadCommonProperties($a_obj_ids, $a_context)
Preload common properties.
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.
enablePreconditions($a_status)
En/disable preconditions.
enableTags($a_value)
Toogle tags action status.
getDescription()
getDescription overwritten in class.ilObjLinkResourceList.php
setPositionInputField($a_field_index, $a_position_value)
Set position input field.
getSubstitutionStatus()
Get substitution status.
enableCut($a_status)
En/disable cut.
setRelevance($a_rel)
set relevance
enableMultiDownload($a_value)
Toggles whether multiple objects can be downloaded at once or not.
enableExpand($a_status)
En/Dis-able expand/collapse link.
insertProgressInfo()
insert progress info
insertDescription()
insert item description
setDescription($a_description)
enableProgressInfo($a_status)
enable progress info
insertPositionField()
Insert field for positioning.
insertSubscribeCommand()
insert subscribe command
$comments_settings_enabled
enableSubscribe($a_status)
En/disable subscribe.
appendRepositoryFrameParameter($a_link)
workaround: all links into the repository (from outside) must tell repository to setup the frameset
getCheckboxStatus()
Are checkboxes enabled?
getDownloadCheckboxState()
insertLinkCommand()
insert link command
isFileUploadAllowed()
Gets a value indicating whether file uploads to this object are allowed or not.
static $comments_activation
insertCommonSocialCommands($a_header_actions=false)
Insert common social commands (comments, notes, tagging)
setContainerObject($container_obj)
set the container object (e.g categorygui) Used for link, delete ... commands
enableRating($a_value, $a_text=null, $a_categories=false, array $a_ctrl_path=null)
Toogle rating action status.
checkCommandAccess($a_permission, $a_cmd, $a_ref_id, $a_type, $a_obj_id="")
enableItemDetailLinks($a_status)
enable item detail links E.g Direct links to chapters or pages
modifySAHSlaunch($a_link, $wtarget)
workaround: SAHS in new javavasript-created window or iframe
insertCopyCommand($a_to_repository=false)
Insert copy command.
getCustomProperties($a_prop)
get custom properties
insertSubItems()
Insert subitems.
enableComments($a_value, $a_enable_comments_settings=true)
Toogle comments action status.
getCommandId()
get command id Normally the ref id.
enableInfoScreen($a_info_screen)
En/disable path.
getProgressInfoStatus()
get progress info status
insertIconsAndCheckboxes()
Insert icons and checkboxes.
enablePath($a_path, $a_start_node=null)
En/disable path.
setAdditionalInformation($a_val)
Set additional information.
setItemDetailLinks($a_detail_links, $a_intro_txt='')
set items detail links
restrictToGoto($a_value)
Restrict all actions/links to goto.
$prevent_duplicate_commands
getDetailsLevel()
Get current details level.
getIconStatus()
Are icons enabled?
getSeparateCommands()
Get separate commands.
ilObjectListGUI()
constructor
insertDeleteCommand()
insert cut command
getExpandStatus()
Is expand/collapse enabled.
insertCommands($a_use_asynch=false, $a_get_asynch_commands=false, $a_asynch_url="", $a_header_actions=false)
insert all commands into html code
getRelevance()
get relevance
enableDelete($a_status)
En/disable delete.
insertCommand($a_href, $a_text, $a_frame="", $a_img="", $a_cmd="", $a_onclick="")
insert command button
getNoticePropertiesStatus()
insertPaymentCommand($has_extension_prices=false)
const INFO_TAB_VISIBILITY
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static _getIcon($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
static _lookupType($a_id, $a_reference=false)
lookup object type
Creates a path for a start and endnode.
static _hasAccess($a_pobject_id, $a_user_id=0, $a_transaction=0)
static _lookupOrder($a_pobject_id)
static _hasExtensions($a_ref_id)
static _lookupPobjectId($a_ref_id)
static lookupTxt($a_mod_prefix, $a_pl_id, $a_lang_var)
Lookup language text.
static hasPreview($a_obj_id, $a_type="")
Determines whether the object with the specified reference id has a preview.
static lookupRenderStatus($a_obj_id)
Gets the render status for the object with the specified id.
static getInstance()
Factory.
static hasRatingInListGUI($a_obj_id, $a_obj_type)
getListTagsJSCall($a_hash, $a_update_code=null)
Get tagging js call.
initJavascript($a_ajax_url)
Init javascript.
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 _getListTagsForObjects(array $a_obj_ids, $a_user_id=null)
Get tags for given object ids.
static _countTags($a_obj_ids, $a_all_users=false)
Count all tags for repository objects.
special template class to simplify handling of ITX/PEAR
static appendUrlParameterString($a_url, $a_par, $xml_style=false)
append URL parameter string ("par1=value1&par2=value2...") to given URL string
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
Access handler for personal workspace.
static getGotoLink($a_node_id, $a_obj_id, $a_additional=null)
Interface for GUI classes (PDGUI, LuceneSearchGUI...) that have to handle administration commands (cu...
Interface for gui classes (e.g ilLuceneSearchGUI) that offer add/remove to/from desktop.
redirection script todo: (a better solution should control the processing via a xml file)
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']