Un controlador es básicamente una página o una opción del menú de FacturaScripts. Si hace clic en el menú 'Almacén -> Productos' estará ejecutando el controlador ListProducto.php ¿Cómo saber qué controlador está ejecutando? Fíjese en la barra de direcciones del navegador.
<?php
namespace FacturaScripts\Plugins\MyNewPlugin\Controller;
use FacturaScripts\Core\Base\Controller;
class MyNewController extends Controller
{
public function getPageData()
{
$pageData = parent::getPageData();
$pageData['title'] = 'MyNewController';
$pageData['menu'] = 'admin';
$pageData['icon'] = 'fas fa-page';
return $pageData;
}
public function privateCore(&$response, $user, $permissions)
{
parent::privateCore($response, $user, $permissions);
$this->setTemplate('MyNewController');
}
}
En este ejemplo hemos añadido esta página al menú admin, con el título MyNewController y el icono fas fa-page. Además, en la función privateCore() hemos indicado que se va a utilizar la plantilla MyNewController, que se corresponde con el archivo MyNewController.html.twig de la carpeta View.
Esta función sirve para indicar de qué forma aparece esta página en el menú, es decir, dentro de qué menú, con qué título e icono. Y será ejecutada por el núcleo de FacturaScripts cada vez que se ejecute el controlador, o bien al activar o actualizar el plugin. Devuelve un array con los siguientes datos:
FacturaScripts no solamente sirve para que usted y sus empleados gestionen su empresa, sino que también permite que pueda ofrecer servicio a sus clientes. Es decir, pueden acceder tanto administradores, empleados o clientes. Por este motivo hay una separación entre lo que unos y otros pueden ver. Y esta separación se traduce en el controlador en el siguiente comportamiento:
Lo habitual es implementar la lógica en la función privateCore().
Puede heredar y personalizar cualquier controlador existente, pero recuerde que debe utilizar un alias antes de heredar. Aquí tiene un ejemplo:
<?php
namespace FacturaScripts\Plugins\MyNewPlugin\Controller;
use FacturaScripts\Core\Controller\EditCliente as ParentController;
class EditCliente extends ParentController
{
}
Fíjese en la línea 'use FacturaScripts\Core\Controller\EditCliente as ParentController;'. Ese as es para utilizar EditCliente con el alias de PanelController. Si no usa un alias tendrá una colisión de nombres al definir la nueva clase, ya que esta se llama igual que la clase de la que deseea heredar.
Necesita identificarse para continuar con esta acción. Haga clic en iniciar sesión o cree una cuenta.
Iniciar sesiónFecha de creación | 27-04-2018 00:00:00 |
Última actualización | 24-05-2020 |
Contador de visitas | 3409 |