addListView()
Añade una pestaña o sección con un listado al EditController o PanelController. Se usa dentro de la función createViews() del controlador.
$this->addListView($viewName, $modelName, $viewTitle, $viewIcon)
- $viewName: el identificador o nombre interno de esta pestaña o sección. Por ejemplo: ListProducto.
- $modelName: el nombre del modelo que usará este listado. Por ejemplo: Producto.
- $viewTitle: el título de la pestaña o sección. Será tarducido. Por ejemplo: products.
- $viewIcon: (opcional) el icono a utilizar. Por ejemplo: fas fa-search.
Ejemplo de uso:
protected function createViews() {
// debemos dejar esta llamada a parent del EditController.
parent::createViews();
// añadimos una pestaña con un listado de productos
$this->addListView('ListProducto', 'Producto', 'products');
}
En este ejemplo añadimos una pestaña/sección llamada ListProducto, que usa el modelo Producto (cada una de las líneas del listado será un objeto Producto), tiene el título products (que se traudce automáticamente) y el icono predeterminado.
XMLView
Esta nueva pestaña hará uso de un archivo XMLView con el mismo nombre que la pestaña, es decir, usará el archivo XMLView/ListProducto.xml para saber qué columnas debe mostrar en el listado.
loadData($viewName, $view)
Para poder cargar valores en esta pestaña debemos implementar el método loadData(), que es la función que se llama cuando FacturaScripts quiere cargar los valores a mostrar en las pestañas.
protected function loadData($viewName, $view) {
switch ($viewName) {
case 'ListProducto':
// para este ejemplo vamos a cargar los productos sin fabricante
$where = [new DataBaseWhere('codfabricante', null, 'IS')];
$view->loadData('', $where);
break;
}
}
Como podemos ver, tenemos un switch sobre el parámetro $viewName (el nombre de la pestaña). Así podemos hacer una cosa distinta para cada pestaña. En el caso de la pestaña ListProducto hemos programado la carga de todos los productos sin fabricante.
addColor()
Puede añadir colores a las filas de los listados desde el controlador, para saber más visite "Añadir colores desde el controlador".
Desde PanelController o EditController
$this->listView($viewName)->addColor($value, $status->idestado, $color, $title);
La función addColor() tiene los siguientes parámetros:
- $fieldName: Nombre del campo donde hacer la comprobación, igual a fieldname del xml.
- $value: Valor a comprobar, el fieldName se comprobará con este valor.
- $color: El color a mostrar en la fila.
- $title: Será el texto a mostrar en la leyenda de los colores.