GcDevelopment\Form\DocumentType::addProperty PHP Метод

addProperty() публичный Метод

Add property sub form
public addProperty ( mixed $property ) : DocumentType
$property mixed \Gc\Property\Model|array
Результат DocumentType
    public function addProperty($property)
    {
        if (!is_array($property) and !$property instanceof Property\Model) {
            return $this;
        }
        $fieldsets = $this->getProperties();
        $name = new Element\Text('name');
        $identifier = new Element('identifier');
        $tab = new Element\Select('tab');
        $tab->setAttribute('class', 'select-tab')->setValueOptions(array());
        $datatype = new Element\Select('datatype');
        $datatype->setAttribute('class', 'select-datatype')->setValueOptions($this->datatypeCollection->getSelect());
        $description = new Element\Text('description');
        $required = new Element\Checkbox('required');
        $required->setCheckedValue('1')->setAttribute('id', 'required')->setAttribute('class', 'input-checkbox');
        $propertyId = new Element\Hidden('property_id');
        if ($property instanceof Property\Model) {
            $name->setValue($property->getName());
            $identifier->setValue($property->getIdentifier());
            $tab->setValue($property->getTabId());
            $datatype->setValue($property->getDatatypeId());
            $description->setValue($property->getDescription());
            $required->setValue((string) $property->isRequired());
            $propertyId->setValue($property->getId());
            $propertyFieldsetName = $property->getId();
        } else {
            $name->setValue($property['name']);
            $identifier->setValue($property['identifier']);
            $tab->setValue($property['tab']);
            $datatype->setValue($property['datatype']);
            $description->setValue($property['description']);
            $required->setValue((string) (!empty($property['isRequired'])));
            $propertyId->setValue(str_replace('property', '', $property['id']));
            $propertyFieldsetName = $property['id'];
        }
        $propertyForm = new FieldSet($propertyFieldsetName);
        $propertyForm->add($propertyId);
        $propertyForm->add($name);
        $propertyForm->add($identifier);
        $propertyForm->add($tab);
        $propertyForm->add($datatype);
        $propertyForm->add($description);
        $propertyForm->add($required);
        $fieldsets->add($propertyForm);
        $this->getInputFilter()->get('properties')->add(array('type' => 'Zend\\InputFilter\\InputFilter', 'name' => array('name' => 'name', 'required' => true, 'validators' => array(array('name' => 'not_empty'))), 'identifier' => array('name' => 'identifier', 'required' => true, 'validators' => array(array('name' => 'not_empty'), array('name' => 'regex', 'options' => array('pattern' => parent::IDENTIFIER_PATTERN)))), 'tab' => array('name' => 'tab', 'required' => true, 'validators' => array(array('name' => 'not_empty'))), 'datatype' => array('name' => 'datatype', 'required' => true, 'validators' => array(array('name' => 'not_empty'))), 'description' => array('name' => 'description', 'required' => false, 'allow_empty' => true), 'required' => array('name' => 'required', 'required' => false, 'allow_empty' => true)), $propertyFieldsetName);
        return $this;
    }

Usage Example

Пример #1
0
 /**
  * Test
  *
  * @return void
  */
 public function testAddPropertyWithoutValidData()
 {
     $this->assertInstanceOf('GcDevelopment\\Form\\DocumentType', $this->object->addProperty('string'));
 }