1. Inicio
  2. Documentos
  3. JavierForm
  4. Actualizar librería
  5. Nuevo input

Nuevo input

Agregar la constante del nuevo tipo en ConstantesFormInputType.php, para este caso de ejemplo agregamos el tipo color

class ConstantesFormInputType{
    const ID = "id";
   ...
    const NUMBER = "number";
    const TEXT = "text";
    const COLOR = "color";
    ...
}

En InputBaseFactory, agregar el nuevo método del nuevo tipo de input

     public function mColor($model_input,$note=null,$required=null,$css = null){
        return $this->inputModelBase($model_input,$note,$this->requiredDefault($required),ConstantesFormInputType::COLOR,$css);
    }

Dependiendo del caso, si es necesario crear otro tipo modelBase, en este caso varía bastante, así que creamos un nueva función inputColorModelBase para model que llamara a una nueva función inputColorBase del tipo mas primitivo

En este caso también necesitaremos un nuevo view, agregamos el nuevo view viewInputColor, la clase InputBaseFactory quedaría así ( solo muestro lo que cambiaría)

<?php
...
class InputBaseFactory{
...
    public $viewInputColor ;
...
    public function mColor($model_input,$note=null,$required=null,$css = null){
        return $this->inputColorModelBase($model_input,$note,$this->requiredDefault($required),ConstantesFormInputType::COLOR,$css);
    }
...
  protected function inputColorModelBase($model_input,$note,$required,$type_form,$css){
        return $this->inputColorBase(
            ...
        );
    }
....
    protected function inputColorBase($id,$label,$maxlength,$note,$required,$type_form,$type_column,$css,$config_origin){

        $label = $this->getLabel($label,$id);

        array_push($this->arrayInputs,
            [
                $this->viewInputColor,
                ...
            ]);

        ....
        return $buildInputForm;
    }

Luego dependiendo quien use el Factory, debe indicar de donde tomar las view, para la librería por defecto lo usa InputModalFactory

class InputModalFactory extends InputBaseFactory {
...
    public $viewInputColor = 'ruta.al.input_color_modal';
...
}

Agregar el archivo blade junto a los otros input y quitar los parámetros que no aplicaría a esta vista.