4define(
"IL_LIST_AS_TRIGGER", 
"trigger");
 
    5define(
"IL_LIST_FULL", 
"full");
 
    6require_once(
'./Services/Repository/classes/class.ilObjectPlugin.php');
 
  176    public function __construct($a_context = self::CONTEXT_REPOSITORY)
 
  179        $this->access = 
$DIC->access();
 
  180        $this->
user = $DIC->user();
 
  181        $this->obj_definition = 
$DIC[
"objDefinition"];
 
  182        $this->tree = 
$DIC->repositoryTree();
 
  185        $this->ui = 
$DIC->ui();
 
  186        $this->rbacsystem = 
$DIC->rbac()->system();
 
  187        $this->ctrl = 
$DIC->ctrl();
 
  188        $this->lng = 
$DIC->language();
 
  190        $this->path_enabled = 
false;
 
  191        $this->context = $a_context;
 
  203        include_once(
'Services/LDAP/classes/class.ilLDAPRoleGroupMapping.php');
 
  206        $this->lng->loadLanguageModule(
"obj");
 
  218        $this->container_obj = $container_obj;
 
  230        return $this->container_obj;
 
  242        $this->static_link_enabled = 
true;
 
  243        $this->delete_enabled = 
true;
 
  244        $this->cut_enabled = 
true;
 
  245        $this->subscribe_enabled = 
true;
 
  246        $this->link_enabled = 
false;
 
  247        $this->copy_enabled = 
false;
 
  248        $this->progress_enabled = 
false;
 
  249        $this->notice_properties_enabled = 
true;
 
  250        $this->info_screen_enabled = 
false;
 
  252        $this->gui_class_name = 
"";                     
 
  255        include_once(
'./Services/Object/classes/class.ilObjectAccess.php');
 
  268        $this->properties_enabled = $a_status;
 
  290        $this->preconditions_enabled = $a_status;
 
  308        $this->notice_properties_enabled = $a_status;
 
  330        $this->description_enabled = $a_status;
 
  364        $this->search_fragment_enabled = $a_status;
 
  376        $this->path_linked = $a_status;
 
  394        $this->enabled_relevance = $a_status;
 
  404        $this->relevance = $a_rel;
 
  424        $this->icons_enabled = $a_status;
 
  444        $this->checkboxes_enabled = $a_status;
 
  464        $this->expand_enabled = $a_status;
 
  479        $this->is_expanded = $a_status;
 
  494        $this->position_enabled = 
true;
 
  495        $this->position_field_index = $a_field_index;
 
  496        $this->position_value = $a_position_value;
 
  507        $this->delete_enabled = $a_status;
 
  519        return $this->delete_enabled;
 
  530        $this->cut_enabled = $a_status;
 
  541        return $this->cut_enabled;
 
  552        $this->copy_enabled = $a_status;
 
  574        $this->subscribe_enabled = $a_status;
 
  585        return $this->subscribe_enabled;
 
  596        $this->link_enabled = $a_status;
 
  607        return $this->link_enabled;
 
  619        $this->path_enabled = $a_path;
 
  620        $this->path_start_node = (int) $a_start_node;
 
  631        return $this->path_enabled;
 
  642        $this->commands_enabled = $a_status;
 
  643        $this->std_cmd_only = $a_std_only;
 
  663        $this->info_screen_enabled = $a_info_screen;
 
  673        $this->sub_item_html[] = $a_html;
 
  695        $this->progress_enabled = $a_status;
 
  719        $this->substitutions_enabled = $a_status;
 
  743        $this->item_detail_links_enabled = $a_status;
 
  766        $this->item_detail_links = $a_detail_links;
 
  767        $this->item_detail_links_intro = $a_intro_txt;
 
  779        if (!count($this->item_detail_links)) {
 
  782        if (strlen($this->item_detail_links_intro)) {
 
  783            $this->tpl->setCurrentBlock(
'item_detail_intro');
 
  784            $this->tpl->setVariable(
'ITEM_DETAIL_INTRO_TXT', $this->item_detail_links_intro);
 
  785            $this->tpl->parseCurrentBlock();
 
  788        foreach ($this->item_detail_links as 
$info) {
 
  789            $this->tpl->setCurrentBlock(
'item_detail_link');
 
  790            $this->tpl->setVariable(
'ITEM_DETAIL_LINK_TARGET', 
$info[
'target']);
 
  791            $this->tpl->setVariable(
'ITEM_DETAIL_LINK_DESC', 
$info[
'desc']);
 
  792            $this->tpl->setVariable(
'ITEM_DETAIL_LINK_HREF', 
$info[
'link']);
 
  793            $this->tpl->setVariable(
'ITEM_DETAIL_LINK_NAME', 
$info[
'name']);
 
  794            $this->tpl->parseCurrentBlock();
 
  796        $this->tpl->setCurrentBlock(
'item_detail_links');
 
  797        $this->tpl->parseCurrentBlock();
 
  808        $this->title = $a_title;
 
  827        $this->description = $a_description;
 
  847        $this->search_fragment = $a_text;
 
  866        $this->separate_commands = $a_val;
 
  899        $this->additional_information = $a_val;
 
  921        $this->details_level = $a_level;
 
  940        $this->repository_transfer_enabled = (bool) $a_value;
 
  950        $this->restrict_to_goto = (bool) $a_value;
 
  961        return $this->default_command;
 
  978        $cache_prefix = 
null;
 
  979        if ($this->context == self::CONTEXT_WORKSPACE || $this->context == self::CONTEXT_WORKSPACE_SHARING) {
 
  980            $cache_prefix = 
"wsp";
 
  981            if (!$this->ws_access) {
 
  982                include_once 
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
 
  987        if (isset($this->access_cache[$a_permission][
"-" . $a_cmd][$cache_prefix . $a_ref_id])) {
 
  988            return $this->access_cache[$a_permission][
"-" . $a_cmd][$cache_prefix . $a_ref_id];
 
  991        if ($this->context == self::CONTEXT_REPOSITORY) {
 
  992            $access = $ilAccess->checkAccess($a_permission, $a_cmd, $a_ref_id, 
$a_type, $a_obj_id);
 
  993            if ($ilAccess->getPreventCachingLastResult()) {
 
  994                $this->prevent_access_caching = 
true;
 
  997            $access = $this->ws_access->checkAccess($a_permission, $a_cmd, $a_ref_id, 
$a_type);
 
 1000        $this->access_cache[$a_permission][
"-" . $a_cmd][$cache_prefix . $a_ref_id] = 
$access;
 
 1013    public function initItem($a_ref_id, $a_obj_id, $a_title = 
"", $a_description = 
"")
 
 1015        $this->offline_mode = 
false;
 
 1016        if ($this->type == 
"sahs") {
 
 1017            include_once(
'Modules/ScormAicc/classes/class.ilObjSAHSLearningModuleAccess.php');
 
 1020        $this->access_cache = array();
 
 1021        $this->ref_id = $a_ref_id;
 
 1022        $this->obj_id = $a_obj_id;
 
 1025        #$this->description = $a_description; 
 1028        $this->adm_commands_included = 
false;
 
 1029        $this->prevent_access_caching = 
false;
 
 1034        $this->condition_target = array(
 
 1035            'ref_id' => $a_ref_id,
 
 1036            'obj_id' => $a_obj_id,
 
 1037            'target_type' => $a_target_type
 
 1043        $this->condition_target = array();
 
 1048        $this->title_link_disabled = $a_status;
 
 1054        $this->default_command_params = $a_params;
 
 1069        if ($this->static_link_enabled and !$this->default_command_params) {
 
 1070            include_once(
'./Services/Link/classes/class.ilLink.php');
 
 1072                $command[
'link'] = $link;
 
 1073                $command[
'frame'] = 
'_top';
 
 1076        if ($this->default_command_params) {
 
 1078            foreach ($this->default_command_params as 
$name => $value) {
 
 1084            if (!stristr($command[
'link'], 
'?')) {
 
 1085                $command[
'link'] .= 
'?' . 
$params;
 
 1087                $command[
'link'] .= 
'&' . 
$params;
 
 1107        if ($this->context == self::CONTEXT_REPOSITORY) {
 
 1109            require_once(
'Services/WebDAV/classes/class.ilDAVActivationChecker.php');
 
 1111                require_once(
'Services/WebDAV/classes/class.ilWebDAVUtil.php');
 
 1118                return $dav_util->getMountURI($this->ref_id) .
 
 1119                            '" folder="' . $dav_util->getFolderURI($this->ref_id);
 
 1123            $this->ctrl->setParameterByClass(
"ilrepositorygui", 
"ref_id", $this->
getCommandId());
 
 1124            $cmd_link = $this->ctrl->getLinkTargetByClass(
"ilrepositorygui", $a_cmd);
 
 1125            $this->ctrl->setParameterByClass(
"ilrepositorygui", 
"ref_id", 
$_GET[
"ref_id"]);
 
 1134            $this->ctrl->setParameterByClass($this->gui_class_name, 
"ref_id", 
"");
 
 1135            $this->ctrl->setParameterByClass($this->gui_class_name, 
"wsp_id", $this->ref_id);
 
 1136            return $this->ctrl->getLinkTargetByClass($this->gui_class_name, $a_cmd);
 
 1153        require_once(
'Services/WebDAV/classes/class.ilDAVActivationChecker.php');
 
 1158        if ($a_cmd == 
'fileManagerLaunch') {
 
 1203        if ($this->context == self::CONTEXT_REPOSITORY) {
 
 1209                        'property' => 
$lng->txt(
"status"),
 
 1210                        'value' => 
$lng->txt(
"offline")
 
 1215            require_once(
'Services/WebDAV/classes/class.ilDAVActivationChecker.php');
 
 1218                require_once(
'Services/WebDAV/classes/lock/class.ilWebDAVLockBackend.php');
 
 1220                if (
$ilUser->getId() != ANONYMOUS_USER_ID) {
 
 1221                    if ($lock = $webdav_lock_backend->getLocksOnObjectId($this->obj_id)) {
 
 1222                        $lock_user = 
new ilObjUser($lock->getIliasOwner());
 
 1226                            "property" => 
$lng->txt(
"in_use_by"),
 
 1227                            "value" => $lock_user->getLogin(),
 
 1228                            "link" => 
"./ilias.php?user=" . $lock_user->getId() . 
'&cmd=showUserProfile&cmdClass=ilpersonaldesktopgui&baseClass=ilPersonalDesktopGUI',
 
 1239                if (preg_match(
'/^(\\.|\\.\\.)$/', $this->title)) {
 
 1240                    $props[] = array(
"alert" => 
false, 
"property" => 
$lng->txt(
"filename_interoperability"),
 
 1241                        "value" => 
$lng->txt(
"filename_special_filename"),
 
 1242                        'propertyNameVisible' => 
false);
 
 1243                } elseif (preg_match(
'/^\\./', $this->title)) {
 
 1244                    $props[] = array(
"alert" => 
false, 
"property" => 
$lng->txt(
"filename_visibility"),
 
 1245                        "value" => 
$lng->txt(
"filename_hidden_unix_file"),
 
 1246                        'propertyNameVisible' => 
false);
 
 1247                } elseif (preg_match(
'/~$/', $this->title)) {
 
 1248                    $props[] = array(
"alert" => 
false, 
"property" => 
$lng->txt(
"filename_visibility"),
 
 1249                        "value" => 
$lng->txt(
"filename_hidden_backup_file"),
 
 1250                        'propertyNameVisible' => 
false);
 
 1251                } elseif (preg_match(
'/[\\/]/', $this->title)) {
 
 1252                    $props[] = array(
"alert" => 
false, 
"property" => 
$lng->txt(
"filename_interoperability"),
 
 1253                        "value" => 
$lng->txt(
"filename_special_characters"),
 
 1254                        'propertyNameVisible' => 
false);
 
 1255                } elseif (preg_match(
'/[\\\\\\/:*?"<>|]/', $this->title)) {
 
 1256                    $props[] = array(
"alert" => 
false, 
"property" => 
$lng->txt(
"filename_interoperability"),
 
 1257                        "value" => 
$lng->txt(
"filename_windows_special_characters"),
 
 1258                        'propertyNameVisible' => 
false);
 
 1259                } elseif (preg_match(
'/\\.$/', $this->title)) {
 
 1260                    $props[] = array(
"alert" => 
false, 
"property" => 
$lng->txt(
"filename_interoperability"),
 
 1261                        "value" => 
$lng->txt(
"filename_windows_empty_extension"),
 
 1262                        'propertyNameVisible' => 
false);
 
 1263                } elseif (preg_match(
'/^(\\.|\\.\\.)$/', $this->title)) {
 
 1264                    $props[] = array(
"alert" => 
false, 
"property" => 
$lng->txt(
"filename_interoperability"),
 
 1265                        "value" => 
$lng->txt(
"filename_special_filename"),
 
 1266                        'propertyNameVisible' => 
false);
 
 1267                } elseif (preg_match(
'/#/', $this->title)) {
 
 1268                    $props[] = array(
"alert" => 
false, 
"property" => 
$lng->txt(
"filename_interoperability"),
 
 1269                        "value" => 
$lng->txt(
"filename_windows_webdav_issue"),
 
 1270                        'propertyNameVisible' => 
false);
 
 1288        $this->cust_prop[] = array(
"property" => $a_property, 
"value" => $a_value,
 
 1289            "alert" => $a_alert, 
"newline" => $a_newline);
 
 1297        if (is_array($this->cust_prop)) {
 
 1298            foreach ($this->cust_prop as $prop) {
 
 1313            if ($prop[
'alert'] == 
true) {
 
 1325        $this->notice_prop = array();
 
 1326        if ($infos = $this->ldap_mapping->getInfoStrings($this->obj_id, 
true)) {
 
 1327            foreach ($infos as 
$info) {
 
 1328                $this->notice_prop[] = array(
'value' => 
$info);
 
 1331        return $this->notice_prop ? $this->notice_prop : array();
 
 1338        $this->cust_commands[] =
 
 1339            array(
"link" => $a_link, 
"lang_var" => $a_lang_var,
 
 1340            "frame" => $a_frame, 
"onclick" => $onclick);
 
 1349        $this->force_visible_only = $a_stat;
 
 1389        $ref_commands = array();
 
 1390        foreach ($this->commands as $command) {
 
 1391            $permission = $command[
"permission"];
 
 1392            $cmd = $command[
"cmd"];
 
 1393            $lang_var = $command[
"lang_var"];
 
 1395            $info_object = 
null;
 
 1397            if (isset($command[
"txt"])) {
 
 1398                $txt = $command[
"txt"];
 
 1403            if (
$ilUser->getId() == ANONYMOUS_USER_ID &&
 
 1404                $command[
'enable_anonymous'] == 
'false') {
 
 1418                $access_granted = 
true;
 
 1420                $access_granted = 
false;
 
 1421                $info_object = $ilAccess->getInfo();
 
 1424            if (!isset($command[
"default"])) {
 
 1425                $command[
"default"] = 
"";
 
 1427            $ref_commands[] = array(
 
 1428                "permission" => $permission,
 
 1430                "link" => $cmd_link,
 
 1431                "frame" => $cmd_frame,
 
 1432                "lang_var" => $lang_var,
 
 1434                "granted" => $access_granted,
 
 1435                "access_info" => $info_object,
 
 1436                "img" => $cmd_image,
 
 1437                "default" => $command[
"default"]
 
 1441        return $ref_commands;
 
 1454        if ($this->type == 
"sahs" && $this->offline_mode) {
 
 1455            return $this->type . 
"_offline";
 
 1470        if ($this->restrict_to_goto) {
 
 1471            $this->default_command = array(
"frame" => 
"",
 
 1476                !$this->default_command ||
 
 1478                $this->title_link_disabled
 
 1481            $this->tpl->setCurrentBlock(
"item_title");
 
 1482            $this->tpl->setVariable(
"TXT_TITLE", $this->
getTitle());
 
 1483            $this->tpl->parseCurrentBlock();
 
 1485            $this->default_command[
'link'] = $this->
modifyTitleLink($this->default_command[
'link']);
 
 1487            $this->default_command[
"link"] =
 
 1488                $this->
modifySAHSlaunch($this->default_command[
"link"], $this->default_command[
"frame"]);
 
 1490            if ($this->default_command[
"frame"] != 
"") {
 
 1491                $this->tpl->setCurrentBlock(
"title_linked_frame");
 
 1492                $this->tpl->setVariable(
"TARGET_TITLE_LINKED", $this->default_command[
"frame"]);
 
 1493                $this->tpl->parseCurrentBlock();
 
 1497            #var_dump("<pre>",$this->default_command['link'],"</pre>");
 
 1498            $this->default_command[
"link"] =
 
 1501            #var_dump("<pre>",$this->default_command['link'],"</pre>");
 
 1505            $this->tpl->setCurrentBlock(
"item_title_linked");
 
 1506            $this->tpl->setVariable(
"TXT_TITLE_LINKED", $this->
getTitle());
 
 1507            $this->tpl->setVariable(
"HREF_TITLE_LINKED", $this->default_command[
"link"]);
 
 1510            include_once(
"./Services/Preview/classes/class.ilPreview.php");
 
 1512                include_once(
"./Services/Preview/classes/class.ilPreviewGUI.php");
 
 1515                $access_handler = 
null;
 
 1516                switch ($this->context) {
 
 1520                        include_once(
"./Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php");
 
 1527                        $access_handler = $ilAccess;
 
 1533                $preview_status_class = 
"";
 
 1534                $preview_text_topic = 
"preview_show";
 
 1536                    $preview_status_class = 
"ilPreviewStatusNone";
 
 1537                    $preview_text_topic = 
"preview_none";
 
 1539                $this->tpl->setCurrentBlock(
"item_title_linked");
 
 1540                $this->tpl->setVariable(
"PREVIEW_STATUS_CLASS", $preview_status_class);
 
 1541                $this->tpl->setVariable(
"SRC_PREVIEW_ICON", 
ilUtil::getImagePath(
"preview.png", 
"Services/Preview"));
 
 1542                $this->tpl->setVariable(
"ALT_PREVIEW_ICON", $this->lng->txt($preview_text_topic));
 
 1543                $this->tpl->setVariable(
"TXT_PREVIEW", $this->lng->txt($preview_text_topic));
 
 1544                $this->tpl->setVariable(
"SCRIPT_PREVIEW_CLICK", 
$preview->getJSCall($this->getUniqueItemId(
true)));
 
 1545                $this->tpl->parseCurrentBlock();
 
 1548            $this->tpl->parseCurrentBlock();
 
 1551        if ($this->bold_title == 
true) {
 
 1552            $this->tpl->touchBlock(
'bold_title_start');
 
 1553            $this->tpl->touchBlock(
'bold_title_end');
 
 1559        switch ($this->context) {
 
 1561                include_once 
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
 
 1578        $fields_shown = 
false;
 
 1579        foreach ($this->substitutions->getParsedSubstitutions($this->ref_id, $this->obj_id) as 
$data) {
 
 1580            if (
$data[
'bold']) {
 
 1581                $data[
'name'] = 
'<strong>' . 
$data[
'name'] . 
'</strong>';
 
 1582                $data[
'value'] = 
'<strong>' . 
$data[
'value'] . 
'</strong>';
 
 1584            $this->tpl->touchBlock(
"std_prop");
 
 1585            $this->tpl->setCurrentBlock(
'item_property');
 
 1586            if (
$data[
'show_field']) {
 
 1587                $this->tpl->setVariable(
'TXT_PROP', 
$data[
'name']);
 
 1589            $this->tpl->setVariable(
'VAL_PROP', 
$data[
'value']);
 
 1590            $this->tpl->parseCurrentBlock();
 
 1592            if (
$data[
'newline']) {
 
 1593                $this->tpl->touchBlock(
'newline_prop');
 
 1595            $fields_shown = 
false;
 
 1597        if ($fields_shown) {
 
 1598            $this->tpl->touchBlock(
'newline_prop');
 
 1614            if (!$this->substitutions->isDescriptionEnabled()) {
 
 1621        $d = strip_tags(
$d, 
"<b>");
 
 1622        $this->tpl->setCurrentBlock(
"item_description");
 
 1623        $this->tpl->setVariable(
"TXT_DESC", 
$d);
 
 1624        $this->tpl->parseCurrentBlock();
 
 1634            $this->tpl->setCurrentBlock(
'search_fragment');
 
 1635            $this->tpl->setVariable(
'TXT_SEARCH_FRAGMENT', $this->
getSearchFragment() . 
' ...');
 
 1636            $this->tpl->parseCurrentBlock();
 
 1651        include_once 
"Services/UIComponent/ProgressBar/classes/class.ilProgressBar.php";
 
 1655        $this->tpl->setCurrentBlock(
'relevance');
 
 1656        $this->tpl->setVariable(
'REL_PBAR', $pbar->render());
 
 1657        $this->tpl->parseCurrentBlock();
 
 1667        $this->mode = $a_mode;
 
 1685        $this->condition_depth = $a_depth;
 
 1697        if ($a_mode == $this->mode) {
 
 1717        if ($this->context != self::CONTEXT_WORKSPACE && $this->context != self::CONTEXT_WORKSPACE_SHARING) {
 
 1719            include_once 
"Services/Tracking/classes/class.ilLPStatus.php";
 
 1722                $props[] = array(
"alert" => 
false,
 
 1723                    "property" => 
$lng->txt(
"learning_progress"),
 
 1730            if (
$ilUser->getId() == ANONYMOUS_USER_ID) {
 
 1731                if (!$ilAccess->checkAccess(
"read", 
"", $this->ref_id, $this->type, $this->obj_id)) {
 
 1732                    $props[] = array(
"alert" => 
true,
 
 1733                        "value" => 
$lng->txt(
"no_access_item_public"),
 
 1742        if ($this->reference_ref_id) {
 
 1744            $note_obj_id = $this->reference_obj_id;
 
 1746        $redraw_js = 
"il.Object.redrawListItem(" . $note_ref_id . 
");";
 
 1749        require_once 
'Services/Notes/classes/class.ilNote.php';
 
 1752                self::$cnt_tags[$note_obj_id] > 0 ||
 
 1754            (
$ilUser->getId() != ANONYMOUS_USER_ID)) {
 
 1755            include_once(
"./Services/Notes/classes/class.ilNoteGUI.php");
 
 1756            include_once(
"./Services/Tagging/classes/class.ilTaggingGUI.php");
 
 1761                $props[] = array(
"alert" => 
false,
 
 1762                    "property" => 
$lng->txt(
"notes_comments"),
 
 1763                    "value" => 
"<a href='#' onclick=\"return " .
 
 1770            if ($this->notes_enabled && self::$cnt_notes[$note_obj_id][
IL_NOTE_PRIVATE] > 0) {
 
 1771                $props[] = array(
"alert" => 
false,
 
 1772                    "property" => 
$lng->txt(
"notes"),
 
 1773                    "value" => 
"<a href='#' onclick=\"return " .
 
 1779            if ($this->tags_enabled &&
 
 1780                (self::$cnt_tags[$note_obj_id] > 0 ||
 
 1783                if ($tags_set->get(
"enable")) {
 
 1788                        $tags_tmp = array();
 
 1790                            if ($is_tag_owner) {
 
 1791                                $tags_tmp[] = 
"<a class=\"ilTag ilTagRelHigh\" href='#' onclick=\"return " .
 
 1792                                    $tags_url . 
"\">" . 
$tag . 
"</a>";
 
 1794                                $tags_tmp[] = 
"<span class=\"ilTag ilTagRelMiddle\">" . 
$tag . 
"</span>";
 
 1797                        $tags_value = implode(
" ", $tags_tmp);
 
 1802                        $tags_value = 
"<a href='#' onclick=\"return " . $tags_url . 
"\">" .
 
 1803                            self::$cnt_tags[$note_obj_id] . 
"</a>";
 
 1804                        $prop_text = 
$lng->txt(
"tagging_tags");
 
 1806                    $props[] = array(
"alert" => 
false,
 
 1807                        "property" => $prop_text,
 
 1808                        "value" => $tags_value,
 
 1814        if (!is_array($props)) {
 
 1829        if (is_array($props) && count($props) > 0) {
 
 1830            foreach ($props as $prop) {
 
 1833                    $this->tpl->touchBlock(
"separator_prop");
 
 1837                if ($prop[
"alert"] == 
true) {
 
 1838                    $this->tpl->touchBlock(
"alert_prop");
 
 1840                    $this->tpl->touchBlock(
"std_prop");
 
 1842                if ($prop[
"newline"] == 
true && $cnt > 1) {
 
 1843                    $this->tpl->touchBlock(
"newline_prop");
 
 1846                if (isset($prop[
"property"]) && $prop[
'propertyNameVisible'] !== 
false && $prop[
"property"] != 
"") {
 
 1848                    $this->tpl->setCurrentBlock(
"prop_name");
 
 1849                    $this->tpl->setVariable(
"TXT_PROP", $prop[
"property"]);
 
 1850                    $this->tpl->parseCurrentBlock();
 
 1852                $this->tpl->setCurrentBlock(
"item_property");
 
 1854                if ($prop[
'link']) {
 
 1855                    $this->tpl->setVariable(
"LINK_PROP", $prop[
'link']);
 
 1856                    $this->tpl->setVariable(
"LINK_VAL_PROP", $prop[
"value"]);
 
 1858                    $this->tpl->setVariable(
"VAL_PROP", $prop[
"value"]);
 
 1861                $this->tpl->parseCurrentBlock();
 
 1865            $this->tpl->setCurrentBlock(
"item_properties");
 
 1866            $this->tpl->parseCurrentBlock();
 
 1873        foreach ($this->notice_prop as $property) {
 
 1874            $this->tpl->setCurrentBlock(
'notice_item');
 
 1875            $this->tpl->setVariable(
'NOTICE_ITEM_VALUE', $property[
'value']);
 
 1876            $this->tpl->parseCurrentBlock();
 
 1878        $this->tpl->setCurrentBlock(
'notice_property');
 
 1879        $this->tpl->parseCurrentBlock();
 
 1889        $num_optional_required =
 
 1893        $visible_conditions = array();
 
 1894        $passed_optional = 0;
 
 1895        foreach ($conditions as $condition) {
 
 1896            if ($obligatory and !$condition[
'obligatory']) {
 
 1899            if (!$obligatory and $condition[
'obligatory']) {
 
 1903            if (
$tree->isDeleted($condition[
'trigger_ref_id'])) {
 
 1907            include_once 
'Services/Container/classes/class.ilMemberViewSettings.php';
 
 1912                $visible_conditions[] = $condition[
'id'];
 
 1915            if (!$obligatory and 
$ok) {
 
 1918                if ($passed_optional >= $num_optional_required) {
 
 1924        foreach ($conditions as $condition) {
 
 1925            if (!in_array($condition[
'id'], $visible_conditions)) {
 
 1929            include_once 
'./Services/Conditions/classes/class.ilConditionHandlerGUI.php';
 
 1933            $class = $objDefinition->getClassName($condition[
"trigger_type"]);
 
 1934            $location = $objDefinition->getLocation($condition[
"trigger_type"]);
 
 1938            $missing_cond_exist = 
true;
 
 1940            $full_class = 
"ilObj" . $class . 
"ListGUI";
 
 1941            include_once(
$location . 
"/class." . $full_class . 
".php");
 
 1942            $item_list_gui = 
new $full_class($this);
 
 1944            $item_list_gui->enablePath(
false);
 
 1945            $item_list_gui->enableIcon(
true);
 
 1946            $item_list_gui->setConditionDepth($this->condition_depth + 1);
 
 1948            $item_list_gui->addCustomProperty($this->lng->txt(
"precondition_required_itemlist"), $cond_txt, 
false, 
true);
 
 1950            $item_list_gui->enableCommands($this->commands_enabled, $this->std_cmd_only);
 
 1951            $item_list_gui->enableProperties($this->properties_enabled);
 
 1953            $trigger_html = $item_list_gui->getListItemHTML(
 
 1954                $condition[
'trigger_ref_id'],
 
 1955                $condition[
'trigger_obj_id'],
 
 1959            $this->tpl->setCurrentBlock(
"precondition");
 
 1960            if ($trigger_html == 
"") {
 
 1961                $trigger_html = $this->lng->txt(
"precondition_not_accessible");
 
 1963            $this->tpl->setVariable(
"TXT_CONDITION", trim($cond_txt));
 
 1964            $this->tpl->setVariable(
"TRIGGER_ITEM", $trigger_html);
 
 1965            $this->tpl->parseCurrentBlock();
 
 1968        if ($missing_cond_exist and $obligatory) {
 
 1969            $this->tpl->setCurrentBlock(
"preconditions");
 
 1970            $this->tpl->setVariable(
"CONDITION_TOGGLE_ID", 
"_obl_" . $toggle_id);
 
 1971            $this->tpl->setVariable(
"TXT_PRECONDITIONS", 
$lng->txt(
"preconditions_obligatory_hint"));
 
 1972            $this->tpl->parseCurrentBlock();
 
 1973        } elseif ($missing_cond_exist and !$obligatory) {
 
 1974            $this->tpl->setCurrentBlock(
"preconditions");
 
 1975            $this->tpl->setVariable(
"CONDITION_TOGGLE_ID", 
"_opt_" . $toggle_id);
 
 1976            $this->tpl->setVariable(
"TXT_PRECONDITIONS", sprintf(
$lng->txt(
"preconditions_optional_hint"), $num_optional_required));
 
 1977            $this->tpl->parseCurrentBlock();
 
 1980        return !$missing_cond_exist;
 
 1988        include_once(
"./Services/Conditions/classes/class.ilConditionHandler.php");
 
 1991        if ($this->condition_depth > 0) {
 
 1995        if ($this->condition_target) {
 
 1996            $conditions = ilConditionHandler::_getEffectiveConditionsOfTarget(
 
 1997                $this->condition_target[
'ref_id'],
 
 1998                $this->condition_target[
'obj_id'],
 
 1999                $this->condition_target[
'target_type']
 
 2002            $conditions = ilConditionHandler::_getEffectiveConditionsOfTarget($this->ref_id, $this->obj_id);
 
 2005        if (
sizeof($conditions)) {
 
 2006            for (
$i = 0; 
$i < count($conditions); 
$i++) {
 
 2014            $all_done_obl = $this->
parseConditions(self::$js_unique_id, $conditions, 
true);
 
 2015            $all_done_opt = $this->
parseConditions(self::$js_unique_id, $conditions, 
false);
 
 2017            if (!$all_done_obl || !$all_done_opt) {
 
 2018                $this->tpl->setCurrentBlock(
"preconditions_toggle");
 
 2019                $this->tpl->setVariable(
"PRECONDITION_TOGGLE_INTRO", $this->lng->txt(
"precondition_toggle"));
 
 2020                $this->tpl->setVariable(
"PRECONDITION_TOGGLE_TRIGGER", $this->lng->txt(
"show"));
 
 2021                $this->tpl->setVariable(
"PRECONDITION_TOGGLE_ID", self::$js_unique_id);
 
 2022                $this->tpl->setVariable(
"TXT_PRECONDITION_SHOW", $this->lng->txt(
"show"));
 
 2023                $this->tpl->setVariable(
"TXT_PRECONDITION_HIDE", $this->lng->txt(
"hide"));
 
 2024                $this->tpl->parseCurrentBlock();
 
 2037    public function insertCommand($a_href, $a_text, $a_frame = 
"", $a_img = 
"", $a_cmd = 
"", $a_onclick = 
"")
 
 2040        $chksum = md5($a_href . $a_text);
 
 2041        if ($a_href == 
"#" ||
 
 2042            !in_array($chksum, $this->prevent_duplicate_commands)) {
 
 2043            if ($a_href != 
"#") {
 
 2044                $this->prevent_duplicate_commands[] = $chksum;
 
 2047            $prevent_background_click = 
false;
 
 2048            if ($a_cmd == 
'mount_webfolder') {
 
 2049                $prevent_background_click = 
true;
 
 2052            if ($a_cmd == 
"downloadFolder") {
 
 2053                include_once 
"Services/BackgroundTask/classes/class.ilFolderDownloadBackgroundTaskHandler.php";
 
 2060            $this->current_selection_list->addItem(
 
 2068                $prevent_background_click,
 
 2083        if ($this->std_cmd_only) {
 
 2093                $this->adm_commands_included = 
true;
 
 2100            $this->ctrl->setParameter(
 
 2101                $this->container_obj,
 
 2103                $this->container_obj->object->getRefId()
 
 2105            $this->ctrl->setParameter($this->container_obj, 
"item_ref_id", $this->
getCommandId());
 
 2106            $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, 
"delete");
 
 2109                $this->lng->txt(
"delete"),
 
 2113            $this->adm_commands_included = 
true;
 
 2128        if ($this->std_cmd_only) {
 
 2134            !$objDefinition->allowLink($this->type)) {
 
 2145            $this->adm_commands_included = 
true;
 
 2152        $this->ctrl->setParameter(
 
 2153            $this->container_obj,
 
 2155            $this->container_obj->object->getRefId()
 
 2157        $this->ctrl->setParameter($this->container_obj, 
"item_ref_id", $this->
getCommandId());
 
 2158        $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, 
"link");
 
 2161            $this->lng->txt(
"link"),
 
 2165        $this->adm_commands_included = 
true;
 
 2177        if ($this->std_cmd_only) {
 
 2187                $this->adm_commands_included = 
true;
 
 2197            $this->container_obj->object) {
 
 2198            $this->ctrl->setParameter(
 
 2199                $this->container_obj,
 
 2201                $this->container_obj->object->getRefId()
 
 2203            $this->ctrl->setParameter($this->container_obj, 
"item_ref_id", $this->
getCommandId());
 
 2205            if (!$a_to_repository) {
 
 2206                $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, 
"cut");
 
 2209                    $this->lng->txt(
"move"),
 
 2214                $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, 
"cut_for_repository");
 
 2217                    $this->lng->txt(
"wsp_move_to_repository"),
 
 2223            $this->adm_commands_included = 
true;
 
 2236        if ($this->std_cmd_only) {
 
 2241            $objDefinition->allowCopy($this->type)) {
 
 2242            if ($this->context != self::CONTEXT_WORKSPACE && $this->context != self::CONTEXT_WORKSPACE_SHARING) {
 
 2243                $this->ctrl->setParameterByClass(
'ilobjectcopygui', 
'source_id', $this->
getCommandId());
 
 2244                $cmd_copy = $this->ctrl->getLinkTargetByClass(
'ilobjectcopygui', 
'initTargetSelection');
 
 2247                $this->ctrl->setParameter(
 
 2248                    $this->container_obj,
 
 2250                    $this->container_obj->object->getRefId()
 
 2252                $this->ctrl->setParameter($this->container_obj, 
"item_ref_id", $this->
getCommandId());
 
 2254                if (!$a_to_repository) {
 
 2255                    $cmd_copy = $this->ctrl->getLinkTarget($this->container_obj, 
'copy');
 
 2258                    $cmd_copy = $this->ctrl->getLinkTarget($this->container_obj, 
'copy_to_repository');
 
 2259                    $this->
insertCommand($cmd_copy, $this->lng->txt(
'wsp_copy_to_repository'));
 
 2263            $this->adm_commands_included = 
true;
 
 2276        if ($this->std_cmd_only) {
 
 2290            $this->adm_commands_included = 
true;
 
 2308        if ($this->std_cmd_only) {
 
 2312        if ((
int) 
$ilSetting->get(
'disable_my_offers')) {
 
 2318        if (
$ilUser->getId() != ANONYMOUS_USER_ID) {
 
 2320            if (is_object($this->container_obj) &&
 
 2322                is_object($this->container_obj->object)) {
 
 2323                $this->ctrl->setParameter($this->container_obj, 
"ref_id", $this->container_obj->object->getRefId());
 
 2326            if (!
$ilUser->isDesktopItem($this->getCommandId(), 
$type)) {
 
 2328                if ($this->
checkCommandAccess(
"read", 
"", $this->ref_id, $this->type, $this->obj_id)) {
 
 2330                        $this->ctrl->setParameter($this->container_obj, 
"type", 
$type);
 
 2331                        $this->ctrl->setParameter($this->container_obj, 
"item_ref_id", $this->
getCommandId());
 
 2332                        $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, 
"addToDesk");
 
 2335                            $this->lng->txt(
"to_desktop"),
 
 2343                    $this->ctrl->setParameter($this->container_obj, 
"type", 
$type);
 
 2344                    $this->ctrl->setParameter($this->container_obj, 
"item_ref_id", $this->
getCommandId());
 
 2345                    $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, 
"removeFromDesk");
 
 2348                        $this->lng->txt(
"unsubscribe"),
 
 2362        if ($this->std_cmd_only) {
 
 2369            $this->lng->txt(
"info_short"),
 
 2386        if ($this->std_cmd_only ||
 
 2387            (
$ilUser->getId() == ANONYMOUS_USER_ID)) {
 
 2390        $lng->loadLanguageModule(
"notes");
 
 2391        $lng->loadLanguageModule(
"tagging");
 
 2393        include_once(
"./Services/Notes/classes/class.ilNoteGUI.php");
 
 2397        if ($this->reference_ref_id) {
 
 2401        $js_updater = $a_header_actions
 
 2402            ? 
"il.Object.redrawActionHeader();" 
 2403            : 
"il.Object.redrawListItem(" . $note_ref_id . 
")";
 
 2409                $this->lng->txt(
"notes_comments"),
 
 2417        if ($this->notes_enabled) {
 
 2420                $this->lng->txt(
"notes"),
 
 2428        if ($this->tags_enabled) {
 
 2429            include_once(
"./Services/Tagging/classes/class.ilTaggingGUI.php");
 
 2433                $this->lng->txt(
"tagging_set_tag"),
 
 2449        if ($this->std_cmd_only || !$this->container_obj->object) {
 
 2454        $parent_type = $this->container_obj->object->getType();
 
 2457        if ($this->reference_ref_id) {
 
 2458            $this->ctrl->setParameterByClass(
'ilobjectactivationgui', 
'ref_id', $this->reference_ref_id);
 
 2463            $this->ctrl->setParameterByClass(
 
 2464                'ilobjectactivationgui',
 
 2468            $this->ctrl->setParameterByClass(
 
 2469                'ilobjectactivationgui',
 
 2473            $cmd_lnk = $this->ctrl->getLinkTargetByClass(
 
 2474                array($this->gui_class_name, 
'ilcommonactiondispatchergui', 
'ilobjectactivationgui'),
 
 2478            $this->
insertCommand($cmd_lnk, $this->lng->txt(
'obj_activation_list_gui'));
 
 2481        if ($this->reference_ref_id) {
 
 2482            $this->ctrl->setParameterByClass(
'ilobjectactivationgui', 
'ref_id', $this->ref_id);
 
 2494        $a_use_asynch = 
false,
 
 2495        $a_get_asynch_commands = 
false,
 
 2497        $a_header_actions = 
false 
 2506        include_once(
"Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
 
 2508        $this->current_selection_list->setAsynch($a_use_asynch && !$a_get_asynch_commands);
 
 2509        $this->current_selection_list->setAsynchUrl($a_asynch_url);
 
 2510        if ($a_header_actions) {
 
 2511            $this->current_selection_list->setListTitle(
"<span class='hidden-xs'>" . 
$lng->txt(
"actions") . 
"</span>");
 
 2513            $this->current_selection_list->setListTitle(
"");
 
 2515        $this->current_selection_list->setId(
"act_" . $this->
getUniqueItemId(
false));
 
 2516        $this->current_selection_list->setSelectionHeaderClass(
"small");
 
 2517        $this->current_selection_list->setItemLinkClass(
"xsmall");
 
 2518        $this->current_selection_list->setLinksMode(
"il_ContainerItemCommand2");
 
 2520        $this->current_selection_list->setUseImages(
false);
 
 2521        $this->current_selection_list->setAdditionalToggleElement($this->
getUniqueItemId(
true), 
"ilContainerListItemOuterHighlight");
 
 2523        $this->ctrl->setParameterByClass($this->gui_class_name, 
"ref_id", $this->ref_id);
 
 2526        $only_default = 
false;
 
 2527        if ($a_use_asynch && !$a_get_asynch_commands) {
 
 2528            $only_default = 
true;
 
 2531        $this->default_command = 
false;
 
 2532        $this->prevent_duplicate_commands = array();
 
 2535        $valid_header_commands = array(
"mount_webfolder");
 
 2537        $commands = $this->
getCommands($this->ref_id, $this->obj_id);
 
 2538        foreach ($commands as $command) {
 
 2539            if ($a_header_actions && !in_array($command[
"cmd"], $valid_header_commands)) {
 
 2543            if ($command[
"granted"] == 
true) {
 
 2544                if (!$command[
"default"] === 
true) {
 
 2545                    if (!$this->std_cmd_only && !$only_default) {
 
 2550                        $cmd_link = $command[
"link"];
 
 2551                        $txt = ($command[
"lang_var"] == 
"")
 
 2553                            : $this->lng->txt($command[
"lang_var"]);
 
 2569        if (!$only_default) {
 
 2571            if (is_array($this->cust_commands)) {
 
 2572                foreach ($this->cust_commands as $command) {
 
 2575                        $this->lng->txt($command[
"lang_var"]),
 
 2591                if ($this->timings_enabled) {
 
 2596                if ($this->delete_enabled) {
 
 2601                if ($this->link_enabled) {
 
 2606                if ($this->cut_enabled) {
 
 2611                if ($this->copy_enabled) {
 
 2616                if ($this->repository_transfer_enabled) {
 
 2622                if ($this->subscribe_enabled) {
 
 2627                if ($this->multi_download_enabled && $a_header_actions) {
 
 2632                if ($this->cut_enabled or $this->link_enabled) {
 
 2644        if (!$a_header_actions) {
 
 2645            $this->ctrl->clearParametersByClass($this->gui_class_name);
 
 2652        if ($a_use_asynch && !$a_get_asynch_commands && !$a_header_actions) {
 
 2653            if (
$ilUser->getId() == ANONYMOUS_USER_ID && $this->checkInfoPageOnAsynchronousRendering()) {
 
 2654                include_once(
"./Services/Container/classes/class.ilContainer.php");
 
 2655                include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
 
 2666        if ($a_use_asynch && $a_get_asynch_commands) {
 
 2667            return $this->current_selection_list->getHTML(
true);
 
 2670        return $this->current_selection_list->getHTML();
 
 2687        $this->comments_enabled = (bool) $a_value;
 
 2688        $this->comments_settings_enabled = (bool) $a_enable_comments_settings;
 
 2705        $this->notes_enabled = (bool) $a_value;
 
 2716        if (!$tags_set->get(
"enable")) {
 
 2719        $this->tags_enabled = (bool) $a_value;
 
 2730    public function enableRating($a_value, $a_text = 
null, $a_categories = 
false, array $a_ctrl_path = 
null)
 
 2732        $this->rating_enabled = (bool) $a_value;
 
 2734        if ($this->rating_enabled) {
 
 2735            $this->rating_categories_enabled = (bool) $a_categories;
 
 2736            $this->rating_text = $a_text;
 
 2737            $this->rating_ctrl_path = $a_ctrl_path;
 
 2749        if (!$folder_set->get(
"enable_multi_download")) {
 
 2752        $this->multi_download_enabled = (bool) $a_value;
 
 2759        if ($this->std_cmd_only) {
 
 2775            $user_id = $this->
user->getId();
 
 2776            $hasAdminAccess = $this->access->checkAccessOfUser($user_id, 
"crs_admin", $this->ctrl->getCmd(), 
$_GET[
'ref_id']);
 
 2779            if ($hasAdminAccess) {
 
 2780                $cmd = 
$_GET[
"cmd"] == 
"enableAdministrationPanel" ? 
"render" : 
"enableAdministrationPanel";
 
 2782                $cmd = 
$_GET[
"cmd"] == 
"enableMultiDownload" ? 
"render" : 
"enableMultiDownload";
 
 2785            $this->
insertCommand($cmd_link, $this->lng->txt(
"download_multiple_objects"));
 
 2798            if (in_array($this->type, array(
"file", 
"fold")) &&
 
 2799                $ilAccess->checkAccess(
"read", 
"", $a_ref_id, $this->type)) {
 
 2817    public static function prepareJsLinks($a_redraw_url, $a_notes_url, $a_tags_url, $a_tpl = 
null)
 
 2823        if (is_null($a_tpl)) {
 
 2828            include_once(
"./Services/Notes/classes/class.ilNoteGUI.php");
 
 2833            include_once(
"./Services/Tagging/classes/class.ilTaggingGUI.php");
 
 2837        if ($a_redraw_url) {
 
 2838            $a_tpl->addOnLoadCode(
"il.Object.setRedrawAHUrl('" .
 
 2839                        $a_redraw_url . 
"');");
 
 2851        $this->sub_obj_type = 
$a_type;
 
 2852        $this->sub_obj_id = (int) $a_id;
 
 2864    public function addHeaderIcon($a_id, $a_img, $a_tooltip = 
null, $a_onclick = 
null, $a_status_text = 
null, $a_href = 
null)
 
 2866        $this->header_icons[$a_id] = array(
"img" => $a_img,
 
 2867                "tooltip" => $a_tooltip,
 
 2868                "onclick" => $a_onclick,
 
 2869                "status_text" => $a_status_text,
 
 2880        $this->header_icons[$a_id] = $a_html;
 
 2890        $this->header_icons[$a_id] = array(
"glyph" => $a_glyph, 
"onclick" => $a_onclick);
 
 2895        $this->ajax_hash = $a_hash;
 
 2910        if ($a_main_tpl == 
null) {
 
 2911            $main_tpl = 
$DIC[
"tpl"];
 
 2913            $main_tpl = $a_main_tpl;
 
 2916        $htpl = 
new ilTemplate(
"tpl.header_action.html", 
true, 
true, 
"Services/Repository");
 
 2918        $redraw_js = 
"il.Object.redrawActionHeader();";
 
 2921        if ($this->tags_enabled) {
 
 2922            include_once(
"./Services/Tagging/classes/class.ilTagging.php");
 
 2930            if (count(
$tags) > 0) {
 
 2931                include_once(
"./Services/Tagging/classes/class.ilTaggingGUI.php");
 
 2932                $lng->loadLanguageModule(
"tagging");
 
 2939                $f = $this->ui->factory();
 
 2942                    $f->glyph()->tag(
"#")
 
 2943                    ->withCounter(
$f->counter()->status((
int) count(
$tags))),
 
 2952            include_once(
"./Services/Notes/classes/class.ilNote.php");
 
 2953            include_once(
"./Services/Notes/classes/class.ilNoteGUI.php");
 
 2954            $type = ($this->sub_obj_type == 
"")
 
 2956                : $this->sub_obj_type;
 
 2959            if ($this->notes_enabled && $cnt[$this->obj_id][
IL_NOTE_PRIVATE] > 0) {
 
 2967                $f = $this->ui->factory();
 
 2970                    $f->glyph()->note(
"#")
 
 2971                    ->withCounter(
$f->counter()->status((
int) $cnt[$this->obj_id][
IL_NOTE_PRIVATE])),
 
 2977                $lng->loadLanguageModule(
"notes");
 
 2985                $f = $this->ui->factory();
 
 2988                    $f->glyph()->comment(
"#")
 
 2989                    ->withCounter(
$f->counter()->status((
int) $cnt[$this->obj_id][
IL_NOTE_PUBLIC])),
 
 2996        if ($this->rating_enabled) {
 
 2997            include_once(
"./Services/Rating/classes/class.ilRatingGUI.php");
 
 2999            $rating_gui->enableCategories($this->rating_categories_enabled);
 
 3001            $rating_gui->setObject($this->obj_id, $this->type);
 
 3002            if ($this->rating_text) {
 
 3003                $rating_gui->setYourRatingText($this->rating_text);
 
 3006            $this->ctrl->setParameterByClass(
"ilRatingGUI", 
"cadh", $this->ajax_hash);
 
 3007            $this->ctrl->setParameterByClass(
"ilRatingGUI", 
"rnsb", 
true);
 
 3008            if ($this->rating_ctrl_path) {
 
 3009                $rating_gui->setCtrlPath($this->rating_ctrl_path);
 
 3010                $ajax_url = $this->ctrl->getLinkTargetByClass($this->rating_ctrl_path, 
"saveRating", 
"", 
true, 
false);
 
 3013                $ajax_url = $this->ctrl->getLinkTargetByClass(
"ilRatingGUI", 
"saveRating", 
"", 
true, 
false);
 
 3015            $main_tpl->addOnLoadCode(
"il.Object.setRatingUrl('" . $ajax_url . 
"');");
 
 3018                $rating_gui->getHtml(
 
 3020                    $this->checkCommandAccess(
"read", 
"", $this->ref_id, $this->type),
 
 3021                    "il.Object.saveRating(%rating%);" 
 3026        if ($this->header_icons) {
 
 3027            include_once(
"./Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php");
 
 3030            foreach ($this->header_icons as 
$id => $attr) {
 
 3033                if (is_array($attr)) {
 
 3034                    if ($attr[
"glyph"]) {
 
 3035                        if ($attr[
"onclick"]) {
 
 3036                            $htpl->setCurrentBlock(
"prop_glyph_oc");
 
 3037                            $htpl->setVariable(
"GLYPH_ONCLICK", $attr[
"onclick"]);
 
 3038                            $htpl->parseCurrentBlock();
 
 3040                        $renderer = $this->ui->renderer();
 
 3041                        $html = $renderer->render($attr[
"glyph"]);
 
 3042                        $htpl->setCurrentBlock(
"prop_glyph");
 
 3043                        $htpl->setVariable(
"GLYPH", 
$html);
 
 3044                        $htpl->parseCurrentBlock();
 
 3046                        if ($attr[
"onclick"]) {
 
 3047                            $htpl->setCurrentBlock(
"onclick");
 
 3048                            $htpl->setVariable(
"PROP_ONCLICK", $attr[
"onclick"]);
 
 3049                            $htpl->parseCurrentBlock();
 
 3052                        if ($attr[
"status_text"]) {
 
 3053                            $htpl->setCurrentBlock(
"status");
 
 3054                            $htpl->setVariable(
"PROP_TXT", $attr[
"status_text"]);
 
 3055                            $htpl->parseCurrentBlock();
 
 3059                        $htpl->setCurrentBlock(
"prop");
 
 3060                        if ($attr[
"href"] || $attr[
"onclick"]) {
 
 3061                            $htpl->setVariable(
"TAG", 
"a");
 
 3063                            $htpl->setVariable(
"TAG", 
"span");
 
 3065                        $htpl->setVariable(
"PROP_ID", 
$id);
 
 3066                        $htpl->setVariable(
"IMG", 
ilUtil::img($attr[
"img"], $attr[
"tooltip"]));
 
 3067                        if ($attr[
"href"] != 
"") {
 
 3068                            $htpl->setVariable(
"PROP_HREF", 
' href="' . $attr[
"href"] . 
'" ');
 
 3070                        $htpl->parseCurrentBlock();
 
 3072                        if ($attr[
"tooltip"]) {
 
 3081            if (
sizeof($chunks)) {
 
 3084                    implode(
"   ", $chunks) . 
"   " 
 3094        return $htpl->get();
 
 3105        if ((strtolower(
$_GET[
"baseClass"]) != 
"ilrepositorygui") &&
 
 3106            is_int(strpos($a_link, 
"baseClass=ilRepositoryGUI"))) {
 
 3107            if ($this->type != 
"frm") {
 
 3118        if ($this->default_command_params) {
 
 3120            foreach ($this->default_command_params as 
$name => $value) {
 
 3127            if (!stristr($a_default_link, 
'?')) {
 
 3128                $a_default_link = ($a_default_link . 
'?' . 
$params);
 
 3130                $a_default_link = ($a_default_link . 
'&' . 
$params);
 
 3133        return $a_default_link;
 
 3143        if (strstr($a_link, 
'ilSAHSPresentationGUI') && !$this->offline_mode) {
 
 3144            include_once 
'Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php';
 
 3146            $om = $sahs_obj->getOpenMode();
 
 3147            $width = $sahs_obj->getWidth();
 
 3148            $height = $sahs_obj->getHeight();
 
 3149            if (($om == 5 || $om == 1) && $width > 0 && $height > 0) {
 
 3152            if ($om != 0 && !
$DIC[
'ilBrowser']->isMobile()) {
 
 3153                $this->default_command[
"frame"] = 
"";
 
 3154                $a_link = 
"javascript:void(0); onclick=startSAHS('" . $a_link . 
"','" . $wtarget . 
"'," . $om . 
"," . $width . 
"," . $height . 
");";
 
 3168            if (!$this->path_gui instanceof \
ilPathGUI) {
 
 3174            $path_gui->enableTextOnly(!$this->path_linked);
 
 3177            $start_node = $this->path_start_node
 
 3178                ? $this->path_start_node
 
 3181            $this->tpl->setCurrentBlock(
"path_item");
 
 3182            $this->tpl->setVariable(
'PATH_ITEM', 
$path_gui->getPath($start_node, $this->ref_id));
 
 3183            $this->tpl->parseCurrentBlock();
 
 3185            $this->tpl->setCurrentBlock(
"path");
 
 3186            $this->tpl->setVariable(
"TXT_LOCATION", 
$lng->txt(
"locator"));
 
 3187            $this->tpl->parseCurrentBlock();
 
 3214            $this->tpl->setCurrentBlock(
"check");
 
 3215            $this->tpl->setVariable(
"VAL_ID", $this->
getCommandId());
 
 3216            $this->tpl->parseCurrentBlock();
 
 3219            $this->tpl->setCurrentBlock(
"check_download");
 
 3221                $this->tpl->setVariable(
"VAL_ID", $this->
getCommandId());
 
 3223                $this->tpl->setVariable(
"VAL_VISIBILITY", 
"visibility: hidden;\" disabled=\"disabled");
 
 3225            $this->tpl->parseCurrentBlock();
 
 3228            $this->tpl->setCurrentBlock(
'expand');
 
 3231                $this->ctrl->setParameter($this->container_obj, 
'expand', -1 * $this->obj_id);
 
 3233                $this->tpl->setVariable(
'EXP_HREF', $this->ctrl->getLinkTarget($this->container_obj, 
'view', $this->getUniqueItemId(
true)));
 
 3234                $this->ctrl->clearParameters($this->container_obj);
 
 3236                $this->tpl->setVariable(
'EXP_ALT', $this->lng->txt(
'collapse'));
 
 3238                $this->ctrl->setParameter($this->container_obj, 
'expand', $this->obj_id);
 
 3240                $this->tpl->setVariable(
'EXP_HREF', $this->ctrl->getLinkTarget($this->container_obj, 
'view', $this->getUniqueItemId(
true)));
 
 3241                $this->ctrl->clearParameters($this->container_obj);
 
 3243                $this->tpl->setVariable(
'EXP_ALT', $this->lng->txt(
'expand'));
 
 3246            $this->tpl->parseCurrentBlock();
 
 3252                $this->tpl->touchBlock(
"i_1");  
 
 3256            if ($this->title_link_disabled || !$this->default_command || (!$this->
getCommandsStatus() && !$this->restrict_to_goto)) {
 
 3274            $this->tpl->setCurrentBlock(
"icon");
 
 3275            if (!$objDefinition->isPlugin($this->getIconImageType())) {
 
 3276                $this->tpl->setVariable(
"ALT_ICON", 
$lng->txt(
"obj_" . $this->getIconImageType()));
 
 3278                include_once(
"Services/Component/classes/class.ilPlugin.php");
 
 3279                $this->tpl->setVariable(
"ALT_ICON",
 
 3283            $this->tpl->setVariable(
 
 3287            $this->tpl->parseCurrentBlock();
 
 3291        $this->tpl->touchBlock(
"d_" . $cnt);    
 
 3300        return ilObject::_getIcon(
 
 3312        foreach ($this->sub_item_html as $sub_html) {
 
 3313            $this->tpl->setCurrentBlock(
"subitem");
 
 3314            $this->tpl->setVariable(
"SUBITEM", $sub_html);
 
 3315            $this->tpl->parseCurrentBlock();
 
 3324        if ($this->position_enabled) {
 
 3325            $this->tpl->setCurrentBlock(
"position");
 
 3326            $this->tpl->setVariable(
"POS_ID", $this->position_field_index);
 
 3327            $this->tpl->setVariable(
"POS_VAL", $this->position_value);
 
 3328            $this->tpl->parseCurrentBlock();
 
 3338        return $this->adm_commands_included;
 
 3347        if ($this->acache->getLastAccessStatus() == 
"miss" &&
 
 3348            !$this->prevent_access_caching) {
 
 3349            $this->acache->storeEntry(
 
 3350                $ilUser->getId() . 
":" . $this->ref_id,
 
 3351                serialize($this->access_cache),
 
 3376        $a_use_asynch = 
false,
 
 3377        $a_get_asynch_commands = 
false,
 
 3384        $this->adm_commands_included = 
false;
 
 3390        $this->
initItem($a_ref_id, $a_obj_id, $a_title, $a_description);
 
 3393        include_once 
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php";
 
 3394        if ($this->context == self::CONTEXT_REPOSITORY) {
 
 3401        if ($a_use_asynch && $a_get_asynch_commands) {
 
 3405        if ($this->rating_enabled) {
 
 3410                $rating->setObject($this->obj_id, $this->type);
 
 3419                    $rating->getListGUIProperty($this->ref_id, $may_rate, $this->ajax_hash, $this->parent_ref_id),
 
 3427        include_once(
"Services/Object/classes/class.ilListItemAccessCache.php");
 
 3429        $cres = $this->acache->getEntry(
$ilUser->getId() . 
":" . $a_ref_id);
 
 3430        if ($this->acache->getLastAccessStatus() == 
"hit") {
 
 3431            $this->access_cache = unserialize($cres);
 
 3452            static::$tpl_file_name,
 
 3455            static::$tpl_component,
 
 3463                $this->tpl->setVariable(
 
 3464                    "COMMAND_SELECTION_LIST",
 
 3465                    $this->
insertCommands($a_use_asynch, $a_get_asynch_commands, $a_asynch_url)
 
 3527        $this->tpl->setVariable(
"DIV_CLASS", 
'ilContainerListItemOuter');
 
 3536        return $this->tpl->get();
 
 3545        $this->cust_prop = array();
 
 3546        $this->cust_commands = array();
 
 3547        $this->sub_item_html = array();
 
 3548        $this->position_enabled = 
false;
 
 3558        $this->parent_ref_id = $a_ref_id;
 
 3570        $id_ref = ($this->reference_ref_id > 0)
 
 3571            ? $this->reference_ref_id
 
 3575        if ($this->condition_depth) {
 
 3586            return "lg_div_" . $id_ref;
 
 3613        $this->bold_title = $a_bold_title;
 
 3640        if ($a_context == self::CONTEXT_REPOSITORY) {
 
 3641            $active_notes = !
$ilSetting->get(
"disable_notes");
 
 3642            $active_comments = !
$ilSetting->get(
"disable_comments");
 
 3644            if ($active_notes || $active_comments) {
 
 3645                include_once(
"./Services/Notes/classes/class.ilNote.php");
 
 3648            if ($active_comments) {
 
 3654            if (
$ilSetting->get(
'comments_tagging_in_lists')) {
 
 3655                if ($active_notes || $active_comments) {
 
 3658                    $lng->loadLanguageModule(
"notes");
 
 3662                if ($tags_set->get(
"enable")) {
 
 3663                    $all_users = $tags_set->get(
"enable_all_users");
 
 3665                    include_once(
"./Services/Tagging/classes/class.ilTagging.php");
 
 3666                    if (!
$ilSetting->get(
'comments_tagging_in_lists_tags')) {
 
 3669                        $tag_user_id = 
null;
 
 3671                            $tag_user_id = 
$ilUser->getId();
 
 3676                    $lng->loadLanguageModule(
"tagging");
 
 3680            $lng->loadLanguageModule(
"rating");
 
 3683        self::$preload_done = 
true;
 
 3698        if ($this->comments_enabled) {
 
 3699            if (!$this->comments_settings_enabled) {
 
 3707            if (!$a_header_actions && self::$preload_done) {
 
 3708                if (self::$comments_activation[$a_obj_id][
$a_type]) {
 
 3712                include_once(
"./Services/Notes/classes/class.ilNote.php");
 
 3730        $this->timings_enabled = (bool) $a_status;
 
 3741        include_once(
"./Services/FileUpload/classes/class.ilFileUploadUtil.php");
 
 3750        include_once(
"./Services/FileUpload/classes/class.ilFileUploadGUI.php");
 
 3755        $this->tpl->setCurrentBlock(
"fileupload");
 
 3756        $this->tpl->setVariable(
"FILE_UPLOAD", $upload->getHTML());
 
 3757        $this->tpl->parseCurrentBlock();
 
An exception for terminatinating execution or to throw for unit testing.
User interface class for advanced drop-down selection lists.
static buildAjaxHash( $a_node_type, $a_node_id, $a_obj_type, $a_obj_id, $a_sub_type=null, $a_sub_id=null, $a_news_id=0)
Build ajax hash.
static translateOperator($a_obj_id, $a_operator)
Translate operator.
static _checkCondition($condition, $a_usr_id=0)
checks wether a single condition is fulfilled every trigger object type must implement a static metho...
static getEffectiveOptionalConditionsOfTarget($a_target_ref_id, $a_target_obj_id, $a_obj_type='')
Get optional conditions.
static calculateEffectiveRequiredTriggers($a_target_ref_id, $a_target_obj_id, $a_target_obj_type='')
calculate number of obligatory items
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
static _isActive()
Static getter.
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 isActive()
Is folder background download active?
static getObjectListAction($a_ref_id)
Get object list action.
static _getInstance()
Get singleton instance of this class.
static getListGUIStatus($a_obj_id, $a_image_only=true)
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.
static getListCommentsJSCall($a_hash, $a_update_code=null)
Get list comments js call.
static initJavascript($a_ajax_url, $a_type=IL_NOTE_PRIVATE, ilTemplate $a_main_tpl=null)
Init javascript.
static getListNotesJSCall($a_hash, $a_update_code=null)
Get list notes js call.
static commentsActivated($a_rep_obj_id, $a_obj_id, $a_obj_type, $a_news_id=0)
Are comments activated for object?
static _countNotesAndComments( $a_rep_obj_id, $a_sub_obj_id=null, $a_obj_type="", $a_news_id=0)
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.
static _getCommands()
get commands
getProperties()
Get item properties.
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)
setSearchFragment($a_text)
set search fragment
setMode($a_mode)
set output mode
determineProperties()
Determine properties.
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.
getDefaultCommand()
Get default command.
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)
enablePath($a_path, $a_start_node=null, \ilPathGUI $path_gui=null)
En/disable path.
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
enableSubstitutions($a_status)
Enable substitutions.
isSideBlock()
Returns whether current item is a block in a side column or not.
isVisibleOnlyForced()
Force unreadable.
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)
__construct($a_context=self::CONTEXT_REPOSITORY)
constructor
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
getTypeIcon()
Get object type specific type icon.
enableNotes($a_value)
Toogle notes action status.
insertTimingsCommand()
insert edit timings command
insertInfoScreenCommand()
insert info screen command
enableNoticeProperties($a_status)
En/disable notices.
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.
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)
addHeaderGlyph($a_id, $a_glyph, $a_onclick=null)
insertItemDetailLinks()
insert item detail links
static preloadCommonProperties($a_obj_ids, $a_context)
Preload common properties.
initItem($a_ref_id, $a_obj_id, $a_title="", $a_description="")
inititialize new item (is called by getItemHTML())
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
getHeaderAction(ilTemplate $a_main_tpl=null)
Get header action.
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.
addCustomProperty( $a_property="", $a_value="", $a_alert=false, $a_newline=false)
add custom property
getCustomProperties($a_prop)
get custom properties
insertSubItems()
Insert subitems.
enableComments($a_value, $a_enable_comments_settings=true)
Toogle comments action status.
checkInfoPageOnAsynchronousRendering()
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.
setAdditionalInformation($a_val)
Set additional information.
setItemDetailLinks($a_detail_links, $a_intro_txt='')
set items detail links
getListItemHTML( $a_ref_id, $a_obj_id, $a_title, $a_description, $a_use_asynch=false, $a_get_asynch_commands=false, $a_asynch_url="")
Get all item information (title, commands, description) in HTML.
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.
insertDeleteCommand()
insert cut command
insertCommands( $a_use_asynch=false, $a_get_asynch_commands=false, $a_asynch_url="", $a_header_actions=false)
insert all commands into html code
getExpandStatus()
Is expand/collapse enabled.
insertProperties()
insert properties
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()
static lookupTxtById($plugin_id, $lang_var)
const INFO_TAB_VISIBILITY
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static lookupOfflineStatus($a_obj_id)
Lookup offline status using objectDataCache.
static _lookupType($a_id, $a_reference=false)
lookup object type
Creates a path for a start and endnode.
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)
static initJavascript($a_ajax_url, ilTemplate $a_main_tpl=null)
Init javascript.
static getListTagsJSCall($a_hash, $a_update_code=null)
Get tagging js call.
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=null, $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)
Class ilWebDAVLockBackend.
static getInstance()
Get singleton instance.
Access handler for personal workspace.
static getGotoLink($a_node_id, $a_obj_id, $a_additional=null)
for( $i=6;$i< 13;$i++) for($i=1; $i< 13; $i++) $d
if(!array_key_exists('StateId', $_REQUEST)) $id
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.
if(function_exists( 'posix_getuid') &&posix_getuid()===0) if(!array_key_exists('t', $options)) $tag