/** * Return an on-click link for the passed object. * This link is rendered by the portal search result generator, so * make sure the link is a valid portal page. * If you want to suppress the entry from the result, return an empty string instead. * * @param class_search_result $objResult * * @see getLinkPortalHref() * @return mixed */ public function updateSearchResult(class_search_result $objResult) { //search for matching pages $arrReturn = array(); $objORM = new class_orm_objectlist(); $strQuery = "SELECT page_name, page_id\n FROM " . _dbprefix_ . "element_faqs,\n " . _dbprefix_ . "page_element,\n " . _dbprefix_ . "page,\n " . _dbprefix_ . "system\n WHERE content_id = page_element_id\n AND content_id = system_id\n AND (\n faqs_category IS NULL OR (\n faqs_category = '0' OR faqs_category = ?\n )\n )\n AND system_prev_id = page_id\n AND system_status = 1\n " . $objORM->getDeletedWhereRestriction() . "\n AND page_element_ph_language = ? "; $arrRows = $this->objDB->getPArray($strQuery, array($this->getSystemid(), $objResult->getObjSearch()->getStrPortalLangFilter())); foreach ($arrRows as $arrOnePage) { //check, if the post is available on a page using the current language if (!isset($arrOnePage["page_name"]) || $arrOnePage["page_name"] == "") { continue; } $objCurResult = clone $objResult; $objCurResult->setStrPagelink(class_link::getLinkPortal($arrOnePage["page_name"], "", "_self", $arrOnePage["page_name"], "", "&highlight=" . urlencode(html_entity_decode($objResult->getObjSearch()->getStrQuery(), ENT_QUOTES, "UTF-8")))); $objCurResult->setStrPagename($arrOnePage["page_name"]); $objCurResult->setStrDescription($this->getStrTitle()); $arrReturn[] = $objCurResult; } return $arrReturn; }
/** * Return an on-lick link for the passed object. * This link is rendered by the portal search result generator, so * make sure the link is a valid portal page. * If you want to suppress the entry from the result, return an empty string instead. * * @param class_search_result $objResult * * @see getLinkPortalHref() * @return mixed */ public function updateSearchResult(class_search_result $objResult) { $objORM = new class_orm_objectlist(); //load the matching site of the current page-element $strQuery = "SELECT page_name, page_id, pageproperties_browsername\n\t\t\t\t\t\t FROM " . _dbprefix_ . "page_element,\n\t\t\t\t\t\t " . _dbprefix_ . "page_properties,\n\t\t\t\t\t\t " . _dbprefix_ . "page,\n\t\t\t\t\t\t " . _dbprefix_ . "system\n\t\t\t\t\t\t WHERE system_prev_id = page_id\n\t\t\t\t\t\t AND pageproperties_id = page_id\n\t\t\t\t\t\t AND system_id = page_element_id\n\t\t\t\t\t\t AND page_element_id = ?\n\t\t\t\t\t\t " . $objORM->getDeletedWhereRestriction() . "\n\t\t\t\t\t\t AND system_status = 1"; $arrPage = class_carrier::getInstance()->getObjDB()->getPRow($strQuery, array($this->getSystemid())); if (isset($arrPage["page_name"])) { $objResult->setStrPagelink(class_link::getLinkPortal($arrPage["page_name"], "", "_self", $arrPage["pageproperties_browsername"], "", "&highlight=" . urlencode(html_entity_decode($objResult->getObjSearch()->getStrQuery(), ENT_QUOTES, "UTF-8")))); $objResult->setStrPagename($arrPage["page_name"]); } }
/** * @param class_module_search_search $objSearch * @param null $intStart * @param null $intEnd * * @return class_search_result[] */ public function doIndexedSearch($objSearch, $intStart = null, $intEnd = null) { $arrHits = array(); $objParser = new class_module_search_query_parser(); $objSearchQuery = $objParser->parseText($objSearch->getStrQuery()); if ($objSearchQuery == null) { return array(); } $objSearchQuery->setMetadataFilter($this->getMetadataFilterFromSearch($objSearch)); $strQuery = ""; $arrParameters = array(); $objSearchQuery->getListQuery($strQuery, $arrParameters); $arrSearchResult = $this->objDB->getPArray($strQuery, $arrParameters, $intStart, $intEnd); // check view permissions on both, record and matching module foreach ($arrSearchResult as $arrOneRow) { $objInstance = class_objectfactory::getInstance()->getObject($arrOneRow["search_ix_system_id"]); $objModule = $objInstance != null ? class_module_system_module::getModuleByName($objInstance->getArrModule("modul")) : null; if ($objInstance != null && $objModule != null && $objInstance->rightView() && $objModule->rightView()) { $objResult = new class_search_result(); $objResult->setObjSearch($objSearch); $objResult->setObjObject($objInstance); $objResult->setIntScore($arrOneRow["score"]); $arrHits[] = $objResult; } } return $arrHits; }
/** * Return an on-lick link for the passed object. * This link is rendered by the portal search result generator, so * make sure the link is a valid portal page. * If you want to suppress the entry from the result, return an empty string instead. * If you want to add additional entries to the result set, clone the result and modify * the new instance to your needs. Pack them in an array and they'll be merged * into the result set afterwards. * Make sure to return the passed result-object in this array, too. * * @param class_search_result $objResult * * @see getLinkPortalHref() * @return mixed */ public function updateSearchResult(class_search_result $objResult) { $objORM = new class_orm_objectlist(); $strQuery = "SELECT page_name, guestbook_amount, page_id\n FROM " . _dbprefix_ . "element_guestbook,\n " . _dbprefix_ . "page_element,\n " . _dbprefix_ . "page,\n " . _dbprefix_ . "system\n WHERE guestbook_id = ?\n AND content_id = page_element_id\n AND content_id = system_id\n AND system_prev_id = page_id\n AND system_status = 1\n " . $objORM->getDeletedWhereRestriction() . "\n AND page_element_ph_language = ? "; $arrRows = $this->objDB->getPArray($strQuery, array($this->getPrevId(), $objResult->getObjSearch()->getStrPortalLangFilter())); $arrReturn = array(); foreach ($arrRows as $arrOnePage) { //check, if the post is available on a page using the current language if (!isset($arrOnePage["page_name"]) || $arrOnePage["page_name"] == "") { continue; } //search pv position $intAmount = $arrOnePage["guestbook_amount"]; $arrPostsInGB = class_module_guestbook_post::getPosts($this->getPrevId(), true); $intCounter = 0; foreach ($arrPostsInGB as $objOnePostInGb) { $intCounter++; if ($objOnePostInGb->getSystemid() == $this->getSystemid()) { break; } } //calculate pv $intPvPos = ceil($intCounter / $intAmount); $objNewResult = clone $objResult; $objNewResult->setStrPagelink(class_link::getLinkPortal($arrOnePage["page_name"], "", "_self", $arrOnePage["page_name"], "", "&highlight=" . urlencode(html_entity_decode($objResult->getObjSearch()->getStrQuery(), ENT_QUOTES, "UTF-8")) . "&pv=" . $intPvPos)); $objNewResult->setStrPagename($arrOnePage["page_name"]); $objNewResult->setStrDescription($this->getStrGuestbookPostText()); $arrReturn[] = $objNewResult; } return $arrReturn; }
/** * Return an on-lick link for the passed object. * This link is rendered by the portal search result generator, so * make sure the link is a valid portal page. * If you want to suppress the entry from the result, return an empty string instead. * If you want to add additional entries to the result set, clone the result and modify * the new instance to your needs. Pack them in an array and they'll be merged * into the result set afterwards. * Make sure to return the passed result-object in this array, too. * * @param class_search_result $objResult * * @see getLinkPortalHref() * @return mixed */ public function updateSearchResult(class_search_result $objResult) { $objLanguages = new class_module_languages_language(); $objORM = new class_orm_objectlist(); $strQuery = "SELECT page_name, page_id\r\n FROM " . _dbprefix_ . "element_downloads,\r\n " . _dbprefix_ . "page_element,\r\n " . _dbprefix_ . "page,\r\n " . _dbprefix_ . "system\r\n WHERE download_id = ?\r\n AND content_id = page_element_id\r\n AND content_id = system_id\r\n AND system_prev_id = page_id\r\n AND system_status = 1\r\n " . $objORM->getDeletedWhereRestriction() . "\r\n AND page_element_ph_language = ? "; $arrRows = $this->objDB->getPArray($strQuery, array($this->getRepositoryId(), $objResult->getObjSearch()->getStrPortalLangFilter())); $strQuery = "SELECT page_name, page_id\r\n FROM " . _dbprefix_ . "element_gallery,\r\n " . _dbprefix_ . "page_element,\r\n " . _dbprefix_ . "page,\r\n " . _dbprefix_ . "system\r\n WHERE gallery_id = ?\r\n AND content_id = page_element_id\r\n AND content_id = system_id\r\n AND system_prev_id = page_id\r\n AND system_status = 1\r\n " . $objORM->getDeletedWhereRestriction() . "\r\n AND page_element_ph_language = ? "; $arrRows = array_merge($arrRows, $this->objDB->getPArray($strQuery, array($this->getRepositoryId(), $objLanguages->getStrPortalLanguage()))); $arrReturn = array(); foreach ($arrRows as $arrOnePage) { if (!isset($arrOnePage["page_name"]) || $arrOnePage["page_name"] == "") { continue; } $objOneResult = clone $objResult; $objOneResult->setStrPagelink(class_link::getLinkPortal($arrOnePage["page_name"], "", "_self", $this->getStrDisplayName(), "mediaFolder", "&highlight=" . urlencode(html_entity_decode($objResult->getObjSearch()->getStrQuery(), ENT_QUOTES, "UTF-8")), $this->getPrevId(), "", "", $this->getStrDisplayName())); $objOneResult->setStrPagename($arrOnePage["page_name"]); $objOneResult->setStrDescription($this->getStrDescription()); $arrReturn[] = $objOneResult; } return $arrReturn; }
/** * Return an on-lick link for the passed object. * This link is rendered by the portal search result generator, so * make sure the link is a valid portal page. * If you want to suppress the entry from the result, return an empty string instead. * * @param class_search_result $objResult * * @see getLinkPortalHref() * @return mixed */ public function updateSearchResult(class_search_result $objResult) { $objResult->setStrPagelink(class_link::getLinkPortal($this->getStrName(), "", "_self", $this->getStrBrowsername(), "", "&highlight=" . urlencode(html_entity_decode($objResult->getObjSearch()->getStrQuery(), ENT_QUOTES, "UTF-8")))); $objResult->setStrPagename($this->getStrName()); }
/** * Return an on-lick link for the passed object. * This link is rendered by the portal search result generator, so * make sure the link is a valid portal page. * If you want to suppress the entry from the result, return an empty string instead. * If you want to add additional entries to the result set, clone the result and modify * the new instance to your needs. Pack them in an array and they'll be merged * into the result set afterwards. * Make sure to return the passed result-object in this array, too. * * @param class_search_result $objResult * * @see getLinkPortalHref() * @return mixed */ public function updateSearchResult(class_search_result $objResult) { $objPage = new class_module_pages_page($this->getStrAssignedPage()); $objResult->setStrPagelink(class_link::getLinkPortal($objPage->getStrName(), "", "_self", $this->getStrTitle() != "" ? $this->getStrTitle() : $objPage->getStrName(), "", "&highlight=" . urlencode(html_entity_decode($objResult->getObjSearch()->getStrQuery(), ENT_QUOTES, "UTF-8")))); $objResult->setStrPagename($objPage->getStrName()); $objResult->setStrDescription($this->getStrComment()); }
/** * Return an on-lick link for the passed object. * This link is rendered by the portal search result generator, so * make sure the link is a valid portal page. * If you want to suppress the entry from the result, return an empty string instead. * If you want to add additional entries to the result set, clone the result and modify * the new instance to your needs. Pack them in an array and they'll be merged * into the result set afterwards. * Make sure to return the passed result-object in this array, too. * * @param class_search_result $objResult * * @see getLinkPortalHref() * @return mixed */ public function updateSearchResult(class_search_result $objResult) { $objORM = new class_orm_objectlist(); $strQuery = "SELECT news_detailspage\n FROM " . _dbprefix_ . "element_news,\n " . _dbprefix_ . "news_member,\n " . _dbprefix_ . "news,\n " . _dbprefix_ . "page_element,\n " . _dbprefix_ . "page,\n " . _dbprefix_ . "system\n WHERE news_id = ?\n AND content_id = page_element_id\n AND content_id = system_id\n AND ( news_category = '0' OR (\n news_category = newsmem_category\n AND newsmem_news = news_id\n )\n )\n AND system_prev_id = page_id\n AND system_status = 1\n AND news_view = 0\n " . $objORM->getDeletedWhereRestriction() . "\n AND page_element_ph_language = ? "; $arrRows = $this->objDB->getPArray($strQuery, array($this->getSystemid(), $objResult->getObjSearch()->getStrPortalLangFilter())); $arrReturn = array(); foreach ($arrRows as $arrOnePage) { //check, if the post is available on a page using the current language if (!isset($arrOnePage["news_detailspage"]) || $arrOnePage["news_detailspage"] == "") { continue; } $objDetails = class_module_pages_page::getPageByName($arrOnePage["news_detailspage"]); if ($objDetails == null) { continue; } //TODO: PV position $objOneResult = clone $objResult; $objOneResult->setStrPagelink(class_link::getLinkPortal($arrOnePage["news_detailspage"], "", "_self", $this->getStrTitle(), "newsDetail", "&highlight=" . urlencode(html_entity_decode($objResult->getObjSearch()->getStrQuery(), ENT_QUOTES, "UTF-8")), $this->getSystemid())); $objOneResult->setStrPagename($arrOnePage["news_detailspage"]); $objOneResult->setStrDescription($this->getStrIntro()); $arrReturn[] = $objOneResult; } return $arrReturn; }