/** * @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; }
/** * 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 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("<br />", "<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 . ""; }
/** * 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; }
/** * 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); }
/** * 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); }