public function systemWhoLocked($element_id)
 {
     $ePage = umiHierarchy::getElement($element_id);
     $oPage = $ePage->getObject();
     return $oPage->getValue("lock_user");
 }
 /**
  * @desc
  */
 private function placeComments($parentId, $templateString, umiHierarchy $hierarchy, $commentHType, &$total)
 {
     static $postHType = 0;
     if (!$postHType) {
         $postHType = umiHierarchyTypesCollection::getInstance()->getTypeByName('blogs20', 'post')->getId();
     }
     $parent = $hierarchy->getElement($parentId, true);
     if (!$parent instanceof umiHierarchyElement) {
         throw new publicException("Unknown parent element for comments");
     }
     $rootComments = $parent->getTypeId() == $postHType;
     $sel = new selector('pages');
     $sel->where('hierarchy')->page($parentId)->childs(1);
     $sel->types('hierarchy-type')->id($commentHType);
     $sel->where('is_spam')->notequals(1);
     if ($rootComments) {
         $page = (int) getRequest('p');
         $sel->limit($page * $this->comments_per_page, $this->comments_per_page);
     }
     $result = $sel->result();
     $total = $sel->length();
     $aLines = array();
     foreach ($result as $oComment) {
         $commentId = $oComment->getId();
         $temp = 0;
         $pubTime = $oComment->getValue('publish_time');
         $aLineParam = array();
         $aLineParam['attribute:cid'] = $commentId;
         $aLineParam['name'] = $oComment->getName();
         $aLineParam['content'] = $this->prepareContent($oComment->getValue('content'));
         $aLineParam['author_id'] = $oComment->getValue('author_id');
         $aLineParam['publish_time'] = $pubTime instanceof umiDate ? $pubTime->getFormattedDate('U') : time();
         $aLineParam['subnodes:subcomments'] = $this->placeComments($commentId, $templateString, $hierarchy, $commentHType, $temp);
         $aLines[] = self::parseTemplate($templateString, $aLineParam, $commentId);
     }
     return $aLines;
 }