/**
  * 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;
 }