function testSortOnDelete()
 {
     $objRootAspect = new class_module_system_aspect();
     $objRootAspect->setStrName("testroot");
     $objRootAspect->updateObjectToDb();
     /** @var class_module_system_aspect[] $arrAspects */
     $arrAspects = array();
     for ($intI = 0; $intI < 100; $intI++) {
         $objAspect = new class_module_system_aspect();
         $objAspect->setStrName("autotest_" . $intI);
         $objAspect->updateObjectToDb($objRootAspect->getSystemid());
         $arrAspects[] = $objAspect;
     }
     //delete the 5th element - massive queries required
     $intQueriesPre = class_db::getInstance()->getNumber();
     echo " Setting new position\n";
     $arrAspects[5]->deleteObjectFromDatabase();
     $intQueriesPost = class_db::getInstance()->getNumber();
     echo "Queries: " . ($intQueriesPost - $intQueriesPre) . " \n";
     $objOrm = new class_orm_objectlist();
     $arrChilds = $objOrm->getObjectList("class_module_system_aspect", $objRootAspect->getSystemid());
     $this->assertEquals(count($arrChilds), 99);
     for ($intI = 1; $intI <= 99; $intI++) {
         $this->assertEquals($arrChilds[$intI - 1]->getIntSort(), $intI);
     }
     $objRootAspect->deleteObjectFromDatabase();
 }
 /**
  * Triggered as soon as a record is updated
  *
  * @param string $strEventName
  * @param array $arrArguments
  *
  * @return bool
  */
 public function handleEvent($strEventName, array $arrArguments)
 {
     $objRecord = $arrArguments[0];
     if ($objRecord instanceof class_module_packagemanager_template) {
         if ($objRecord->getIntRecordStatus() == 1) {
             $objOrm = new class_orm_objectlist();
             $objOrm->addWhereRestriction(new class_orm_objectlist_systemstatus_restriction(class_orm_comparator_enum::Equal(), 1));
             $arrPacks = $objOrm->getObjectList("class_module_packagemanager_template");
             foreach ($arrPacks as $objPack) {
                 if ($objPack->getSystemid() != $objRecord->getSystemid()) {
                     $objPack->setIntRecordStatus(0);
                     $objPack->updateObjectToDb();
                 }
             }
             //update the active-pack constant
             $objSetting = class_module_system_setting::getConfigByName("_packagemanager_defaulttemplate_");
             if ($objSetting !== null) {
                 $objSetting->setStrValue($objRecord->getStrName());
                 $objSetting->updateObjectToDb();
             }
             class_cache::flushCache("class_element_portal");
         }
     }
     return true;
 }
 /**
  * Implementing callback to react on user-delete events
  *
  * Called whenever a record was deleted using the common methods.
  * Implement this method to be notified when a record is deleted, e.g. to to additional cleanups afterwards.
  * There's no need to register the listener, this is done automatically.
  *
  * Make sure to return a matching boolean-value, otherwise the transaction may be rolled back.
  *
  * @param string $strEventName
  * @param array $arrArguments
  *
  * @return bool
  */
 public function handleEvent($strEventName, array $arrArguments)
 {
     //unwrap arguments
     list($strSystemid, $strSourceClass) = $arrArguments;
     if ($strSourceClass == "class_module_user_user" && validateSystemid($strSystemid)) {
         $objORM = new class_orm_objectlist();
         $objORM->addWhereRestriction(new class_orm_objectlist_property_restriction("strUser", class_orm_comparator_enum::Equal(), $strSystemid));
         $objORM->setObjHandleLogicalDeleted(class_orm_deletedhandling_enum::INCLUDED());
         $arrWidgets = $objORM->getObjectList("class_module_dashboard_widget");
         foreach ($arrWidgets as $objWidget) {
             $objWidget->deleteObjectFromDatabase();
         }
     }
     return true;
 }
 /**
  * Searches for ratings belonging to the systemid
  * to be deleted.
  *
  * @param string $strEventName
  * @param array $arrArguments
  *
  * @return bool
  */
 public function handleEvent($strEventName, array $arrArguments)
 {
     //unwrap arguments
     list($strSystemid, $strSourceClass) = $arrArguments;
     $bitReturn = true;
     //ratings installed as a module?
     if ($strSourceClass == "class_module_rating_rate") {
         //delete history entries of the current rating
         return class_carrier::getInstance()->getObjDB()->_pQuery("DELETE FROM " . _dbprefix_ . "rating_history" . " WHERE rating_history_rating=? ", array($strSystemid));
     }
     //if another record was deleted, remove the ratings alltogether
     $objOrmList = new class_orm_objectlist();
     $objOrmList->addWhereRestriction(new class_orm_objectlist_property_restriction("strRatingSystemid", class_orm_comparator_enum::Equal(), $strSystemid));
     $arrRatings = $objOrmList->getObjectList("class_module_rating_rate");
     foreach ($arrRatings as $objRating) {
         $bitReturn = $bitReturn && $objRating->deleteObjectFromDatabase();
     }
     return $bitReturn;
 }
 /**
  * Called whenever a records was deleted using the common methods.
  * Implement this method to be notified when a record is deleted, e.g. to to additional cleanups afterwards.
  * There's no need to register the listener, this is done automatically.
  *
  * Make sure to return a matching boolean-value, otherwise the transaction may be rolled back.
  *
  * @param string $strEventName
  * @param array $arrArguments
  *
  * @return bool
  */
 public function handleEvent($strEventName, array $arrArguments)
 {
     //unwrap arguments
     list($strSystemid, $strSourceClass) = $arrArguments;
     $bitReturn = true;
     //module installed?
     if ($strSourceClass == "class_module_postacomment_post" || class_module_system_module::getModuleByName("postacomment") == null) {
         return true;
     }
     $objOrm = new class_orm_objectlist();
     $objOrm->setObjHandleLogicalDeleted(class_orm_deletedhandling_enum::INCLUDED());
     $objOrm->addWhereRestriction(new class_orm_objectlist_restriction(" AND (postacomment_page = ? OR  postacomment_systemid = ? ) ", array($strSystemid, $strSystemid)));
     $arrComments = $objOrm->getObjectList("class_module_postacomment_post");
     foreach ($arrComments as $objPost) {
         if ($strEventName == class_system_eventidentifier::EVENT_SYSTEM_RECORDDELETED_LOGICALLY) {
             $objPost->deleteObject();
         }
         if ($strEventName == class_system_eventidentifier::EVENT_SYSTEM_RECORDDELETED) {
             $objPost->deleteObjectFromDatabase();
         }
     }
     return $bitReturn;
 }
 /**
  * Searches for workflows assigned to the systemid to be deleted.
  *
  * @param string $strEventName
  * @param array $arrArguments
  *
  * @return bool
  */
 public function handleEvent($strEventName, array $arrArguments)
 {
     //unwrap arguments
     list($strSystemid, $strSourceClass) = $arrArguments;
     $bitReturn = true;
     $objORM = new class_orm_objectlist();
     $objORM->setObjHandleLogicalDeleted(class_orm_deletedhandling_enum::INCLUDED());
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction(" AND workflows_systemid = ?", $strSystemid));
     if ($objORM->getObjectCount("class_module_workflows_workflow") == 0) {
         return true;
     }
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::INCLUDED());
     $arrWorkflows = class_module_workflows_workflow::getWorkflowsForSystemid($strSystemid, false);
     foreach ($arrWorkflows as $objOneWorkflow) {
         if ($strEventName == class_system_eventidentifier::EVENT_SYSTEM_RECORDDELETED_LOGICALLY) {
             $bitReturn = $bitReturn && $objOneWorkflow->deleteObject();
         }
         if ($strEventName == class_system_eventidentifier::EVENT_SYSTEM_RECORDDELETED) {
             $bitReturn = $bitReturn && $objOneWorkflow->deleteObjectFromDatabase();
         }
     }
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUDED());
     return $bitReturn;
 }
 /**
  * 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();
     //search for matching pages
     $strQuery = "SELECT page_name,  page_id\n                       FROM " . _dbprefix_ . "element_faqs,\n                            " . _dbprefix_ . "faqs\n                  LEFT JOIN " . _dbprefix_ . "faqs_member\n                         ON (faqsmem_faq = faqs_id),\n                            " . _dbprefix_ . "page_element,\n                            " . _dbprefix_ . "page,\n                            " . _dbprefix_ . "system\n                      WHERE faqs_id = ?\n                        AND 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 = faqsmem_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()));
     $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;
         }
         $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->getStrQuestion());
         $arrReturn[] = $objCurResult;
     }
     return $arrReturn;
 }
 /**
  * Retrieves the list of workflows available
  *
  * @param bool|int $intStart
  * @param bool|int $intEnd
  *
  * @return class_module_workflows_workflow[]
  */
 public static function getAllworkflows($intStart = null, $intEnd = null)
 {
     $objOrmMapper = new class_orm_objectlist();
     $objOrmMapper->addOrderBy(new class_orm_objectlist_orderby("workflows_state ASC"));
     $objOrmMapper->addOrderBy(new class_orm_objectlist_orderby("system_date_start DESC"));
     return $objOrmMapper->getObjectList("class_module_workflows_workflow", "", $intStart, $intEnd);
 }
Example #9
0
 /**
  * Fetches the records placed as child nodes of the current / passed id.
  * <b> Only the IDs are fetched since the current object-context is not available!!! </b>
  *
  * @param string $strSystemid
  * @return string[]
  * @deprecated
  */
 public function getChildNodesAsIdArray($strSystemid = "")
 {
     if ($strSystemid == "") {
         $strSystemid = $this->getSystemid();
     }
     $objORM = new class_orm_objectlist();
     $strQuery = "SELECT system_id\n                     FROM " . _dbprefix_ . "system\n                     WHERE system_prev_id=?\n                       AND system_id != '0'\n                       " . $objORM->getDeletedWhereRestriction() . "\n                     ORDER BY system_sort ASC";
     $arrReturn = array();
     $arrTemp = $this->objDB->getPArray($strQuery, array($strSystemid));
     if (count($arrTemp) > 0) {
         foreach ($arrTemp as $arrOneRow) {
             $arrReturn[] = $arrOneRow["system_id"];
         }
     }
     return $arrReturn;
 }
 /**
  * Returns the element using the given element-name
  *
  * @param string $strName
  *
  * @return class_module_pages_element
  */
 public static function getElement($strName)
 {
     $objORM = new class_orm_objectlist();
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND element_name = ?", array($strName)));
     return $objORM->getSingleObject(get_called_class());
 }
 /**
  * Counts the number of posts currently in the database
  *
  * @param bool $bitJustActive
  * @param string $strPageid
  * @param bool|string $strSystemidfilter false to ignore the filter
  * @param string $strLanguagefilter
  *
  * @return int
  */
 public static function getNumberOfPostsAvailable($bitJustActive = true, $strPageid = "", $strSystemidfilter = "", $strLanguagefilter = "")
 {
     $objORM = new class_orm_objectlist();
     if ($strPageid != "") {
         $objORM->addWhereRestriction(new class_orm_objectlist_restriction(" AND postacomment_page = ? ", $strPageid));
     }
     if ($strSystemidfilter != "") {
         $objORM->addWhereRestriction(new class_orm_objectlist_restriction(" AND postacomment_systemid = ? ", $strSystemidfilter));
     }
     if ($strLanguagefilter != "") {
         //check against '' to remain backwards-compatible
         $objORM->addWhereRestriction(new class_orm_objectlist_restriction(" AND (postacomment_language = ? OR postacomment_language = '')", $strLanguagefilter));
     }
     if ($bitJustActive) {
         $objORM->addWhereRestriction(new class_orm_objectlist_restriction(" AND system_status = ? ", 1));
     }
     return $objORM->getObjectCount(get_called_class());
 }
 /**
  * @param string $strEventId
  *
  * @return int
  */
 public static function getActiveParticipantsCount($strEventId)
 {
     $objOrm = new class_orm_objectlist();
     $objOrm->addWhereRestriction(new class_orm_objectlist_restriction("AND em_pt_status != 2", array()));
     return $objOrm->getObjectCount(get_called_class(), $strEventId);
 }
 /**
  * Returns a list of events available
  *
  * @param bool|int $intStart
  * @param bool|int $intEnd
  * @param class_date $objStartDate
  * @param class_Date $objEndDate
  * @param bool $bitOnlyActive
  * @param int $intOrder
  * @param null $intStatusFilter
  *
  * @return class_module_eventmanager_event[]
  */
 public static function getAllEvents($intStart = false, $intEnd = false, class_date $objStartDate = null, class_date $objEndDate = null, $bitOnlyActive = false, $intOrder = 0, $intStatusFilter = null)
 {
     $objORM = new class_orm_objectlist();
     if ($objStartDate != null && $objEndDate != null) {
         $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND (system_date_start > ? AND system_date_start <= ?", array($objStartDate->getLongTimestamp(), $objEndDate->getLongTimestamp())));
     }
     if ($intStatusFilter != null) {
         $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND em_ev_eventstatus = ?", array($intStatusFilter)));
     }
     if ($bitOnlyActive) {
         $objORM->addWhereRestriction(new class_orm_objectlist_systemstatus_restriction(class_orm_comparator_enum::Equal(), 1));
     }
     $objORM->addOrderBy(new class_orm_objectlist_orderby("system_date_start " . ($intOrder == "1" ? " ASC " : " DESC ")));
     $objORM->addOrderBy(new class_orm_objectlist_orderby("em_ev_title  ASC "));
     return $objORM->getObjectList(get_called_class(), "", $intStart, $intEnd);
 }
 /**
  * Returns the number of tags available
  *
  * @param string $strUserid
  *
  * @return int
  */
 public static function getNumberOfFavoritesForUser($strUserid)
 {
     $objORM = new class_orm_objectlist();
     $strQuery = "SELECT COUNT(*)\n                       FROM " . _dbprefix_ . "tags_favorite,\n                            " . _dbprefix_ . "tags_tag,\n                            " . _dbprefix_ . "system\n                     WHERE tags_fav_id = system_id\n                       AND tags_fav_userid = ?\n                       AND tags_fav_tagid = tags_tag_id\n                       " . $objORM->getDeletedWhereRestriction() . "\n                  ";
     $arrRow = class_carrier::getInstance()->getObjDB()->getPRow($strQuery, array($strUserid));
     return $arrRow["COUNT(*)"];
 }
 /**
  * Returns the configuration of a single provider for a user.
  *
  * @param string $strUserid
  * @param \interface_messageprovider|string $objProvider
  *
  * @return class_module_messaging_config
  * @static
  */
 public static function getConfigForUserAndProvider($strUserid, interface_messageprovider $objProvider)
 {
     $objORM = new class_orm_objectlist();
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND config_user = ?", $strUserid));
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND config_provider = ?", get_class($objProvider)));
     $objConfig = $objORM->getSingleObject(get_called_class());
     if ($objConfig === null) {
         $objConfig = new class_module_messaging_config();
         $objConfig->setStrUser($strUserid);
         $objConfig->setStrMessageprovider(get_class($objProvider));
     }
     return $objConfig;
 }
 /**
  * Counts the answers related to the current question
  *
  * @param bool $bitOnlyActive
  *
  * @return int
  */
 public function getAllAnswersCount($bitOnlyActive = false)
 {
     $objOrm = new class_orm_objectlist();
     if ($bitOnlyActive) {
         $objOrm->addWhereRestriction(new class_orm_objectlist_systemstatus_restriction(class_orm_comparator_enum::NotEqual(), 0));
     }
     return $objOrm->getObjectCount(__CLASS__);
 }
 /**
  * Generates a pagename not yet existing.
  * Tries to detect if the new name is the name of the current page. If given, the same name
  * is being returned. Can be suppressed.
  *
  * @param string $strName
  * @param bool $bitAvoidSelfchek
  *
  * @return string
  */
 public function generateNonexistingPagename($strName, $bitAvoidSelfchek = true)
 {
     //Filter blanks out of pagename
     $strName = str_replace(" ", "_", $strName);
     $objORM = new class_orm_objectlist();
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction(" AND page_name = ?", $strName));
     $objPage = $objORM->getSingleObject(get_called_class());
     if ($objPage !== null && !($bitAvoidSelfchek && $objPage->getSystemid() == $this->getSystemid())) {
         $intCount = 1;
         $strTemp = "";
         if ($objPage !== null && !($bitAvoidSelfchek && $objPage->getSystemid() == $this->getSystemid())) {
             $strTemp = $strName . "_" . $intCount;
             $objORM = new class_orm_objectlist();
             $objORM->addWhereRestriction(new class_orm_objectlist_restriction(" AND page_name = ?", $strName));
             $objPage = $objORM->getSingleObject(get_called_class());
             $intCount++;
         }
         $strName = $strTemp;
     }
     return $strName;
 }
 /**
  * Loads all news from the database
  * if passed, the filter is used to load the news of the given category
  *
  * @param string $strFilter
  * @param int $intAmount
  *
  * @return mixed
  * @static
  */
 public static function getNewsList($strFilter = "", $intAmount = 0)
 {
     $objORM = new class_orm_objectlist();
     $intNow = class_date::getCurrentTimestamp();
     $arrParams = array($intNow, $intNow, $intNow);
     if ($strFilter != "") {
         $strQuery = "SELECT *\n\t\t\t\t\t\t\tFROM  " . _dbprefix_ . "news,\n\t\t\t\t\t\t\t      " . _dbprefix_ . "news_member,\n\t\t\t\t\t\t\t      " . _dbprefix_ . "system_right,\n\t\t\t\t\t\t\t      " . _dbprefix_ . "system\n\t\t\t\t\t    LEFT JOIN " . _dbprefix_ . "system_date\n\t\t\t\t\t           ON system_id = system_date_id\n\t\t\t\t\t\t\tWHERE system_id = news_id\n\t\t\t\t\t\t\t  AND news_id = newsmem_news\n\t\t\t\t\t\t\t  AND system_id = right_id\n\t\t\t\t\t\t\t  AND system_status = 1\n\t\t\t\t\t\t\t  AND (system_date_special IS NULL OR (system_date_special > ? OR system_date_special = 0))\n\t\t\t\t\t\t\t  AND (system_date_start IS NULL or(system_date_start < ? OR system_date_start = 0))\n\t\t\t\t\t\t\t  AND (system_date_end IS NULL or (system_date_end > ? OR system_date_end = 0))\n\t\t\t\t\t\t\t  AND newsmem_category = ?\n\t\t\t\t\t\t\t  " . $objORM->getDeletedWhereRestriction() . "\n\t\t\t\t\t\t\tORDER BY system_date_start DESC";
         $arrParams[] = $strFilter;
     } else {
         $strQuery = "SELECT *\n\t\t\t\t\t\t\tFROM " . _dbprefix_ . "news,\n\t\t\t\t\t\t\t      " . _dbprefix_ . "system_right,\n\t\t\t\t\t\t\t      " . _dbprefix_ . "system\n\t\t\t\t\t\tLEFT JOIN " . _dbprefix_ . "system_date\n\t\t\t\t\t           ON system_id = system_date_id\n\t\t\t\t\t\t\tWHERE system_id = news_id\n\t\t\t\t\t\t\t  AND system_status = 1\n\t\t\t\t\t\t\t  AND system_id = right_id\n\t\t\t\t\t\t\t  AND (system_date_special IS NULL OR (system_date_special > ? OR system_date_special = 0))\n\t\t\t\t\t\t\t  AND (system_date_start IS NULL or(system_date_start < ? OR system_date_start = 0))\n\t\t\t\t\t\t\t  AND (system_date_end IS NULL or (system_date_end > ? OR system_date_end = 0))\n\t\t\t\t\t\t\t  " . $objORM->getDeletedWhereRestriction() . "\n\t\t\t\t\t\t\tORDER BY system_date_start DESC";
     }
     $intStart = null;
     $intEnd = null;
     if ($intAmount > 0) {
         $intStart = 0;
         $intEnd = $intAmount - 1;
     }
     $arrIds = class_carrier::getInstance()->getObjDB()->getPArray($strQuery, $arrParams, $intStart, $intEnd);
     class_orm_rowcache::addArrayOfInitRows($arrIds);
     $arrReturn = array();
     foreach ($arrIds as $arrOneId) {
         $arrReturn[] = class_objectfactory::getInstance()->getObject($arrOneId["system_id"]);
     }
     return $arrReturn;
 }
 /**
  * Tries to find a single mediamanager file identified by its path.
  * Pass the systemid of the matching repo/parent-id in order to find the correct file (e.g. if the file
  * is saved in multiple repos).
  *
  * @param string $strRepoId
  * @param string $strPath
  *
  * @return class_module_mediamanager_file|null
  */
 public static function getFileForPath($strRepoId, $strPath)
 {
     $objORM = new class_orm_objectlist();
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND file_filename = ?", array($strPath)));
     $arrFiles = $objORM->getObjectList(get_called_class());
     foreach ($arrFiles as $objFile) {
         $objTemp = class_objectfactory::getInstance()->getObject($objFile->getStrPrevId());
         while (validateSystemid($objTemp->getSystemid())) {
             if ($objTemp->getSystemid() == $strRepoId) {
                 return $objFile;
             }
             $objTemp = class_objectfactory::getInstance()->getObject($objTemp->getStrPrevId());
         }
     }
     return null;
 }
 /**
  * Loads a list of assigned records and creates the concrete instances.
  *
  * @param int $intStart
  * @param int $intEnd
  * @return class_model[]
  */
 public function getArrAssignedRecords($intStart = null, $intEnd = null)
 {
     $objORM = new class_orm_objectlist();
     $strQuery = "SELECT system.system_id\n                       FROM " . _dbprefix_ . "tags_member as member,\n                            " . _dbprefix_ . "tags_tag,\n                            " . _dbprefix_ . "system as system\n                      WHERE tags_tagid = ?\n                        AND tags_tagid = tags_tag_id\n                        AND system.system_id = member.tags_systemid\n                        " . $objORM->getDeletedWhereRestriction() . "\n                        AND (tags_tag_private IS NULL OR tags_tag_private != 1 OR (tags_owner IS NULL OR tags_owner = '' OR tags_owner = ?))\n                   ORDER BY system_comment ASC";
     $arrRecords = $this->objDB->getPArray($strQuery, array($this->getSystemid(), $this->objSession->getUserID()), $intStart, $intEnd);
     $arrReturn = array();
     foreach ($arrRecords as $arrOneRecord) {
         $arrReturn[] = class_objectfactory::getInstance()->getObject($arrOneRecord["system_id"]);
     }
     return $arrReturn;
 }
 /**
  * Updates placeholders in the db. Replaces all placeholders with a new one, if the template of elements' page
  * corresponds to the given one
  *
  * @param string $strTemplate
  * @param string $strOldPlaceholder
  * @param string $strNewPlaceholder
  *
  * @return bool
  */
 public static function updatePlaceholders($strTemplate, $strOldPlaceholder, $strNewPlaceholder)
 {
     $bitReturn = true;
     //Fetch all pages
     $objORM = new class_orm_objectlist();
     $arrObjPages = class_module_pages_page::getAllPages();
     foreach ($arrObjPages as $objOnePage) {
         if ($objOnePage->getStrTemplate() == $strTemplate || $strTemplate == "-1") {
             //Search for matching elements
             $strQuery = "SELECT system_id\n\t\t\t\t\t\t FROM " . _dbprefix_ . "page_element,\n\t\t\t\t\t\t      " . _dbprefix_ . "element,\n\t\t\t\t\t\t      " . _dbprefix_ . "system\n\t\t\t\t\t\t WHERE system_prev_id= ?\n\t\t\t\t\t\t   AND page_element_ph_element = element_name\n\t\t\t\t\t\t   AND system_id = page_element_id\n\t\t\t\t\t\t   " . $objORM->getDeletedWhereRestriction() . "\n\t\t\t\t\t\t ORDER BY page_element_ph_placeholder ASC,\n\t\t\t\t\t\t \t\tsystem_sort ASC";
             $arrIds = class_carrier::getInstance()->getObjDB()->getPArray($strQuery, array($objOnePage->getSystemid()));
             /** @var class_module_pages_pageelement[] $arrPageElements */
             $arrPageElements = array();
             foreach ($arrIds as $arrOneRow) {
                 $arrPageElements[] = new class_module_pages_pageelement($arrOneRow["system_id"]);
             }
             foreach ($arrPageElements as $objOnePageelement) {
                 if ($objOnePageelement->getStrPlaceholder() == $strOldPlaceholder) {
                     $objOnePageelement->setStrPlaceholder($strNewPlaceholder);
                     if (!$objOnePageelement->updateObjectToDb()) {
                         $bitReturn = false;
                     }
                 }
             }
         }
     }
     return $bitReturn;
 }
 /**
  * Returns the number of messages for a single user - ignoring the messages states.
  *
  * @param string $strUserid
  * @param bool $bitOnlyUnread
  *
  * @return int
  */
 public static function getNumberOfMessagesForUser($strUserid, $bitOnlyUnread = false)
 {
     $objOrm = new class_orm_objectlist();
     $objOrm->addWhereRestriction(new class_orm_objectlist_property_restriction("strUser", class_orm_comparator_enum::Equal(), $strUserid));
     if ($bitOnlyUnread) {
         $objOrm->addWhereRestriction(new class_orm_objectlist_restriction("AND (message_read IS NULL OR message_read = 0 )"));
     }
     return $objOrm->getObjectCount(__CLASS__);
 }
 /**
  * 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;
 }
 /**
  * Looks up the widgets placed in a given column and
  * returns a list of instances, reduced for the current user
  *
  * @param string $strColumn
  * @param string $strAspectFilter
  * @param string $strUserId
  *
  * @return array of class_module_dashboard_widget
  */
 public function getWidgetsForColumn($strColumn, $strAspectFilter = "", $strUserId = "")
 {
     if ($strUserId == "") {
         $strUserId = $this->objSession->getUserID();
     }
     $objORM = new class_orm_objectlist();
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND dashboard_user = ?", array($strUserId)));
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND dashboard_column = ?", array($strColumn)));
     return $objORM->getObjectList(get_called_class(), self::getWidgetsRootNodeForUser($strUserId, $strAspectFilter));
 }
 /**
  * Loads a single rating for a given systemid, if needed concreted by a checksum.
  * If no rating is found, null is being returned.
  *
  * @param string $strSystemid
  * @param string $strChecksum
  *
  * @static
  * @return class_module_rating_rate
  */
 public static function getRating($strSystemid, $strChecksum = "")
 {
     $objORM = new class_orm_objectlist();
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND rating_systemid = ?", $strSystemid));
     if ($strChecksum != "") {
         $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND rating_checksum = ?"), $strChecksum);
     }
     return $objORM->getSingleObject(get_called_class());
 }
 /**
  * Looks up a navigation by its name
  *
  * @param string $strName
  *
  * @return class_module_navigation_tree
  * @static
  */
 public static function getNavigationByName($strName)
 {
     $objOrm = new class_orm_objectlist();
     $objOrm->addWhereRestriction(new class_orm_objectlist_property_restriction("strName", class_orm_comparator_enum::Equal(), $strName));
     $arrRows = $objOrm->getObjectList("class_module_navigation_tree", class_module_system_module::getModuleIdByNr(_navigation_modul_id_));
     if (count($arrRows) == 1) {
         return $arrRows[0];
     }
     return null;
 }
 /**
  * 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"]);
     }
 }
 /**
  * Loads all navigation-points linking on the passed page
  *
  * @param string $strPagename
  *
  * @static
  * @return class_module_navigation_point[]
  */
 public static function loadPagePoint($strPagename)
 {
     $objOrm = new class_orm_objectlist();
     $objOrm->addWhereRestriction(new class_orm_objectlist_restriction(" AND system_status = 1 ", array()));
     $objOrm->addWhereRestriction(new class_orm_objectlist_restriction(" AND navigation_page_i = ? ", array($strPagename)));
     return $objOrm->getObjectList(get_called_class());
 }
 /**
  * Returns the list of pages and folders, so containing both object types, being located
  * under a given systemid.
  *
  * @param string $strFolderid
  * @param bool $bitOnlyActive
  *
  * @return int
  */
 public static function getPagesAndFolderListCount($strFolderid = "", $bitOnlyActive = false)
 {
     if (!validateSystemid($strFolderid)) {
         $strFolderid = class_module_system_module::getModuleByName("pages")->getSystemid();
     }
     $objORM = new class_orm_objectlist();
     $strQuery = "SELECT COUNT(*)\n\t\t\t\t\t\tFROM " . _dbprefix_ . "system\n\t\t\t\t\t\tWHERE system_prev_id=?\n                         AND (system_module_nr = ? OR system_module_nr = ? )\n                         " . $objORM->getDeletedWhereRestriction() . "\n\t                      " . ($bitOnlyActive ? " AND system_status = 1 " : "");
     $arrRow = class_carrier::getInstance()->getObjDB()->getPRow($strQuery, array($strFolderid, _pages_modul_id_, _pages_folder_id_));
     return $arrRow["COUNT(*)"];
 }
 /**
  * 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;
 }