コード例 #1
0
 /**
  * @param $strSearchterm
  * @param class_search_result[] $arrResults
  *
  * @return string
  */
 private function createSearchXML($strSearchterm, $arrResults)
 {
     $strReturn = "";
     $strReturn .= "<search>\n" . "    <searchterm>" . xmlSafeString($strSearchterm) . "</searchterm>\n" . "    <nrofresults>" . count($arrResults) . "</nrofresults>\n";
     //And now all results
     $intI = 0;
     $strReturn .= "    <resultset>\n";
     foreach ($arrResults as $objOneResult) {
         $objPage = class_module_pages_page::getPageByName($objOneResult->getStrPagename());
         if ($objPage === null || !$objPage->rightView() || $objPage->getIntRecordStatus() != 1) {
             continue;
         }
         if (++$intI > self::$INT_MAX_NR_OF_RESULTS) {
             break;
         }
         //create a correct link
         if ($objOneResult->getStrPagelink() == "") {
             $objOneResult->setStrPagelink(getLinkPortal($objOneResult->getStrPagename(), "", "_self", $objOneResult->getStrPagename(), "", "&highlight=" . $strSearchterm . "#" . $strSearchterm));
         }
         $strReturn .= "        <item>\n" . "            <pagename>" . $objOneResult->getStrPagename() . "</pagename>\n" . "            <pagelink>" . $objOneResult->getStrPagelink() . "</pagelink>\n" . "            <score>" . $objOneResult->getIntHits() . "</score>\n" . "            <description>" . xmlSafeString(uniStrTrim($objOneResult->getStrDescription(), 200)) . "</description>\n" . "        </item>\n";
     }
     $strReturn .= "    </resultset>\n";
     $strReturn .= "</search>";
     return $strReturn;
 }
コード例 #2
0
 /**
  * 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;
 }
コード例 #3
0
 /**
  * Returns a list of all posts in the current gb
  *
  * @return string
  * @permissions view
  */
 protected function actionList()
 {
     $strReturn = "";
     $arrTemplate = array();
     $arrTemplate["liste_posts"] = "";
     //Load all posts
     $objArraySectionIterator = new class_array_section_iterator(class_module_guestbook_post::getPostsCount($this->arrElementData["guestbook_id"], true));
     $objArraySectionIterator->setIntElementsPerPage($this->arrElementData["guestbook_amount"]);
     $objArraySectionIterator->setPageNumber((int) ($this->getParam("pv") != "" ? $this->getParam("pv") : 1));
     $objArraySectionIterator->setArraySection(class_module_guestbook_post::getPosts($this->arrElementData["guestbook_id"], true, $objArraySectionIterator->calculateStartPos(), $objArraySectionIterator->calculateEndPos()));
     $arrObjPosts = $this->objToolkit->simplePager($objArraySectionIterator, $this->getLang("commons_next"), $this->getLang("commons_back"), "", $this->getPagename());
     //and put posts into a template
     /** @var class_module_guestbook_post $objOnePost */
     foreach ($objArraySectionIterator as $objOnePost) {
         if ($objOnePost->rightView()) {
             $strTemplatePostID = $this->objTemplate->readTemplate("/module_guestbook/" . $this->arrElementData["guestbook_template"], "post");
             $arrTemplatePost = array();
             $arrTemplatePost["post_name"] = "<a href=\"mailto:" . $objOnePost->getStrGuestbookPostEmail() . "\">" . $objOnePost->getStrGuestbookPostName() . "</a>";
             $arrTemplatePost["post_name_plain"] = $objOnePost->getStrGuestbookPostName();
             $arrTemplatePost["post_email"] = $objOnePost->getStrGuestbookPostEmail();
             $arrTemplatePost["post_page"] = "<a href=\"http://" . $objOnePost->getStrGuestbookPostPage() . "\">" . $objOnePost->getStrGuestbookPostPage() . "</a>";
             //replace encoded newlines
             $arrTemplatePost["post_text"] = uniStrReplace("&lt;br /&gt;", "<br />", $objOnePost->getStrGuestbookPostText());
             $arrTemplatePost["post_date"] = timeToString($objOnePost->getIntGuestbookPostDate());
             $arrTemplate["liste_posts"] .= $this->objTemplate->fillTemplate($arrTemplatePost, $strTemplatePostID, false);
         }
     }
     //link to the post-form & pageview links
     $arrTemplate["link_newentry"] = getLinkPortal($this->getParam("page") ? $this->getParam("page") : "", "", "", $this->getLang("eintragen"), "insertGuestbook");
     $arrTemplate["link_forward"] = $arrObjPosts["strForward"];
     $arrTemplate["link_pages"] = $arrObjPosts["strPages"];
     $arrTemplate["link_back"] = $arrObjPosts["strBack"];
     $strTemplateID = $this->objTemplate->readTemplate("/module_guestbook/" . $this->arrElementData["guestbook_template"], "list");
     $strReturn .= $this->fillTemplate($arrTemplate, $strTemplateID);
     return $strReturn . "";
 }
コード例 #4
0
 /**
  * Creates the html-code for one single navigationpoint. The check if the user has the needed rights should have been made before!
  *
  * @param class_module_navigation_point $objPointData
  * @param bool $bitActive
  * @param int $intLevel
  * @param bool $bitFirst
  * @param bool $bitLast
  *
  * @return string
  */
 private function createNavigationPoint(class_module_navigation_point $objPointData, $bitActive, $intLevel, $bitFirst = false, $bitLast = false)
 {
     //and start to create a link and all needed stuff
     $arrTemp = array();
     $arrTemp["page_intern"] = $objPointData->getStrPageI();
     $arrTemp["page_extern"] = $objPointData->getStrPageE();
     $arrTemp["systemid"] = $objPointData->getSystemid();
     $arrTemp["text"] = $objPointData->getStrName();
     $arrTemp["link"] = getLinkPortal($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrTarget(), $arrTemp["text"], $objPointData->getStrLinkAction(), "", $objPointData->getStrLinkSystemid());
     $arrTemp["href"] = getLinkPortalHref($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrLinkAction(), "", $objPointData->getStrLinkSystemid());
     $arrTemp["target"] = $objPointData->getStrTarget();
     if ($objPointData->getStrImage() != "") {
         $arrTemp["image"] = getLinkPortal($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrTarget(), "<img src=\"" . _webpath_ . $objPointData->getStrImage() . "\" border=\"0\" alt=\"" . $arrTemp["text"] . "\"/>", $objPointData->getStrLinkAction(), "", $objPointData->getStrSystemid());
         $arrTemp["image_src"] = $objPointData->getStrImage();
     }
     if ($objPointData->getStrPageI() != "") {
         $objPage = class_module_pages_page::getPageByName($objPointData->getStrPageI());
         if ($objPage != null && $objPage->getIntLmTime() != "") {
             $arrTemp["lastmodified"] = strftime("%Y-%m-%dT%H:%M:%S", $objPage->getIntLmTime());
         }
     }
     //Load the correct template
     $strSection = "level_" . $intLevel . "_" . ($bitActive ? "active" : "inactive") . ($bitFirst ? "_first" : "") . ($bitLast ? "_last" : "");
     $strTemplateId = $this->objTemplate->readTemplate("/module_navigation/" . $this->arrElementData["navigation_template"], $strSection);
     //Fill the template
     $strReturn = $this->objTemplate->fillTemplate($arrTemp, $strTemplateId, false);
     //BUT: if we received an empty string and are in the situation of a first or last point, then maybe the template
     //     didn't supply a first / last section. so we'll try to load a regular point
     if ($strReturn == "" && ($bitFirst || $bitLast)) {
         $strSection = "level_" . $intLevel . "_" . ($bitActive ? "active" : "inactive");
         $strTemplateId = $this->objTemplate->readTemplate("/module_navigation/" . $this->arrElementData["navigation_template"], $strSection);
         //And fill it once more
         $strReturn = $this->objTemplate->fillTemplate($arrTemp, $strTemplateId, false);
     }
     return $strReturn;
 }
コード例 #5
0
 /**
  * Calls the single search-functions, sorts the results an creates the output
  *
  * @return string
  * @permissions view
  */
 protected function actionSearch()
 {
     $strReturn = "";
     //Read the config
     $arrTemplate = array();
     $arrTemplate["hitlist"] = "";
     $strReturn .= $this->actionList();
     $objSearchCommons = new class_module_search_commons();
     $this->objSearchSearch->setBitPortalObjectFilter(true);
     $this->objSearchSearch->setStrPortalLangFilter($this->getStrPortalLanguage());
     /** @var $arrHitsSorted class_search_result[] */
     $arrHitsSorted = $objSearchCommons->doPortalSearch($this->objSearchSearch);
     //Resize Array to wanted size
     $arrHitsFilter = $this->objToolkit->pager($this->arrElementData["search_amount"], $this->getParam("pv") != "" ? (int) $this->getParam("pv") : 1, $this->getLang("commons_next"), $this->getLang("commons_back"), "search", $this->arrElementData["search_page"] != "" ? $this->arrElementData["search_page"] : $this->getPagename(), $arrHitsSorted, "&searchterm=" . urlencode(html_entity_decode($this->objSearchSearch->getStrQuery(), ENT_COMPAT, "UTF-8")));
     $strRowTemplateID = $this->objTemplate->readTemplate("/module_search/" . $this->arrElementData["search_template"], "search_hitlist_hit");
     /** @var $objHit class_search_result */
     foreach ($arrHitsFilter["arrData"] as $objHit) {
         if ($objHit->getStrPagename() == "master") {
             continue;
         }
         $objPage = class_module_pages_page::getPageByName($objHit->getStrPagename());
         if ($objPage === null || !$objPage->rightView() || $objPage->getIntRecordStatus() != 1) {
             continue;
         }
         $arrRow = array();
         if ($objHit->getStrPagelink() == "") {
             $arrRow["page_link"] = getLinkPortal($objHit->getStrPagename(), "", "_self", $objHit->getStrPagename(), "", "&highlight=" . urlencode(html_entity_decode($this->objSearchSearch->getStrQuery(), ENT_QUOTES, "UTF-8")) . "#" . uniStrtolower(urlencode(html_entity_decode($this->objSearchSearch->getStrQuery(), ENT_QUOTES, "UTF-8"))));
         } else {
             $arrRow["page_link"] = $objHit->getStrPagelink();
         }
         $arrRow["page_description"] = uniStrTrim($objHit->getStrDescription(), 200);
         $arrTemplate["hitlist"] .= $this->objTemplate->fillTemplate($arrRow, $strRowTemplateID, false);
     }
     //Collect global data
     $arrTemplate["search_term"] = $this->objSearchSearch->getStrQuery();
     $arrTemplate["search_nrresults"] = count($arrHitsSorted);
     $arrTemplate["link_forward"] = $arrHitsFilter["strForward"];
     $arrTemplate["link_back"] = $arrHitsFilter["strBack"];
     $arrTemplate["link_overview"] = $arrHitsFilter["strPages"];
     $strTemplateID = $this->objTemplate->readTemplate("/module_search/" . $this->arrElementData["search_template"], "search_hitlist");
     return $strReturn . $this->fillTemplate($arrTemplate, $strTemplateID);
 }
コード例 #6
0
 /**
  * Prints a file as a detailed-view
  * and generates forward / backward links + a strip of prev / next files
  *
  * @param bool $bitRegisterAdditionalTitle
  * @return string
  */
 protected function actionFileDetails($bitRegisterAdditionalTitle = true)
 {
     if (!$this->checkIfRequestedIdIsInElementsTree()) {
         return $this->actionList();
     }
     $bitIsImage = false;
     //Load record
     $objFile = new class_module_mediamanager_file($this->getSystemid());
     //common fields
     $arrDetailsTemplate = array();
     $arrDetailsTemplate["file_name"] = $objFile->getStrName();
     $arrDetailsTemplate["file_description"] = $objFile->getStrDescription();
     $arrDetailsTemplate["file_subtitle"] = $objFile->getStrSubtitle();
     $arrDetailsTemplate["file_filename"] = $objFile->getStrFilename();
     $arrDetailsTemplate["file_size"] = bytesToString($objFile->getIntFileSize());
     $arrDetailsTemplate["file_hits"] = $objFile->getIntHits();
     $arrDetailsTemplate["file_systemid"] = $objFile->getSystemid();
     $arrDetailsTemplate["file_elementid"] = $this->arrElementData["content_id"];
     $arrDetailsTemplate["file_lmtime"] = timeToString(filemtime(_realpath_ . $objFile->getStrFilename()));
     if (validateSystemid($objFile->getOwnerId())) {
         $objUser = new class_module_user_user($objFile->getOwnerId());
         $arrDetailsTemplate["file_owner"] = $objUser->getStrUsername();
     }
     if ($objFile->rightRight2()) {
         $arrDetailsTemplate["file_link_href"] = _webpath_ . "/download.php?systemid=" . $objFile->getSystemid();
         $arrDetailsTemplate["file_link"] = "<a href=\"" . _webpath_ . "/download.php?systemid=" . $objFile->getSystemid() . "\">" . $this->getLang("download_link") . "</a>";
     }
     //if its an image, provide additional information
     $strSuffix = uniStrtolower(uniSubstr($objFile->getStrFilename(), uniStrrpos($objFile->getStrFilename(), ".")));
     if (in_array($strSuffix, $this->arrImageTypes) && isset($this->arrElementData["gallery_maxh_d"]) && isset($this->arrElementData["gallery_maxw_d"])) {
         $bitIsImage = true;
         $arrDetailsTemplate["image_src"] = $this->getImageUrl($objFile->getStrFilename(), $this->arrElementData["gallery_maxh_d"], $this->arrElementData["gallery_maxw_d"], $this->arrElementData["gallery_text"], $this->arrElementData["gallery_overlay"], $objFile->getSystemid(), $this->arrElementData["content_id"]);
     }
     $arrStripIds = $this->getNextPrevIds();
     $arrDetailsTemplate["backlink"] = $arrStripIds["backward_1"] != "" ? class_link::getLinkPortal($this->getPagename(), "", "", $this->getLang("commons_back"), "fileDetails", "", $arrStripIds["backward_1"]) : "";
     $arrDetailsTemplate["forwardlink"] = $arrStripIds["forward_1"] != "" ? class_link::getLinkPortal($this->getPagename(), "", "", $this->getLang("commons_next"), "fileDetails", "", $arrStripIds["forward_1"]) : "";
     //next /prev 3 files
     for ($intI = 1; $intI <= 3; $intI++) {
         if ($arrStripIds["forward_" . $intI] != "") {
             $objCurFile = new class_module_mediamanager_file($arrStripIds["forward_" . $intI]);
             $arrDetailsTemplate["forwardlink_" . $intI] = $this->renderFileStripEntry($objCurFile);
         }
         if ($arrStripIds["backward_" . $intI] != "") {
             $objCurFile = new class_module_mediamanager_file($arrStripIds["backward_" . $intI]);
             $arrDetailsTemplate["backlink_" . $intI] = $this->renderFileStripEntry($objCurFile);
         }
     }
     //current file
     $arrDetailsTemplate["filestrip_current"] = $this->renderFileStripEntry($objFile);
     $arrDetailsTemplate["overview"] = getLinkPortal($this->getPagename(), "", "", $this->getLang("overview"), "mediaFolder", "", $objFile->getPrevId());
     $arrDetailsTemplate["pathnavigation"] = $this->generatePathnavi(true);
     //ratings available?
     if ($objFile->getFloatRating() !== null) {
         /** @var $objRating class_module_rating_portal */
         $objRating = class_module_system_module::getModuleByName("rating")->getPortalInstanceOfConcreteModule();
         $arrDetailsTemplate["file_rating"] = $objRating->buildRatingBar($objFile->getFloatRating(), $objFile->getIntRatingHits(), $objFile->getSystemid(), $objFile->isRateableByUser(), $objFile->rightRight3());
     }
     $strTemplateID = $this->objTemplate->readTemplate("/module_mediamanager/" . $this->arrElementData["repo_template"], "filedetail");
     $strReturn = $this->fillTemplate($arrDetailsTemplate, $strTemplateID);
     //Add pe code
     $arrPeConfig = array("pe_module" => "mediamanager", "pe_action_edit" => "editFile", "pe_action_edit_params" => "&systemid=" . $objFile->getSystemid());
     $strReturn = class_element_portal::addPortalEditorCode($strReturn, $objFile->getSystemid(), $arrPeConfig);
     //set the name of the current image to the page title via class_pages
     if ($bitRegisterAdditionalTitle) {
         class_module_pages_portal::registerAdditionalTitle($objFile->getStrName());
     }
     //Update view counter
     if ($bitIsImage) {
         $objFile->increaseHits();
     }
     return $this->addPortaleditorCode($strReturn);
 }