Settings: opciones del panel de control
En ocasiones queremos leer y escribir información referente a la configuración general o de nuestro plugin en concreto. Para estos casos FacturaScripts ofrece un modelo `Settings` con una serie de funciones de acceso rápido para leer y escribir, además de una forma sencilla de añadir secciones al panel de control mediante archivos en la carpeta XMLView.
Leer datos de Settings
La información de settings se organiza en grupos y propiedades. Cada una de las secciones que ve en el panel de control es un grupo, y cada campo es una propiedad. Si queremos consultar una propiedad podemos usar la función `Tools::settings()`.
Use FacturaScripts\Core\Tools;
$coddivisa = Tools::settings('default', 'coddivisa');
En este ejemplo estamos consultando la divisa predeterminada, que se encuentra en el campo `coddivisa del grupo default`. En otros casos puede que no tengamos un valor almacenado, por lo que podemos establecer un valor predeterminado en el tercer parámetro de la función.
$coddivisa = Tools::settings('default', 'coddivisa', 'EUR');
// si por algún motivo no estuviese guardado un valor de 'coddivisa', se devuelve 'EUR'
Leer desde twig
También podemos consultar esto desde las plantillas html usando la función `settings()`.
{{ settings('default', 'coddivisa') }}
Modificar datos de Settings
Si queremos modificar los datos de settings, podemos usar la función `Tools::settingsSet(), que modifica la propiedad que indiquemos, pero sin guardar los cambios. Para guardarlos en la base de datos debemos usar la función Tools::settingsSave()`.
Tools::settingsSet('default', 'coddivisa', 'USD'); // establecemos la divisa USD como predeterminada
Tools::settingsSave(); // guardamos los cambios
Leer datos del config.php
Algunos datos como el nombre de la base de datos se almacenan en el archivo config.php y no pueden ser modificados desde el programa. Pero pueden ser consultados con la función `Tools::config()`.
$db_name = Tools::config('db_name');
En este ejemplo estamos consultando el nombre de la base de datos. Los nombres de las propiedades se pueden escribir tal cual aparecen en el config.php, en este caso `FS_DB_NAME, o se pueden escribir sin el prefijo FS_` y en minúsculas, para mayor comodidad.
Esta función también admite establecer un valor predeterminado en caso de que no se encuentre en el config:
$mi_propiedad = Tools::config('mi_propiedad', 'valor1');
// si mi_propiedad no está definido en el config, se devuelve el valor 'valor1'
También podemos consultar estas propiedades desde twig con la función `config()`:
{{ config('db_name') }}