/**
  * Generates a new entry in the log-table
  *
  * @param string $strSeachterm
  *
  * @return bool
  * @static
  */
 public static function generateLogEntry($strSeachterm)
 {
     $objLanguage = new class_module_languages_language();
     $strLanguage = $objLanguage->getStrPortalLanguage();
     $strQuery = "INSERT INTO " . _dbprefix_ . "search_log \n                    (search_log_id, search_log_date, search_log_query, search_log_language) VALUES\n                    (?, ?, ?, ? )";
     return class_carrier::getInstance()->getObjDB()->_pQuery($strQuery, array(generateSystemid(), (int) time(), $strSeachterm, $strLanguage));
 }
 /**
  * Constructor
  *
  * @param array $arrElementData
  * @param string $strSystemid
  */
 public function __construct($arrElementData = array(), $strSystemid = "")
 {
     parent::__construct($strSystemid);
     $this->objToolkit = class_carrier::getInstance()->getObjToolkit("portal");
     //set the pagename
     if ($this->getParam("page") == "") {
         $this->setParam("page", $this->getPagename());
     }
     //set the correct language
     $objLanguage = new class_module_languages_language();
     //set current language to the texts-object
     $this->getObjLang()->setStrTextLanguage($objLanguage->getStrPortalLanguage());
     $this->arrElementData = $arrElementData;
 }
Example #3
0
 /**
  * Helper to fetch the portal language
  * @return null|string
  */
 private static function getStrPortalLanguage()
 {
     if (self::$strPortalLanguage == null) {
         $objLang = new class_module_languages_language();
         self::$strPortalLanguage = $objLang->getStrPortalLanguage();
     }
     return self::$strPortalLanguage;
 }
 /**
  * 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;
 }
 /**
  * Triggers all subelements in order to fetch the additional navigation
  * entries.
  *
  * @param class_module_pages_page $objPage
  *
  * @see class_element_portal::getNavigationEntries()
  * @return class_module_navigation_point[]|array
  * @since 4.0
  */
 private static function getAdditionalEntriesForPage(class_module_pages_page $objPage)
 {
     $arrReturn = array();
     $objLanguage = new class_module_languages_language();
     $arrPlainElements = class_module_pages_pageelement::getPlainElementsOnPage($objPage->getSystemid(), true, $objLanguage->getStrPortalLanguage());
     $strOldPageName = $objPage->getParam("page");
     foreach ($arrPlainElements as $arrOneElementOnPage) {
         //Build the class-name for the object
         $strClassname = uniSubstr($arrOneElementOnPage["element_class_portal"], 0, -4);
         if ($strClassname::providesNavigationEntries()) {
             /** @var  class_element_portal $objElement */
             $objElement = new $strClassname(new class_module_pages_pageelement($arrOneElementOnPage["system_id"]));
             $objElement->setParam("page", $objPage->getStrName());
             $arrNavigationPoints = $objElement->getNavigationEntries();
             if ($arrNavigationPoints !== false) {
                 $arrReturn = array_merge($arrReturn, $arrNavigationPoints);
             }
         }
     }
     $objPage->setParam("page", $strOldPageName);
     return $arrReturn;
 }