/** * Creates a option field for the provided permission * @param zibo\library\security\model\Permission $permission * @return zibo\library\html\form\field\Field */ public function createField(Permission $permission = null) { $name = $this->name . '[' . $this->role->getRoleName() . ']'; $field = $this->fieldFactory->createField(FieldFactory::TYPE_OPTION, $name, $permission); $field->setKeyDecorator(new PermissionCodeDecorator()); $field->setIsMultiple(true); return $field; }
/** * Creates an form list field * @param zibo\library\html\form\field\FieldFactory $factory Factory for form fields * @param array $options Array with the options for the field * @param string $name Name for the field * @param mixed $value Value for the field * @return zibo\library\html\form\field\Field */ private function createListField(FieldFactory $factory, array $options, $name, $value = null) { $field = $factory->createField(FieldFactory::TYPE_LIST, $name, $value); $field->setOptions($options); return $field; }
/** * Creates a form field for the provided model relation field * @param zibo\library\html\form\field\FieldFactory $fieldFactory Instance of the field factory * @param zibo\library\orm\model\ModelMeta $meta Meta of the model of the relation field * @param zibo\library\orm\definition\field\RelationField $field Definition of the relation field * @param mixed $value Value for the form field * @return zibo\library\html\form\field\Field */ protected function createFormFieldFromRelationField(FieldFactory $fieldFactory, ModelMeta $meta, RelationField $field, $value) { $relationModel = $meta->getRelationModel($field->getName()); $list = $relationModel->getDataList(); if (!is_array($value) && is_object($value)) { $value = $value->id; } $formField = $fieldFactory->createField(FieldFactory::TYPE_LIST, $field->getName(), $value); $formField->setOptions($list); if ($field instanceof HasManyField) { $formField->setIsMultiple(true); $formField->setShowSelectedOptionsFirst(true); } else { $formField->addEmpty('---', ''); } return $formField; }