public static function listProfiles(xPDO &$xpdo, array $criteria = array(), array $sort = array('id' => 'ASC'), $limit = 0, $offset = 0) { $objCollection= array (); /* query for profiles */ $c = $xpdo->newQuery('modFormCustomizationProfile'); $c->select(array( $xpdo->getSelectColumns('modFormCustomizationProfile','modFormCustomizationProfile'), )); $c->where($criteria,null,2);// also log issue in remine to look at this usage of where() $count = $xpdo->getCount('modFormCustomizationProfile',$c); foreach($sort as $field=> $dir) { $c->sortby($xpdo->getSelectColumns('modFormCustomizationProfile','modFormCustomizationProfile','',array($field)),$dir); } if ((int) $limit > 0) { $c->limit((int) $limit, (int) $offset); } $rows= xPDOObject :: _loadRows($xpdo, 'modFormCustomizationProfile', $c); $rowsArray = $rows->fetchAll(PDO::FETCH_ASSOC); $rows->closeCursor(); foreach($rowsArray as $row) { $objCollection[] = $xpdo->call('modFormCustomizationProfile', '_loadInstance', array(&$xpdo, 'modFormCustomizationProfile', $c, $row)); } unset($row, $rowsArray); return array( 'count'=> $count, 'collection'=> $objCollection ); }
/** * Custom collection loader that forces access policy checking. * * {@inheritdoc} */ public static function loadCollection(xPDO &$xpdo, $className, $criteria = null, $cacheFlag = true) { $objCollection = array(); if (!($className = $xpdo->loadClass($className))) { return $objCollection; } $rows = false; $fromCache = false; $collectionCaching = (int) $xpdo->getOption(xPDO::OPT_CACHE_DB_COLLECTIONS, array(), 1); if (!is_object($criteria)) { $criteria = $xpdo->getCriteria($className, $criteria, $cacheFlag); } if (is_object($criteria)) { if ($collectionCaching > 0 && $xpdo->_cacheEnabled && $cacheFlag) { $rows = $xpdo->fromCache($criteria, $className); $fromCache = is_array($rows) && !empty($rows); } if (!$fromCache) { $rows = xPDOObject::_loadRows($xpdo, $className, $criteria); } $cacheRows = array(); if (is_array($rows)) { foreach ($rows as $row) { if (modAccessibleObject::_loadCollectionInstance($xpdo, $objCollection, $className, $criteria, $row, $fromCache, $cacheFlag)) { if ($collectionCaching > 0 && $xpdo->_cacheEnabled && $cacheFlag && !$fromCache) { $cacheRows[] = $row; } } } } elseif (is_object($rows)) { while ($row = $rows->fetch(PDO::FETCH_ASSOC)) { if (modAccessibleObject::_loadCollectionInstance($xpdo, $objCollection, $className, $criteria, $row, $fromCache, $cacheFlag)) { if ($collectionCaching > 0 && $xpdo->_cacheEnabled && $cacheFlag && !$fromCache) { $cacheRows[] = $row; } } } } if (!$fromCache && $xpdo->_cacheEnabled && $collectionCaching > 0 && $cacheFlag && !empty($cacheRows)) { $xpdo->toCache($criteria, $cacheRows, $cacheFlag); } } else { $xpdo->log(xPDO::LOG_LEVEL_ERROR, 'modAccessibleObject::loadCollection() - No valid statement could be found in or generated from the given criteria.'); } return $objCollection; }
/** * Custom collection loader that forces access policy checking. * * {@inheritdoc} */ public static function loadCollection(xPDO & $xpdo, $className, $criteria= null, $cacheFlag= true) { $objCollection= array (); $fromCache = false; if (!$className= $xpdo->loadClass($className)) return $objCollection; $rows= false; $fromCache= false; $collectionCaching = (integer) $xpdo->getOption(xPDO::OPT_CACHE_DB_COLLECTIONS, array(), 1); if (!is_object($criteria)) { $criteria= $xpdo->getCriteria($className, $criteria, $cacheFlag); } if ($collectionCaching > 0 && $xpdo->_cacheEnabled && $cacheFlag) { $rows= $xpdo->fromCache($criteria); $fromCache = (is_array($rows) && !empty($rows)); } if (!$fromCache && is_object($criteria)) { $rows= xPDOObject :: _loadRows($xpdo, $className, $criteria); } if (is_array ($rows)) { foreach ($rows as $row) { modAccessibleObject :: _loadCollectionInstance($xpdo, $objCollection, $className, $criteria, $row, $fromCache, $cacheFlag); } } elseif (is_object($rows)) { $cacheRows = array(); while ($row = $rows->fetch(PDO::FETCH_ASSOC)) { modAccessibleObject :: _loadCollectionInstance($xpdo, $objCollection, $className, $criteria, $row, $fromCache, $cacheFlag); if ($collectionCaching > 0 && $xpdo->_cacheEnabled && $cacheFlag && !$fromCache) $cacheRows[] = $row; } if ($collectionCaching > 0 && $xpdo->_cacheEnabled && $cacheFlag && !$fromCache) $rows =& $cacheRows; } if (!$fromCache && $xpdo->_cacheEnabled && $collectionCaching > 0 && $cacheFlag && !empty($rows)) { $xpdo->toCache($criteria, $rows, $cacheFlag); } return $objCollection; }
/** * Load persistent data from the source for the field(s) indicated. * * @access protected * @param string|array $fields A field name or array of field names to load * from the data source. */ protected function _loadFieldData($fields) { if (!is_array($fields)) { $fields = array($fields); } else { $fields = array_values($fields); } $criteria = $this->xpdo->newQuery($this->_class, $this->getPrimaryKey()); $criteria->select($fields); if ($rows = xPDOObject::_loadRows($this->xpdo, $this->_class, $criteria)) { $row = $rows->fetch(PDO::FETCH_ASSOC); $rows->closeCursor(); $this->fromArray($row, '', false, true); $this->_lazy = array_diff($this->_lazy, $fields); } }
protected function _loadCollection($className, $criteria = null, $cacheFlag = true) { $xpdo =& $this->modx; $objCollection = array(); $fromCache = false; if (!($className = $xpdo->loadClass($className))) { return $objCollection; } $rows = false; $fromCache = false; $collectionCaching = (int) $xpdo->getOption(xPDO::OPT_CACHE_DB_COLLECTIONS, array(), 1); if (!is_object($criteria)) { $criteria = $xpdo->getCriteria($className, $criteria, $cacheFlag); } if (!is_object($criteria) || !($criteria = $this->addDerivativeCriteria($className, $criteria))) { return $objCollection; } if ($collectionCaching > 0 && $xpdo->_cacheEnabled && $cacheFlag) { $rows = $xpdo->fromCache($criteria); $fromCache = is_array($rows) && !empty($rows); } if (!$fromCache && is_object($criteria)) { $rows = xPDOObject::_loadRows($xpdo, $className, $criteria); } if (is_array($rows)) { foreach ($rows as $row) { xPDOObject::_loadCollectionInstance($xpdo, $objCollection, $className, $criteria, $row, $fromCache, $cacheFlag); } } elseif (is_object($rows)) { $cacheRows = array(); while ($row = $rows->fetch(PDO::FETCH_ASSOC)) { xPDOObject::_loadCollectionInstance($xpdo, $objCollection, $className, $criteria, $row, $fromCache, $cacheFlag); if ($collectionCaching > 0 && $xpdo->_cacheEnabled && $cacheFlag && !$fromCache) { $cacheRows[] = $row; } } if ($collectionCaching > 0 && $xpdo->_cacheEnabled && $cacheFlag && !$fromCache) { $rows =& $cacheRows; } } if (!$fromCache && $xpdo->_cacheEnabled && $collectionCaching > 0 && $cacheFlag && !empty($rows)) { $xpdo->toCache($criteria, $rows, $cacheFlag); } return $objCollection; }
/** * Load persistent data from the source for the field(s) indicated. * * @access protected * @param string|array $fields A field name or array of field names to load * from the data source. */ protected function _loadFieldData($fields) { if (!is_array($fields)) $fields= array($fields); else $fields= array_values($fields); $criteria= $this->xpdo->newQuery($this->_class, $this->getPrimaryKey()); $criteria->select($fields); if ($rows= xPDOObject :: _loadRows($this->xpdo, $this->_class, $criteria)) { $row= reset($rows); $this->fromArray($row, '', false, true); $this->_lazy= array_diff($this->_lazy, $fields); } }