/**
  * Looks up the list of tags and renders the list.
  *
  * @return string the prepared html-output
  */
 public function loadData()
 {
     $strReturn = "";
     $arrTags = class_module_tags_tag::getTagsWithAssignments();
     //load the template
     $strTemplateWrapperID = $this->objTemplate->readTemplate("/element_tags/" . $this->arrElementData["char1"], "tags");
     $strTemplateTagID = $this->objTemplate->readTemplate("/element_tags/" . $this->arrElementData["char1"], "tagname");
     $strTemplateTaglinkID = $this->objTemplate->readTemplate("/element_tags/" . $this->arrElementData["char1"], "taglink");
     $strTags = "";
     foreach ($arrTags as $objTag) {
         if ($objTag->rightView()) {
             $arrAssignments = $objTag->getListOfAssignments();
             $strLinks = "";
             //render the links - if possible
             foreach ($arrAssignments as $arrOneAssignment) {
                 $objRecord = class_objectfactory::getInstance()->getObject($arrOneAssignment["tags_systemid"]);
                 if ($objRecord == null) {
                     continue;
                 }
                 if ($objRecord instanceof class_module_pages_page) {
                     $strLink = getLinkPortal($objRecord->getStrName(), "", "_self", $objRecord->getStrBrowsername(), "", "&highlight=" . urlencode($objTag->getStrName()), "", "", $arrOneAssignment["tags_attribute"]);
                     $strLinks .= $this->fillTemplate(array("taglink" => $strLink), $strTemplateTaglinkID);
                 }
                 if (class_module_system_module::getModuleByName("news") != null && $objRecord->getIntModuleNr() == _news_module_id_) {
                     //TODO: fix after news integration, move to search link target interface handler
                     $objNews = new class_module_news_news($objRecord->getSystemid());
                     $strLink = getLinkPortal("newsdetails", "", "_self", $objNews->getStrTitle(), "newsDetail", "&highlight=" . urlencode($objTag->getStrName()), $objRecord->getSystemid(), "", "", $objNews->getStrTitle());
                     $strLinks .= $this->fillTemplate(array("taglink" => $strLink), $strTemplateTaglinkID);
                 }
             }
             $arrTemplate = array();
             $arrTemplate["tagname"] = $objTag->getStrName();
             $arrTemplate["linkcount"] = count($arrAssignments);
             $arrTemplate["taglinks"] = $strLinks;
             $arrTemplate["tagid"] = $objTag->getSystemid();
             $strTags .= $this->fillTemplate($arrTemplate, $strTemplateTagID);
         }
     }
     $strReturn = $this->fillTemplate(array("tags" => $strTags), $strTemplateWrapperID);
     return $strReturn;
 }
 /**
  * Returns a xml-based representation of a single news.
  * Return format:
  *    <news>
  *        <title></title>
  *        <systemid></systemid>
  *        <intro></intro>
  *        <text></text>
  *        <image></image>
  *        <categories></categories>
  *        <startdate></startdate>
  *        <enddate></enddate>
  *        <archivedate></archivedate>
  *    </news>
  *
  * @return string
  * @xml
  */
 protected function actionNewsDetails()
 {
     $strReturn = "";
     $objNews = new class_module_news_news($this->getSystemid());
     $arrCats = class_module_news_category::getNewsMember($objNews->getSystemid());
     array_walk($arrCats, function (class_module_news_category &$objValue) {
         $objValue = $objValue->getSystemid();
     });
     if ($objNews->rightView()) {
         $strReturn .= " <news>\n";
         $strReturn .= "   <title>" . xmlSafeString($objNews->getStrTitle()) . "</title>";
         $strReturn .= "   <systemid>" . $objNews->getSystemid() . "</systemid>";
         $strReturn .= "   <intro>" . xmlSafeString($objNews->getStrIntro()) . "</intro>";
         $strReturn .= "   <text>" . xmlSafeString($objNews->getStrText()) . "</text>";
         $strReturn .= "   <image>" . xmlSafeString($objNews->getStrImage()) . "</image>";
         $strReturn .= "   <categories>" . xmlSafeString(implode(",", $arrCats)) . "</categories>";
         $strReturn .= "   <startdate>" . xmlSafeString($objNews->getObjStartDate() != null ? $objNews->getObjStartDate()->getTimeInOldStyle() : "") . "</startdate>";
         $strReturn .= "   <enddate>" . xmlSafeString($objNews->getObjEndDate() != null ? $objNews->getObjEndDate()->getTimeInOldStyle() : "") . "</enddate>";
         $strReturn .= "   <archivedate>" . xmlSafeString($objNews->getObjDateSpecial() != null ? $objNews->getObjDateSpecial()->getTimeInOldStyle() : "") . "</archivedate>";
         $strReturn .= " </news>\n";
     } else {
         $strReturn = "<error>" . $this->getLang("commons_error_permissions") . "</error>";
     }
     return $strReturn;
 }