Cómo usar el widget TreeFilter

Cuando queremos añadir un nuevo filtro de tipo TreeFilter o modificar un filtro ya existente por un filtro TreeFilter a una vista list debemos tener en cuenta si ya existe el controlador de la vista o si será un controlador nuevo.

Extensiones

Si la vista y su controlador ya existen debemos utilizar el sistema de Extensiones de Facturascripts (https://facturascripts.com/publicaciones/las-extensiones-334) para añadir el filtro.

public function createViews(): Closure
{
    return function () {
        if (isset($this->views['ListProducto'])) {
                        $view = $this->views['ListProducto'];                              // Obtenemos la vista para su modificación

            // Reemplazamos el filtro existente por el TreeFilter
            $view->filters['codfamilia'] = new TreeFilter(
                'codfamilia',
                'codfamilia',
                'family',
                'familias',
                'madre',
                'codfamilia', 
                'descripcion',
                []
            );

            // Añadimos un nuevo filtro TreeFilter
            $view->filters['newFilter'] = new TreeFilter(
                'key',
                'field',
                'label',
                'source',
                'field key',
                'source field key',  
                'source field description',
                []
            );
        }
    };
}

Nuevo Controlador

Cuando el filtro deseamos añadirlo a un nuevo controlador, normalmente de un nuevo plugin, debemos añadirlo directamente mediante la creación del objeto filtro y asignarlo a la lista de filtros. Esto es así porque el controlador ListController de los ExtendedController no dispone de un método implícito para añadir este tipo de filtro.

public function createViews()
{
        $newView = $this->addView('viewName', 'model', 'label', 'icon');
        $view->filters['newFilter'] = new TreeFilter(
                'key',
                'field',
                'label',
                'source',
                'field key',
                'source field key',  
                'source field description',
                []
            );
        }
    };
}
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2025 FacturaScripts
0.12644s

Soporte