コード例 #1
0
ファイル: EavFieldGroup.php プロジェクト: saiber/livecart
 /**
  * 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;
 }
コード例 #2
0
 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);
 }
コード例 #3
0
ファイル: EavObject.php プロジェクト: saiber/livecart
 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;
 }
コード例 #4
0
ファイル: EavFieldManager.php プロジェクト: saiber/livecart
 /**
  * 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;
 }
コード例 #5
0
 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();
 }
コード例 #6
0
ファイル: EavField.php プロジェクト: saiber/livecart
 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);
 }