/** * Returns all asset sources. * * @param string|null $indexBy * @return array */ public function getAllSources($indexBy = null) { if (!isset($this->_sourcesByIds)) { $sourceRecords = AssetSourceRecord::model()->ordered()->findAll(); $this->_sourcesByIds = AssetSourceModel::populateModels($sourceRecords, $indexBy); } if ($indexBy == 'id') { $sources = $this->_sourcesByIds; } else { if (!$indexBy) { $sources = array_values($this->_sourcesByIds); } else { $sources = array(); foreach ($this->_sourcesByIds as $source) { $sources[$source->{$indexBy}] = $source; } } } return $sources; }