• 1.- Introducción a la programación de plugins

    FacturaScripts es prácticamente un framework MVC escrito en PHP 5.4 (compatible con versiones superiores, inluida PHP 7.X). Puede conectar tanto a MySQL como a PostgreSQL. La capa gráfica está construida sobre bootstrap para adaptarse a PC, tablet y móvil. Y su sistema de plugins permite modificar el comportamiento de cualquier clase. Los plugins se encuentran en la carpeta plugins, uno por carpeta, y tienen esta estructura de archivos y carpetas: controller/: Contiene los controladores del plugin, uno en cada archivo, con el mismo nombre que la clase del controlador que contienen. Es...
    13-11-2017

  • 1.1.- Diagramas y documentación de las clases

    Aquí encontrarás los diagramas y la documentación de las clases de FacturaScripts 2017. Ten en cuenta que la versión 2018 es la primera en la que hacemos modificaciones profundas en el diseño, y por tanto los cambios serán enormes. autogenerada con apigen. Diagrama de clases del núcleo: Como puedes comprobar las dos clases más importantes son fs_controller, la clase de la que heredan todos los controladores, y que se encarga de la mayor parte del trabajo del núcleo. Y la clase fs_model, de la que heredan todos los modelos. Diagrama de clases que incluye facturacion_base: En este diagrama...
    29-08-2017

  • 2.- Prioridades de plugins

    Lo primero que debe tener claro es el sistema de prioridades por el que se rige FacturaScripts. El último plugin activo tiene más prioridad que el anterior, y así sucesivamente. Cuando se consulta una página, se carga un modelo, una vista html o un archivo javascript, primero se comprueba si está en el plugin con mayor prioridad, si no se encuentra, se continua con el siguiente, etc... Gracias a este sistema podemos modificar el comportamiento de cualquier página, simplemente copiamos el archivo necesario a nuestro plugin, hacemos ahí los cambios, y al activar el plugin, como ha sido el...
    20-08-2017

  • 3.- facturascripts.ini

    Este archivo indica a FacturaScripts los datos y requisitos del plugin. version = 1 ; Indica la versión del plugin, debe ser un número entero. version_url = 'http...' ; Opcional. Una URL donde consultar este archivo facturascripts.ini actualizado, así el actualizador puede comprobar cuando hay actualizaciones. update_url = 'http.....zip' ; Opcional. Una URL de donde descargar la nueva versión del plugin require = 'facturacion_base' ; Opcional. Indica que el plugin facturacion_base es imprescindible para el tuyo.
    20-08-2017

  • 4.- mi_controlador.php

    Todos los controladores heredan de la clase . Y su código se resume en esto: <?php /// la clase se debe llamar igual que el archivo class mi_controlador extends fs_controller { public function __construct() { /// se crea una entrada 'Mi controlador' dentro del menú 'Mio' parent::__construct(__CLASS__, 'Mi controlador', 'mio'); } protected function private_core() { /// tu código php lo pondrás aquí } } Tu código comenzará a ejecutarse en la función private_core()
    20-08-2017

  • 5.- mi_controlador.html (la vista)

    Por defecto se usa el mismo nombre para el archivo de html que para el controlador, pero lo puedes cambiar en cualquier momento en la propiedad template del controlador. Este código HTML se procesa previamente con nuestro motor de plantillas, que permite añadir bucles, condicionales, etc... Ejemplo de código: {noparse}{include="header"} <h1>Tu HTML aquí</h1> {include="footer"}{/noparse} Los archivos header.html y footer.html contienen el código html de la parte superior e inferior de FacturaScripts, es decir, el menú principal y los principales objetos de la...
    20-09-2017

  • 5.1.- La interfaz gráfica: botones, pestañas, tablas...

    Para la interfaz gráfica usamos una combinación de bootstrap 3, bootbox.js y los iconos font-awesome. Boostrap 3: Nos proporciona elementos como botones, pestañas, menús, paneles, ventanas, etc... Tiene una documentación muy completa que puedes ver aquí: Bootbox.js: Bootbox.js nos proporciona ventanas de alerta o de confirmación con el mismo estilo que el resto de elementos de bootstrap. Es muy sencillo, puedes ver los ejemplo aquí: Font-awesome: Nos proporciona un amplio catálogo de iconos que puedes ver aquí:
    29-08-2017

  • 6.- mi_modelo.php

    Todos los modelos heredan de la clase , que es la que se encarga de comprobar la tabla y hacer los ajustes necesarios. Imaginemos una tabla llamada mi_tabla que tiene dos columnas: id (entero y clave primaria) y columna1, que es de tipo varchar(200). Este sería su modelo: <;?php /// la clase se debe llamar igual que el archivo class mi_modelo extends fs_model { public $id; public $columna1; public function __construct($data = FALSE) { parent::__construct('mi_tabla'); /// aquí indicamos el NOMBRE DE LA TABLA if($data) { $this->id = $this->instval($data['id']);...
    20-08-2017

  • 7.- mi_tabla.xml (estructura de la tabla)

    FacturaScripts utiliza los archivos de la carpeta model/table para generar y adaptar la estructura de las tablas. Estos archivos son XML y tienen el siguiente estilo: <?xml version="1.0" encoding="UTF-8"?> <tabla> <columna> <nombre>codserie</nombre> <tipo>character varying(2)</tipo> <nulo>NO</nulo> </columna> <columna> <nombre>descripcion</nombre> <tipo>character varying(100)</tipo> <nulo>YES</nulo> </columna> <restriccion>...
    20-08-2017

  • 8.- Herencia de modelos

    Los modelos de los principales plugins ya permiten herencia de forma muy sencilla. Si por ejemplo deseas extender el modelo factura_cliente, copia el archivo plugins/facturacion_base/model/factura_cliente.php a tu plugin. Este archivo ya realiza la herencia al de la carpeta core, así que simplemente debes reimplementar la función o funciones que desees. <?php require_once 'plugins/facturacion_base/model/core/factura_cliente.php'; class factura_cliente extends FacturaScripts\model\factura_cliente { /// modifica o añade las propiedades o funciones que desees. }
    20-08-2017

  • Consultar la base de datos

    Pese a que FacturaScripts es MVC y el acceso a la base de datos suele hacerse en el modelo, FacturaScripts también permite consultar la base de datos desde los controladores para facilitar el desarrollo, por ejemplo cuando tienes que hacer una consulta concreta que solamente realizas en ese controlador. /// mostramos un mensaje para cada artículo con pvp = 0 $data = $this->db->select("SELECT * FROM articulos WHERE pvp = '0';"); if($data) { foreach($data as $d) { $this->new_message('El artículo '.$d['referencia'].' tiene precio = 0.'); } }
    20-08-2017

  • cron.php

    En este archivo puedes añadir código que se ejecutará cada vez que se ejecute el cron (siempre que el plugin esté activo). <?php class cron_mi_plugin { private $db; private $empresa; public function __construct(&$db, &$empresa) { $this->db = $db; $this->empresa = $empresa; /// tu código aquí } } new cron_mi_plugin($db, $empresa); Recuerda que el archivo que hay que ejecutar es el cron.php de la carpeta de FacturaScripts. Ese se encarga de ejecutar el cron.php de cada plugin. No ejecutes el cron.php del plugin por separado, no funcionará.
    20-08-2017

  • functions.php

    En este archivo puedes definir funciones que podrás usar desde cualquier controlador, modelo o vista. No es necesario ningún include o require hacia este archivo, el núcleo ya se ocupa de cargar todos los archivos functions.php de los plugins activos. <?php function mi_funcion() { /// tu código } ?>
    20-08-2017




Soporte:

FacturaScripts es software libre y gratuito, pero si lo que busca es asesoramiento y soporte profesional, use la sección soporte.

  Soporte

¿Desea ser distribuidor?

Si desa ser distribuidor oficial de FacturaScripts, comience hoy mismo el proceso.

  hágase partner

Redes sociales:

Puede encontrarnos en las principales redes sociales. Y también en google+.





© 2013-2017 FacturaScripts