/**
  * insert properties
  *
  * @access	private
  */
 function insertProperties($a_item = '')
 {
     global $ilAccess, $lng, $ilUser;
     $props = $this->getProperties($a_item);
     $props = $this->getCustomProperties($props);
     if ($this->context != self::CONTEXT_WORKSPACE && $this->context != self::CONTEXT_WORKSPACE_SHARING) {
         // add learning progress custom property
         include_once "Services/Tracking/classes/class.ilLPStatus.php";
         $lp = ilLPStatus::getListGUIStatus($this->obj_id);
         if ($lp) {
             $props[] = array("alert" => false, "property" => $lng->txt("learning_progress"), "value" => $lp, "newline" => true);
         }
         // add no item access note in public section
         // for items that are visible but not readable
         if ($this->ilias->account->getId() == ANONYMOUS_USER_ID) {
             if (!$ilAccess->checkAccess("read", "", $this->ref_id, $this->type, $this->obj_id)) {
                 $props[] = array("alert" => true, "value" => $lng->txt("no_access_item_public"), "newline" => true);
             }
         }
     }
     // reference objects have translated ids, revert to originals
     $note_ref_id = $this->ref_id;
     $note_obj_id = $this->obj_id;
     if ($this->reference_ref_id) {
         $note_ref_id = $this->reference_ref_id;
         $note_obj_id = $this->reference_obj_id;
     }
     $redraw_js = "il.Object.redrawListItem(" . $note_ref_id . ");";
     // add common properties (comments, notes, tags)
     if ((self::$cnt_notes[$note_obj_id][IL_NOTE_PRIVATE] > 0 || self::$cnt_notes[$note_obj_id][IL_NOTE_PUBLIC] > 0 || self::$cnt_tags[$note_obj_id] > 0 || is_array(self::$tags[$note_obj_id])) && $ilUser->getId() != ANONYMOUS_USER_ID) {
         include_once "./Services/Notes/classes/class.ilNoteGUI.php";
         include_once "./Services/Tagging/classes/class.ilTaggingGUI.php";
         $nl = true;
         if ($this->isCommentsActivated($this->type, $this->ref_id, $this->obj_id, false, false) && self::$cnt_notes[$note_obj_id][IL_NOTE_PUBLIC] > 0) {
             $props[] = array("alert" => false, "property" => $lng->txt("notes_comments"), "value" => "<a href='#' onclick=\"return " . ilNoteGUI::getListCommentsJSCall($this->ajax_hash, $redraw_js) . "\">" . self::$cnt_notes[$note_obj_id][IL_NOTE_PUBLIC] . "</a>", "newline" => $nl);
             $nl = false;
         }
         if ($this->notes_enabled && self::$cnt_notes[$note_obj_id][IL_NOTE_PRIVATE] > 0) {
             $props[] = array("alert" => false, "property" => $lng->txt("notes"), "value" => "<a href='#' onclick=\"return " . ilNoteGUI::getListNotesJSCall($this->ajax_hash, $redraw_js) . "\">" . self::$cnt_notes[$note_obj_id][IL_NOTE_PRIVATE] . "</a>", "newline" => $nl);
             $nl = false;
         }
         if ($this->tags_enabled && (self::$cnt_tags[$note_obj_id] > 0 || is_array(self::$tags[$note_obj_id]))) {
             $tags_set = new ilSetting("tags");
             if ($tags_set->get("enable")) {
                 $tags_url = ilTaggingGUI::getListTagsJSCall($this->ajax_hash, $redraw_js);
                 // list object tags
                 if (is_array(self::$tags[$note_obj_id])) {
                     $tags_tmp = array();
                     foreach (self::$tags[$note_obj_id] as $tag => $is_tag_owner) {
                         if ($is_tag_owner) {
                             $tags_tmp[] = "<a class=\"ilTag ilTagRelHigh\" href='#' onclick=\"return " . $tags_url . "\">" . $tag . "</a>";
                         } else {
                             $tags_tmp[] = "<span class=\"ilTag ilTagRelMiddle\">" . $tag . "</span>";
                         }
                     }
                     $tags_value = implode(" ", $tags_tmp);
                     $nl = true;
                     $prop_text = "";
                 } else {
                     $tags_value = "<a href='#' onclick=\"return " . $tags_url . "\">" . self::$cnt_tags[$note_obj_id] . "</a>";
                     $prop_text = $lng->txt("tagging_tags");
                 }
                 $props[] = array("alert" => false, "property" => $prop_text, "value" => $tags_value, "newline" => $nl);
                 $nl = false;
             }
         }
     }
     $cnt = 1;
     if (is_array($props) && count($props) > 0) {
         foreach ($props as $prop) {
             // BEGIN WebDAV: Display a separator between properties.
             if ($cnt > 1) {
                 $this->tpl->touchBlock("separator_prop");
             }
             // END WebDAV: Display a separator between properties.
             if ($prop["alert"] == true) {
                 $this->tpl->touchBlock("alert_prop");
             } else {
                 $this->tpl->touchBlock("std_prop");
             }
             if ($prop["newline"] == true && $cnt > 1) {
                 $this->tpl->touchBlock("newline_prop");
             }
             //BEGIN WebDAV: Support hidden property names.
             if (isset($prop["property"]) && $prop['propertyNameVisible'] !== false && $prop["property"] != "") {
                 $this->tpl->setCurrentBlock("prop_name");
                 $this->tpl->setVariable("TXT_PROP", $prop["property"]);
                 $this->tpl->parseCurrentBlock();
             }
             $this->tpl->setCurrentBlock("item_property");
             //BEGIN WebDAV: Support links in property values.
             if ($prop['link']) {
                 $this->tpl->setVariable("LINK_PROP", $prop['link']);
                 $this->tpl->setVariable("LINK_VAL_PROP", $prop["value"]);
             } else {
                 $this->tpl->setVariable("VAL_PROP", $prop["value"]);
             }
             //END WebDAV: Support links in property values.
             $this->tpl->parseCurrentBlock();
             $cnt++;
         }
         $this->tpl->setCurrentBlock("item_properties");
         $this->tpl->parseCurrentBlock();
     }
 }