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