Example #1
0
 /**
  * Save new field
  *
  * @param  array $fields
  * @return void
  */
 public function save(array $fields)
 {
     $field = new Table\Fields(['group_id' => $fields['group_id'] != '----' ? (int) $fields['group_id'] : null, 'storage' => $fields['storage'], 'type' => $fields['type'], 'name' => $fields['name'], 'label' => !empty($fields['label']) ? $fields['label'] : null, 'values' => !empty($fields['values']) ? $fields['values'] : null, 'default_values' => !empty($fields['default_values']) ? $fields['default_values'] : null, 'attributes' => !empty($fields['attributes']) ? $fields['attributes'] : null, 'validators' => serialize($this->getValidators()), 'encrypt' => !empty($fields['encrypt']) ? (int) $fields['encrypt'] : 0, 'order' => !empty($fields['order']) ? (int) $fields['order'] : 0, 'required' => !empty($fields['required']) ? (int) $fields['required'] : 0, 'prepend' => (int) $fields['prepend'], 'dynamic' => (int) $fields['dynamic'], 'editor' => !empty($fields['editor']) && strpos($fields['type'], 'textarea') !== false ? $fields['editor'] : null, 'models' => serialize($this->getModels())]);
     $field->save();
     if ($field->storage != 'eav') {
         $this->createFieldTable($field->name, $field->storage);
     }
     $this->data = array_merge($this->data, $field->getColumns());
 }