/** * Creates and returns calculation rules chain. * * @return CList calculation rules chain */ protected function createChain() { if (!isset($this->_rules)) { $chain = $this->chain(); $this->_rules = new CList(); foreach ($chain as $item) { $rule = $this->createChainRule($item); $this->_rules->add($rule); } } return $this->_rules; }
protected function addValidators() { $validators = new CList(); foreach ($this->rules() as $rule) { if (isset($rule[0], $rule[1])) { $validator = CValidator::createValidator($rule[1], $this->_model, $rule[0], array_slice($rule, 2)); $validators->add($validator); } else { throw new CException(Yii::t('yii', '{class} has an invalid validation rule. The rule must specify attributes to be validated and the validator name.', array('{class}' => get_class($this)))); } } return $validators; }
public function createValidators() { $validators = new CList(); $rules = $this->rules(); if ($this->addDefaultRules) { $rules = array_merge($rules, $this->defaultRules()); } foreach ($rules as $rule) { if (isset($rule[0], $rule[1])) { // attributes, validator name $validators->add(CValidator::createValidator($rule[1], $this, $rule[0], array_slice($rule, 2))); } else { throw new CException(Yii::t('yii', '{class} has an invalid validation rule. The rule must specify attributes to be validated and the validator name.', array('{class}' => get_class($this)))); } } return $validators; }
/** * @param array $rules * @return CList * @throws CException */ private function createValueValidatorsByRules(array $rules) { $validators = new CList(); foreach ($rules as $rule) { if (isset($rule[0], $rule[1])) { if ($rule[1] != 'unique') { $validators->add(CValidator::createValidator($rule[1], $this, $rule[0], array_slice($rule, 2))); } } else { throw new CException(Zurmo::t('ReportsModule', '{class} has an invalid validation rule. The rule must specify ' . 'attributes to be validated and the validator name.', array('{class}' => get_class($this)))); } } return $validators; }
/** * @param array attributes key for get. * @return array */ public function getEavAttributes($attributes = array()) { // Get all attributes if not specified. if (empty($attributes)) { $attributes = $this->getSafeAttributesArray(); } // Values array. $values = array(); // Queue for load. $loadQueue = new CList(); foreach ($attributes as $attribute) { // Check is safe. if ($this->hasSafeAttribute($attribute)) { $values[$attribute] = $this->attributes->itemAt($attribute); // If attribute not set and not load, prepare array for loaded. if (!$this->preload && $values[$attribute] === NULL) { $loadQueue->add($attribute); } } } // If array for loaded not empty, load attributes. if (!$this->preload && $loadQueue->count() > 0) { $this->loadEavAttributes($loadQueue->toArray()); foreach ($loadQueue as $attribute) { $values[$attribute] = $this->attributes->itemAt($attribute); } } // Delete load queue. unset($loadQueue); // Return values. return $values; }
/** * Lists all models. */ public function actionIndex() { $user = User::model()->findByAttributes(array("username" => Yii::app()->user->getId())); $meetingsId = new CList(); $invitations = VCInvitation::model()->findAllByAttributes(array("invitee_id" => $user->id)); foreach ($invitations as $inv) { $meetingsId->add($inv->videoconference_id); } $meetings = VideoConference::model()->findAllByAttributes(array("moderator_id" => $user->id)); foreach ($meetings as $meeting) { $meetingsId->add($meeting->id); } //$dataProvider = new CActiveDataProvider('VideoConference'); $this->render('index', array('meetingsId' => $meetingsId->toArray())); }
/** * Creates validator objects based on the specification in rules of the EAV attribute. This method is mainly used * internally. * @return CList Validators built based on EavAttribute::getEavValidatorList(). * @throws CException If the instantiated model does not support EAV attributes. */ public function createEavValidators() { if (!$this->eavEnable) { throw new CException('The method ' . __METHOD__ . '() should not be called. The instantiated model does not support EAV attributes.'); } else { $validators = new CList(); foreach ($this->eavAttributeInstances as $attr) { $validatorList = $attr->getEavValidatorList(); foreach ($validatorList as $validator => $params) { $validators->add(CValidator::createValidator($validator, $this, $attr->name, $params)); } } return $validators; } }
public static function findRecursive($dir, $filters = NULL, $depth = -1, $limit = 0) { if (!$filters instanceof EFileFilters) { $filters = new EFileFilters($filters); } $list = new CList(); //TODO: $dir = new DirectoryIterator(dirname(__FILE__)); foreach ($dir as $fileinfo) {} $handle = opendir($dir); while (($fileName = readdir($handle)) !== FALSE) { if ($limit > 0 && $list->count >= $limit) { break; } if ($fileName === '.' || $fileName === '..') { continue; } $file = EFile::getInstance($dir . DIRECTORY_SEPARATOR . $fileName); //TODO: подумать о сортировке прямо в цикле поиска if ($filters->run($file)) { if ($file->isDir && $depth) { $list->mergeWith(self::findRecursive($file->path, $filters, $depth - 1, $limit - $list->count)); } else { $list->add($file); } } } closedir($handle); return $list; }