/** * Get new EavFieldGroup active record instance * * @return EavFieldGroup */ public static function getNewInstance($className) { if ($className instanceof EavFieldManager) { $className = $className->getClassName(); } $inst = parent::getNewInstance(__CLASS__); $inst->classID->set(EavField::getClassID($className)); return $inst; }
public function getSpecificationFieldSet($loadReferencedRecords = false) { $f = new ARSelectFilter(new EqualsCond(new ARFieldHandle($this->getFieldClass(), 'classID'), EavField::getClassID($this->owner))); if ($this->owner->getStringIdentifier()) { $f->mergeCondition(new EqualsCond(new ARFieldHandle('EavField', 'stringIdentifier'), $this->owner->getStringIdentifier())); } $f->setOrder(new ARFieldHandle($this->getFieldClass(), 'position')); return ActiveRecordModel::getRecordSet($this->getFieldClass(), $f, $loadReferencedRecords); }
public static function getNewInstance(EavAble $parent) { $field = self::getInstanceField($parent); $instance = parent::getNewInstance(__CLASS__); $instance->{$field}->set($parent); $instance->classID->set(EavField::getClassID($parent)); $instance->parent = $parent; $parent->eavObject->set($instance); return $instance; }
/** * Creates a select filter for custom fields * * @param bool $includeParentFields * @return ARSelectFilter */ private function getFieldFilter($class = null) { $classID = $class ? EavField::getClassID($class) : $this->classID; $filter = new ARSelectFilter(new EqualsCond(new ARFieldHandle('EavField', 'classID'), $classID)); if (is_null($class) && $this->stringIdentifier) { $filter->mergeCondition(new EqualsCond(new ARFieldHandle('EavField', 'stringIdentifier'), $this->stringIdentifier)); } $filter->setOrder(new ARFieldHandle('EavFieldGroup', 'position')); $filter->setOrder(new ARFieldHandle('EavField', 'position')); return $filter; }
public function testIndex() { $class = 'Category'; $this->request->set('id', EavField::getClassID($class)); $response = $this->controller->index(); $this->assertIsA($response, 'ActionResponse'); // field list should be empty $this->assertEqual(0, count($response->get('specFieldsWithGroups'))); $field = EavField::getNewInstance($class); $field->save(); // one new field expected $response = $this->controller->index(); $this->assertEqual(1, count($response->get('specFieldsWithGroups'))); // the field should not show up in different category $this->request->set('id', EavField::getClassID('User')); $response = $this->controller->index(); $this->assertEqual(0, count($response->get('specFieldsWithGroups'))); // test creating a group $group = EavFieldGroup::getNewInstance($class); $group->save(); $this->request->set('id', EavField::getClassID($class)); $response = $this->controller->index(); }
public static function getFieldsByClass($className) { $f = new ARSelectFilter(new EqualsCond(new ARFieldHandle('EavField', 'classID'), EavField::getClassID($className))); $f->setOrder(new ARFieldHandle('EavField', 'position')); return self::getRecordSet('EavField', $f); }