public function testImportExport() { class_carrier::getInstance()->getObjRights()->setBitTestMode(true); $strName = generateSystemid(); $strBrowsername = generateSystemid(); $strSeoString = generateSystemid(); $strDesc = generateSystemid(); $objPage = new class_module_pages_page(); $objPage->setStrName($strName); $objPage->setStrBrowsername($strBrowsername); $objPage->setStrSeostring($strSeoString); $objPage->setStrDesc($strDesc); $objPage->setStrTemplate("standard.tpl"); $objPage->updateObjectToDb(); $strPagesystemid = $objPage->getSystemid(); $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("text_paragraph"); $objPagelement->setStrName("text"); $objPagelement->setStrElement("paragraph"); $objPagelement->updateObjectToDb($objPage->getSystemid()); $objElement = new class_element_paragraph_admin($objPagelement->getSystemid()); $objElement->setSystemid($objPagelement->getSystemid()); $objElement->loadElementData(); $objElement->setStrTitle("para_title"); $objElement->updateForeignElement(); $objPagelement = new class_module_pages_pageelement($objPagelement->getSystemid()); class_carrier::getInstance()->setParam("pageExport", $strName); $objPageExport = new class_systemtask_pageexport(); $objPageExport->executeTask(); $objPage->deleteObjectFromDatabase(); class_orm_rowcache::flushCache(); class_db::getInstance()->flushQueryCache(); $this->assertNull(class_module_pages_page::getPageByName($strName)); $this->assertFileExists(_realpath_ . _projectpath_ . "/temp/" . $strPagesystemid . ".xml"); class_carrier::getInstance()->setParam("pageimport_file", _projectpath_ . "/temp/" . $strPagesystemid . ".xml"); $objImport = new class_systemtask_pageimport(); $objImport->executeTask(); $objPage = class_module_pages_page::getPageByName($strName); $this->assertNotNull($objPage); $this->assertEquals($objPage->getStrName(), $strName); $this->assertEquals($objPage->getStrDesc(), $strDesc); $this->assertEquals($objPage->getStrSeostring(), $strSeoString); $this->assertEquals($objPage->getStrBrowsername(), $strBrowsername); $objElements = class_module_pages_pageelement::getAllElementsOnPage($objPage->getSystemid()); $this->assertEquals(1, count($objElements)); $objElements = $objElements[0]; $this->assertEquals($objElements->getStrClassAdmin(), "class_element_paragraph_admin.php"); $objElement = $objElements->getConcreteAdminInstance(); $objElement->setSystemid($objElements->getSystemid()); $objElement->loadElementData(); $this->assertEquals("para_title", $objElement->getStrTitle()); $objPage->deleteObjectFromDatabase(); }
/** * Initializes the object from the database. * Loads all mapped columns to the properties. * Requires that the object is identified by its systemid. * * @return void */ public function initObjectFromDb() { //try to do a default init $objReflection = new class_reflection($this->getObjObject()); if (validateSystemid($this->getObjObject()->getSystemid()) && $this->hasTargetTable()) { if (class_orm_rowcache::getCachedInitRow($this->getObjObject()->getSystemid()) !== null) { $arrRow = class_orm_rowcache::getCachedInitRow($this->getObjObject()->getSystemid()); } else { $strQuery = "SELECT *\n " . $this->getQueryBase() . "\n AND system.system_id = ? "; $arrRow = class_carrier::getInstance()->getObjDB()->getPRow($strQuery, array($this->getObjObject()->getSystemid())); } if (method_exists($this->getObjObject(), "setArrInitRow")) { $this->getObjObject()->setArrInitRow($arrRow); } //get the mapped properties $arrProperties = $objReflection->getPropertiesWithAnnotation(class_orm_base::STR_ANNOTATION_TABLECOLUMN); foreach ($arrProperties as $strPropertyName => $strColumn) { $arrColumn = explode(".", $strColumn); if (count($arrColumn) == 2) { $strColumn = $arrColumn[1]; } if (!isset($arrRow[$strColumn])) { continue; } //skip columns from the system-table, they are set later on if (count($arrColumn) == 2 && $arrColumn[0] == "system") { continue; } $strSetter = $objReflection->getSetter($strPropertyName); if ($strSetter !== null) { call_user_func(array($this->getObjObject(), $strSetter), $arrRow[$strColumn]); } } $this->initAssignmentProperties(); } }
/** * Fetches all Configs from the database * * @return class_module_system_setting[] * @static */ public static function getAllConfigValues() { if (self::$arrInstanceCache == null) { if (count(class_db::getInstance()->getTables()) == 0) { return array(); } $strQuery = "SELECT * FROM " . _dbprefix_ . "system_config ORDER BY system_config_module ASC, system_config_name DESC"; $arrIds = class_carrier::getInstance()->getObjDB()->getPArray($strQuery, array(), null, null, false); foreach ($arrIds as $arrOneId) { $arrOneId["system_id"] = $arrOneId["system_config_id"]; class_orm_rowcache::addSingleInitRow($arrOneId); self::$arrInstanceCache[$arrOneId["system_config_id"]] = new class_module_system_setting($arrOneId["system_config_id"]); } } if (self::$arrInstanceCache == null) { return array(); } return self::$arrInstanceCache; }
/** * Looks up the rights for a given SystemID and going up the tree if needed (inheritance!) * * @param string $strSystemid * * @return array */ private function getPlainRightRow($strSystemid) { if (class_orm_rowcache::getCachedInitRow($strSystemid) != null && array_key_exists("right_id", class_orm_rowcache::getCachedInitRow($strSystemid))) { $arrRow = class_orm_rowcache::getCachedInitRow($strSystemid); } else { $strQuery = "SELECT *\r\n FROM " . _dbprefix_ . "system,\r\n " . _dbprefix_ . "system_right\r\n WHERE system_id = ?\r\n AND right_id = system_id "; $arrRow = $this->objDb->getPRow($strQuery, array($strSystemid)); } $arrRights = array(); if (isset($arrRow["right_id"])) { $arrRights[self::$STR_RIGHT_VIEW] = $arrRow["right_view"]; $arrRights[self::$STR_RIGHT_EDIT] = $arrRow["right_edit"]; $arrRights[self::$STR_RIGHT_DELETE] = $arrRow["right_delete"]; $arrRights[self::$STR_RIGHT_RIGHT] = $arrRow["right_right"]; $arrRights[self::$STR_RIGHT_RIGHT1] = $arrRow["right_right1"]; $arrRights[self::$STR_RIGHT_RIGHT2] = $arrRow["right_right2"]; $arrRights[self::$STR_RIGHT_RIGHT3] = $arrRow["right_right3"]; $arrRights[self::$STR_RIGHT_RIGHT4] = $arrRow["right_right4"]; $arrRights[self::$STR_RIGHT_RIGHT5] = $arrRow["right_right5"]; $arrRights[self::$STR_RIGHT_CHANGELOG] = isset($arrRow["right_changelog"]) ? $arrRow["right_changelog"] : ""; $arrRights[self::$STR_RIGHT_INHERIT] = (int) $arrRow["right_inherit"]; $arrRights["system_prev_id"] = $arrRow["system_prev_id"]; $arrRights["system_id"] = $arrRow["system_id"]; } else { $arrRights[self::$STR_RIGHT_VIEW] = ""; $arrRights[self::$STR_RIGHT_EDIT] = ""; $arrRights[self::$STR_RIGHT_DELETE] = ""; $arrRights[self::$STR_RIGHT_RIGHT] = ""; $arrRights[self::$STR_RIGHT_RIGHT1] = ""; $arrRights[self::$STR_RIGHT_RIGHT2] = ""; $arrRights[self::$STR_RIGHT_RIGHT3] = ""; $arrRights[self::$STR_RIGHT_RIGHT4] = ""; $arrRights[self::$STR_RIGHT_RIGHT5] = ""; $arrRights[self::$STR_RIGHT_CHANGELOG] = ""; $arrRights[self::$STR_RIGHT_INHERIT] = 1; $arrRights["system_prev_id"] = ""; $arrRights["system_id"] = ""; } return $arrRights; }
/** * Loads the data of the current element * * @return mixed */ public final function loadElementData() { $objAnnotations = new class_reflection($this); $arrTargetTables = $objAnnotations->getAnnotationValuesFromClass(class_orm_base::STR_ANNOTATION_TARGETTABLE); $strTargetTable = ""; if (count($arrTargetTables) != 0) { $arrCachedRow = class_orm_rowcache::getCachedInitRow($this->getSystemid()); if ($arrCachedRow !== null && !isset($arrCachedRow["content_id"])) { class_orm_rowcache::removeSingleRow($this->getSystemid()); } $objORM = new class_orm_objectinit($this); $objORM->initObjectFromDb(); $arrTables = explode(".", $arrTargetTables[0]); $strTargetTable = _dbprefix_ . $arrTables[0]; } else { if ($this->getArrModule("table") != "") { $strTargetTable = $this->getArrModule("table"); } } $objORM = new class_orm_objectlist(); //Element-Table given? if ($strTargetTable != "") { $strQuery = "SELECT *\n \t\t\t\t\t FROM " . $strTargetTable . ",\n \t\t\t\t\t \t " . _dbprefix_ . "element,\n \t\t\t\t\t \t " . _dbprefix_ . "page_element,\n \t\t\t\t\t \t " . _dbprefix_ . "system_right,\n \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 WHERE element_name = page_element_ph_element\n \t\t\t\t\t AND page_element_id = content_id\n \t\t\t\t\t AND system_id = right_id\n \t\t\t\t\t AND system_id = content_id\n \t\t\t\t\t " . $objORM->getDeletedWhereRestriction() . "\n \t\t\t\t\t AND system_id = ? "; } else { $strQuery = "SELECT *\n \t\t\t\t\t FROM " . _dbprefix_ . "element,\n \t\t\t\t\t \t " . _dbprefix_ . "page_element,\n \t\t\t\t\t \t " . _dbprefix_ . "system_right,\n \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 WHERE element_name = page_element_ph_element\n \t\t\t\t\t AND page_element_id = system_id\n \t\t\t\t\t AND system_id = right_id\n \t\t\t\t\t " . $objORM->getDeletedWhereRestriction() . "\n \t\t\t\t\t AND system_id = ? "; } $this->arrElementData = class_carrier::getInstance()->getObjDB()->getPRow($strQuery, array($this->getSystemid())); class_orm_rowcache::addSingleInitRow($this->arrElementData); return $this->arrElementData; }
/** * Get the class name for a system-id. * * @param string $strSystemid * @return string */ public function getClassNameForId($strSystemid) { $strClass = ""; if (isset($this->arrClassCache[$strSystemid])) { $strClass = $this->arrClassCache[$strSystemid]; } else { //maybe the orm handler has already fetched this row $arrCacheRow = class_orm_rowcache::getCachedInitRow($strSystemid); if ($arrCacheRow != null && isset($arrCacheRow["system_class"])) { $strClass = $arrCacheRow["system_class"]; } else { $strQuery = "SELECT * FROM " . _dbprefix_ . "system where system_id = ?"; $arrRow = $this->objDB->getPRow($strQuery, array($strSystemid)); if (isset($arrRow["system_class"])) { $strClass = $arrRow["system_class"]; } } if ($strClass != "") { $this->arrClassCache[$strSystemid] = $strClass; $this->bitCacheSaveRequired = true; } } return $strClass; }
/** * Tries to load an element identified by the pageId, the name of the placeholder and the language. * If no matching element was found, null is returned. * * @param string $strPageId * @param string $strPlaceholder * @param string $strLanguage * @param bool $bitJustActive * * @return class_module_pages_pageelement[] */ public static function getElementsByPlaceholderAndPage($strPageId, $strPlaceholder, $strLanguage, $bitJustActive = true) { $strAnd = ""; $arrParams = array($strPageId, $strLanguage, $strPlaceholder); if ($bitJustActive) { $strAnd = "AND system_status = 1\n AND ( system_date_start IS null OR (system_date_start = 0 OR system_date_start <= ?))\n AND ( system_date_end IS null OR (system_date_end = 0 OR system_date_end >= ? )) "; $arrParams[] = time(); $arrParams[] = time(); } $objORM = new class_orm_objectlist(); $strQuery = "SELECT *\n FROM " . _dbprefix_ . "page_element,\n " . _dbprefix_ . "element,\n " . _dbprefix_ . "system_right,\n " . _dbprefix_ . "system\n LEFT JOIN " . _dbprefix_ . "system_date\n ON (system_id = system_date_id)\n WHERE system_prev_id= ?\n AND page_element_ph_element = element_name\n AND system_id = right_id\n AND system_id = page_element_id\n AND page_element_ph_language = ?\n AND page_element_ph_placeholder = ?\n " . $strAnd . "\n " . $objORM->getDeletedWhereRestriction() . "\n ORDER BY system_sort ASC"; $arrIds = class_carrier::getInstance()->getObjDB()->getPArray($strQuery, $arrParams); class_orm_rowcache::addArrayOfInitRows($arrIds); $arrReturn = array(); foreach ($arrIds as $arrOneRow) { $arrReturn[] = class_objectfactory::getInstance()->getObject($arrOneRow["system_id"]); } return $arrReturn; }
/** * Loads all faqs from the db assigned to the passed cat * * @param string $strCat * * @return class_module_faqs_faq[] * @static */ public static function loadListFaqsPortal($strCat) { $arrParams = array(); $objORM = new class_orm_objectlist(); if ($strCat == 1) { $strQuery = "SELECT *\n \t\t\t\t\t\tFROM " . _dbprefix_ . "faqs,\n \t\t " . _dbprefix_ . "system_right,\n \t\t " . _dbprefix_ . "system\n \t\t LEFT JOIN " . _dbprefix_ . "system_date\n ON system_id = system_date_id\n \t\t WHERE system_id = faqs_id\n \t\t AND system_status = 1\n \t\t " . $objORM->getDeletedWhereRestriction() . "\n \t\t AND system_id = right_id\n \t\t\t\t\t\tORDER BY faqs_question ASC"; } else { $strQuery = "SELECT *\n \t\t\t\t\t\tFROM " . _dbprefix_ . "faqs,\n \t\t\t\t\t\t " . _dbprefix_ . "faqs_member,\n \t\t " . _dbprefix_ . "system_right,\n \t\t " . _dbprefix_ . "system\n \t\t LEFT JOIN " . _dbprefix_ . "system_date\n ON system_id = system_date_id\n \t\t WHERE system_id = faqs_id\n \t\t AND faqs_id = faqsmem_faq\n \t\t AND system_id = right_id\n \t\t AND faqsmem_category = ?\n \t\t AND system_status = 1\n \t\t " . $objORM->getDeletedWhereRestriction() . "\n \t\t\t\t\t\tORDER BY faqs_question ASC"; $arrParams[] = $strCat; } $arrIds = class_carrier::getInstance()->getObjDB()->getPArray($strQuery, $arrParams); $arrReturn = array(); foreach ($arrIds as $arrOneId) { class_orm_rowcache::addSingleInitRow($arrOneId); $arrReturn[] = class_objectfactory::getInstance()->getObject($arrOneId["system_id"]); } return $arrReturn; }
/** * Deletes the object from the database. The record is removed in total, so no restoring will be possible. * * @return bool * @throws class_exception */ public function deleteObjectFromDatabase() { if (!$this->getLockManager()->isAccessibleForCurrentUser()) { return false; } if ($this instanceof interface_versionable) { $objChanges = new class_module_system_changelog(); $objChanges->createLogEntry($this, class_module_system_changelog::$STR_ACTION_DELETE); } /** @var $this class_root|interface_model */ $this->objDB->transactionBegin(); //validate, if there are subrecords, so child nodes to be deleted $arrChilds = $this->objDB->getPArray("SELECT system_id FROM " . _dbprefix_ . "system where system_prev_id = ?", array($this->getSystemid())); foreach ($arrChilds as $arrOneChild) { if (validateSystemid($arrOneChild["system_id"])) { $objInstance = class_objectfactory::getInstance()->getObject($arrOneChild["system_id"]); if ($objInstance !== null) { $objInstance->deleteObjectFromDatabase(); } } } $objORM = new class_orm_objectdelete($this); $bitReturn = $objORM->deleteObject(); $this->objSortManager->fixSortOnDelete(); $bitReturn = $bitReturn && $this->deleteSystemRecord($this->getSystemid()); class_objectfactory::getInstance()->removeFromCache($this->getSystemid()); class_orm_rowcache::removeSingleRow($this->getSystemid()); //try to call other modules, maybe wanting to delete anything in addition, if the current record //is going to be deleted $bitReturn = $bitReturn && class_core_eventdispatcher::getInstance()->notifyGenericListeners(class_system_eventidentifier::EVENT_SYSTEM_RECORDDELETED, array($this->getSystemid(), get_class($this))); if ($bitReturn) { class_logger::getInstance()->addLogRow("successfully deleted record " . $this->getSystemid() . " / " . $this->getStrDisplayName(), class_logger::$levelInfo); $this->objDB->transactionCommit(); $this->objDB->flushQueryCache(); return true; } else { class_logger::getInstance()->addLogRow("error deleting record " . $this->getSystemid() . " / " . $this->getStrDisplayName(), class_logger::$levelInfo); $this->objDB->transactionRollback(); $this->objDB->flushQueryCache(); return false; } }
/** * Loads a single handler-class, identified by the mapped class * * @param string $strClass * @return class_module_workflows_handler */ public static function getHandlerByClass($strClass) { $strQuery = "SELECT * FROM\n " . _dbprefix_ . "workflows_handler,\n " . _dbprefix_ . "system_right,\n " . _dbprefix_ . "system\n LEFT JOIN " . _dbprefix_ . "system_date\n ON system_id = system_date_id\n WHERE system_id = workflows_handler_id\n AND workflows_handler_class = ?\n AND system_id = right_id"; $arrRow = class_carrier::getInstance()->getObjDB()->getPRow($strQuery, array($strClass)); class_orm_rowcache::addSingleInitRow($arrRow); if (count($arrRow) > 0) { return class_objectfactory::getInstance()->getObject($arrRow["system_id"]); } else { return null; } }
/** * Resets the cached rows * @return void */ public static function flushCache() { self::$arrInitRows = array(); }
/** * Returns a single object matching the current query. The matching object is either * limited by the where statements set up in advance or the first record of the matching * result-set is returned. * If the query results in an empty result set, null is returned instead. * * @param string $strTargetClass * @param string $strPrevid * * @return class_model|interface_model|null * * @see class_orm_objectlist_restriction * @see class_orm_objectlist_orderby */ public function getSingleObject($strTargetClass, $strPrevid = "") { $strQuery = "SELECT *\n " . $this->getQueryBase($strTargetClass) . "\n " . ($strPrevid != "" && $strPrevid !== null ? " AND system_prev_id = ? " : ""); $arrParams = array(); if ($strPrevid != "") { $arrParams[] = $strPrevid; } $this->addLogicalDeleteRestriction(); $this->processWhereRestrictions($strQuery, $arrParams, $strTargetClass); $strQuery .= $this->getOrderBy(new class_reflection($strTargetClass)); $arrRow = class_carrier::getInstance()->getObjDB()->getPRow($strQuery, $arrParams); if (isset($arrRow["system_id"])) { class_orm_rowcache::addSingleInitRow($arrRow); return class_objectfactory::getInstance()->getObject($arrRow["system_id"]); } return null; }
/** * 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; }
/** * A general helper to flush the systems various caches. * * @param int $intCacheType A bitmask of caches to be flushed, e.g. class_carrier::INT_CACHE_TYPE_DBQUERIES | class_carrier::INT_CACHE_TYPE_ORMCACHE */ public function flushCache($intCacheType = 0) { if ($intCacheType & self::INT_CACHE_TYPE_DBQUERIES) { $this->getObjDB()->flushQueryCache(); } if ($intCacheType & self::INT_CACHE_TYPE_DBSTATEMENTS) { $this->getObjDB()->flushPreparedStatementsCache(); } if ($intCacheType & self::INT_CACHE_TYPE_DBTABLES) { $this->getObjDB()->flushTablesCache(); } if ($intCacheType & self::INT_CACHE_TYPE_ORMCACHE) { class_orm_rowcache::flushCache(); } if ($intCacheType & self::INT_CACHE_TYPE_OBJECTFACTORY) { class_objectfactory::getInstance()->flushCache(); } if ($intCacheType & self::INT_CACHE_TYPE_MODULES) { class_module_system_module::flushCache(); } if ($intCacheType & self::INT_CACHE_TYPE_CLASSLOADER) { class_classloader::getInstance()->flushCache(); } if ($intCacheType & self::INT_CACHE_TYPE_APC) { class_apc_cache::getInstance()->flushCache(); } if ($intCacheType & self::INT_CACHE_TYPE_CHANGELOG) { $objChangelog = new class_module_system_changelog(); $objChangelog->processCachedInserts(); } }
/** * Loads all news from the db assigned to the passed cat * * @param int $intMode 0 = regular, 1 = archive * @param int|string $strCat * @param int $intOrder 0 = descending, 1 = ascending * @param int $intStart * @param int $intEnd * * @return class_module_news_news[] * @static */ public static function loadListNewsPortal($intMode, $strCat = 0, $intOrder = 0, $intStart = null, $intEnd = null) { $arrParams = array(); $longNow = class_date::getCurrentTimestamp(); //Get Timeintervall if ($intMode == "0") { //Regular news $strTime = "AND (system_date_special IS NULL OR (system_date_special > ? OR system_date_special = 0))"; } elseif ($intMode == "1") { //Archivnews $strTime = "AND (system_date_special < ? AND system_date_special IS NOT NULL AND system_date_special != 0)"; } else { $strTime = ""; } $objOrm = new class_orm_objectlist(); $strWhere = $objOrm->getDeletedWhereRestriction(); //check if news should be ordered de- or ascending if ($intOrder == 0) { $strOrder = "DESC"; } else { $strOrder = "ASC"; } if ($strCat != "0") { $strQuery = "SELECT *\n FROM " . _dbprefix_ . "news,\n " . _dbprefix_ . "news_member,\n " . _dbprefix_ . "system_right,\n " . _dbprefix_ . "system\n LEFT JOIN " . _dbprefix_ . "system_date\n ON system_id = system_date_id\n WHERE system_id = news_id\n AND news_id = newsmem_news\n AND system_id = right_id\n AND newsmem_category = ?\n AND system_status = 1\n AND (system_date_start IS NULL or(system_date_start < ? OR system_date_start = 0))\n " . $strTime . $strWhere . "\n AND (system_date_end IS NULL or (system_date_end > ? OR system_date_end = 0))\n ORDER BY system_date_start " . $strOrder . ", system_create_date DESC"; $arrParams[] = $strCat; $arrParams[] = $longNow; if ($strTime != "") { $arrParams[] = $longNow; } $arrParams[] = $longNow; } else { $strQuery = "SELECT *\n FROM " . _dbprefix_ . "news,\n " . _dbprefix_ . "system_right,\n " . _dbprefix_ . "system\n LEFT JOIN " . _dbprefix_ . "system_date\n ON system_id = system_date_id\n WHERE system_id = news_id\n AND system_id = right_id\n AND system_status = 1\n AND (system_date_start IS NULL or(system_date_start < ? OR system_date_start = 0))\n " . $strTime . $strWhere . "\n AND (system_date_end IS NULL or (system_date_end > ? OR system_date_end = 0))\n ORDER BY system_date_start " . $strOrder . ", system_create_date DESC"; $arrParams[] = $longNow; if ($strTime != "") { $arrParams[] = $longNow; } $arrParams[] = $longNow; } $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; }
/** * Initialises the internal modules-cache. * Loads all module-data into a single array. * Avoids multiple queries against the module-table. * * @param bool $bitCache * * @return array * @static */ private static function loadModuleData($bitCache = true) { if ((count(self::$arrModuleData) == 0 || !$bitCache) && count(class_carrier::getInstance()->getObjDB()->getTables()) > 0) { $strQuery = "SELECT *\n FROM " . _dbprefix_ . "system_right,\n " . _dbprefix_ . "system_module,\n " . _dbprefix_ . "system\n LEFT JOIN " . _dbprefix_ . "system_date\n ON system_id = system_date_id\n WHERE system_id = right_id\n AND system_id = module_id\n ORDER BY system_sort ASC, system_comment ASC "; $arrRows = class_carrier::getInstance()->getObjDB()->getPArray($strQuery, array(), null, null, $bitCache); class_orm_rowcache::addArrayOfInitRows($arrRows); self::$arrModuleData = $arrRows; } return self::$arrModuleData; }