Controller_MVCForm::importField PHP Method

importField() public method

Import one field from model into form.
public importField ( string $field, string $field_name = null ) : void | Form_Field
$field string
$field_name string
return void | Form_Field
    public function importField($field, $field_name = null)
    {
        $field = $this->model->hasElement($field);
        if (!$field) {
            return;
        }
        /** @type Field $field */
        if (!$field->editable()) {
            return;
        }
        if ($field_name === null) {
            $field_name = $this->_unique($this->owner->elements, $field->short_name);
        }
        $field_type = $this->getFieldType($field);
        $field_caption = $field->caption();
        $this->field_associations[$field_name] = $field;
        if ($field->listData() || $field instanceof Field_Reference) {
            if ($field_type == 'Line') {
                $field_type = 'DropDown';
            }
        }
        $form_field = $this->owner->addField($field_type, $field_name, $field_caption);
        $form_field->set($field->get());
        $field_placeholder = $field->placeholder() ?: $field->emptyText() ?: null;
        if ($field_placeholder) {
            $form_field->setAttr('placeholder', $field_placeholder);
        }
        if ($field->hint()) {
            $form_field->setFieldHint($field->hint());
        }
        if ($field->listData()) {
            /** @type Form_Field_ValueList $form_field */
            $a = $field->listData();
            $form_field->setValueList($a);
        }
        if ($msg = $field->mandatory()) {
            $form_field->validateNotNULL($msg);
        }
        if ($field instanceof Field_Reference || $field_type == 'reference') {
            $form_field->setModel($field->getModel());
        }
        if ($field->theModel) {
            $form_field->setModel($field->theModel);
        }
        if ($form_field instanceof Form_Field_ValueList && !$field->mandatory()) {
            /** @type string $text */
            $text = $field->emptyText();
            $form_field->setEmptyText($text);
        }
        if ($field->onField()) {
            call_user_func($field->onField(), $form_field);
        }
        return $form_field;
    }

Usage Example

Example #1
0
 function importField($field)
 {
     $formfield = parent::importField($field);
     if (!$formfield) {
         return $formfield;
     }
     $field = $this->model->getElement($field);
     if ($field->hint()) {
         $formfield->setFieldHint($field->hint());
     }
     if ($field->subtitle()) {
         $formfield->owner->add('Order')->move($formfield->owner->add('H3')->set($field->subtitle()), 'before', $field)->now();
     }
     if ($field->intro()) {
         $formfield->aboveField()->add('P')->set($field->intro());
         //,'before',$field)
         //->now();
     }
     $formfield->owner->add('HR');
 }