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;
 }
Beispiel #4
0
 /**
  * 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;
 }
Beispiel #9
0
 /**
  * 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;
 }
Beispiel #14
0
 /**
  * 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;
 }