/**
  * @Route("/edit")
  * @Request({"id"})
  */
 public function editAction($id = '')
 {
     /** @var \Bixie\Formmaker\FormmakerModule $formmaker */
     $formmaker = App::module('bixie/formmaker');
     if (is_numeric($id)) {
         $field = Field::find($id);
     } else {
         $field = Field::create();
         $field->setFieldType($id);
     }
     if (!$field) {
         App::abort(404, __('Field not found.'));
     }
     if (!($type = $formmaker->getFieldType($field->type))) {
         App::abort(404, __('Type not found.'));
     }
     //default values
     $fixedFields = ['multiple', 'required'];
     if (!$field->id) {
         foreach ($type->getConfig() as $key => $value) {
             if (!in_array($key, $fixedFields)) {
                 $field->set($key, $value);
             }
         }
     }
     //check fixed value
     foreach ($fixedFields as $key) {
         if ($type[$key] != -1) {
             $field->set($key, $type[$key]);
         }
     }
     return ['field' => $field, 'type' => $type, 'roles' => array_values(Role::findAll())];
 }
Exemplo n.º 2
0
 public function getFieldsubmissions()
 {
     if (!isset($this->fieldsubmissions)) {
         $fields = $this->form->getFields();
         foreach ($this->data as $submissionvalue) {
             if (isset($fields[$submissionvalue['field_id']])) {
                 $field = $fields[$submissionvalue['field_id']];
             } else {
                 //field might be deleted from form
                 $field = Field::create();
                 $field->setFieldType($submissionvalue['type']);
             }
             $this->fieldsubmissions[$field->slug] = (new Fieldsubmission($field, $submissionvalue))->toFormattedArray();
         }
     }
     return $this->fieldsubmissions;
 }