Publicado 12-02-2023 Actualizado 13-11-2026 Curso publico

Curso de creación de plugins

Con este curso aprenderás a crear plugins para FacturaScripts: añadir nuevas páginas, listados, formularios, tablas, columnas, generar PDFs, enviar emails, etc.

¿A quién va dirigido?
A cualquier persona con unos conocimientos muy básicos de programación en PHP.

Aun no hay valoraciones públicas para este curso.
Ver valoraciones
Lecciones
34
videos
34
Duración
03:14:39
Alumnos
5
Compra unica
9,99 €

Compra el curso una sola vez y accede a todas las lecciones, exámenes y futuras revisiones.

Comprar para regalar
1
Bloqueada 00:05:11

Introducción

FacturaScripts es prácticamente un framework MVC (Modelo-Vista-Controlador) escrito en PHP. No necesitas aprender otro framework para crear plugins. Tan solo unos conocimientos básicos de programación de PHP. En este curso te enseñaremos a construir plugins completos: páginas,...
2
Bloqueada 00:16:33

Preparar el entorno de desarrollo

Para desarrollar plugins necesitas una instalación de FacturaScripts en tu propio ordenador. No uses nunca la instalación de una empresa real: mientras desarrollas crearás, modificarás y borrarás datos constantemente. 🧰 Lo que necesitas instalar PHP 8.1 o superior, con las...
3
Bloqueada 00:06:05

La estructura de carpetas de FacturaScripts

A continuación detallamos la estructura de archivos y carpetas de FacturaScripts: 📁 Carpeta Core En esta carpeta se encuentra la mayor parte del código de la aplicación: los modelos, las vistas, los controladores y otras clases de la aplicación. Assets: archivos estáticos de...
4
Bloqueada 00:04:15

La estructura de carpetas del plugin

Para comenzar a crear tu propio plugin, lo primero que debes hacer es crear una nueva carpeta dentro del directorio Plugins de tu instalación. El nombre que elijas para esta carpeta será el nombre técnico de tu plugin y debe cumplir estas reglas: empezar siempre por una letra...
5
Bloqueada 00:02:52

El Init.php

El archivo Init.php es opcional: un plugin que solo añade, por ejemplo, tablas, vistas o traducciones funciona sin él. Pero en cuanto tu plugin necesite ejecutar código al cargarse, o cuando el usuario lo instala, actualiza o desinstala, necesitarás un Init.php. En...
6
Bloqueada 00:05:09

Tu primer controlador

Un controlador es, en esencia, una página y una opción del menú de FacturaScripts. Por ejemplo, si haces clic en el menú Almacén → Productos, estarás ejecutando el controlador ListProducto.php. ¿Quieres saber qué controlador se está ejecutando en cada momento? Solo tienes que...
7
Bloqueada 00:04:52

Crear un formulario y recibir los datos

Ahora vamos a añadir un formulario al simulador de alquiler: el usuario escribirá el precio mensual, el número de meses y el porcentaje de comisión, pulsará Calcular y el controlador recibirá los datos, hará el cálculo y mostrará el resultado. 🎨 El formulario:...
8
Bloqueada 00:03:34

Cargar archivos CSS y JavaScript

El AssetManager nos permite añadir archivos CSS y JavaScript a la página. 📁 Dónde colocar los archivos en tu plugin Coloca los archivos CSS en la carpeta Assets/CSS/ de tu plugin.Coloca los archivos JavaScript en la carpeta Assets/JS/ de tu plugin.Si los CSS o JavaScript son...
9
Bloqueada 00:05:14

Las traducciones del plugin

FacturaScripts está traducido a decenas de idiomas, y tu plugin también puede estarlo. Por eso en el código nunca escribimos los textos directamente: usamos claves de traducción, como simulador-alquiler, y cada idioma tiene un archivo con el texto de cada clave. Hasta ahora,...
10
Bloqueada 00:04:57

Creación de modelos

Un modelo en FacturaScripts es una clase PHP que representa un tipo de dato, como un producto, un cliente o, en nuestro caso, un inmueble, y permite crearlo, modificarlo, eliminarlo y buscarlo en la base de datos. Los modelos tienen propiedades que coinciden con las columnas...
11
Bloqueada 00:05:15

Creación de listados y formularios

Ya tenemos el modelo Inmueble, pero el usuario todavía no puede verlo ni editarlo. Para eso FacturaScripts tiene dos controladores extendidos que generan automáticamente el listado y el formulario a partir de un archivo XML: ListController: listados con buscador, ordenación,...
12
Bloqueada 00:09:39

Modelos a fondo

En la lección de modelos creamos un Inmueble muy sencillo. En esta lección lo completamos, creamos un segundo modelo, Contrato, relacionado con los inmuebles y con los clientes de FacturaScripts, y aprendemos a hacer consultas. ✅ Validar los datos con test() Antes de guardar,...
13
Bloqueada 00:08:50

Tests unitarios en tu plugin

📦 En la pestaña Archivos de esta lección puedes descargar Test.zip, con todos los tests del plugin MiInmobiliaria, incluidos los que añadimos en lecciones posteriores. Los tests unitarios son pequeños programas que comprueban automáticamente que tu código hace lo que debe. En...
14
Bloqueada 00:08:33

Las vistas XML a fondo

Los listados y formularios de ListController y EditController se definen en archivos XML de la carpeta XMLView. En la lección de listados y formularios vimos lo básico. En esta lección vemos todas las piezas, creando las vistas de los contratos de MiInmobiliaria: el formulario...
15
Bloqueada 00:06:47

ListController a fondo

ListController es el controlador para listados. Permite una o varias pestañas, cada una con un listado de los registros de un modelo, y usa los archivos XMLView para definir las columnas. En esta lección completamos ListInmueble: además de los inmuebles, tendrá una pestaña con...
16
Bloqueada 00:07:44

EditController a fondo

Es un controlador extendido para editar muy rápidamente los valores de un modelo. Como el resto de controladores extendidos, hace uso de vistas XML. En la lección de listados y formularios creamos EditInmueble con lo mínimo: el modelo y los datos de la página. En esta lección...
17
Bloqueada 00:06:04

Seguridad en tus plugins

Tu plugin se instalará en empresas reales, con datos de clientes, facturas y contratos. Un fallo de seguridad en un plugin afecta a toda la instalación, así que en esta lección repasamos las reglas básicas. La mayoría ya las hemos aplicado en MiInmobiliaria; aquí las vemos...
18
Bloqueada 00:06:11

Prioridades, herencia y extensiones

Hasta ahora hemos creado archivos nuevos: nuestros propios modelos, controladores y vistas. A partir de esta lección vamos a modificar el comportamiento de FacturaScripts: añadir un campo a los clientes, una pestaña en su ficha, la comisión en las facturas… Y todo ello sin...
19
Bloqueada 00:04:36

Añadir una columna nueva a los clientes

Queremos guardar la profesión de cada cliente, un dato útil para una inmobiliaria al estudiar a un posible inquilino. La tabla de clientes es del núcleo, así que no podemos modificarla directamente: usaremos extensiones de la tabla y de sus vistas XML. 1. Extensión de la tabla...
20
Bloqueada 00:05:41

Extender controladores existentes

En la lección anterior añadimos la profesión a los clientes. Ahora vamos a modificar dos páginas del núcleo: En la ficha del cliente (EditCliente), una pestaña con sus contratos.En el listado de clientes (ListCliente), un filtro por profesión. Lo haremos con extensiones de...
21
Bloqueada 00:04:37

Extensiones de modelos

Igual que podemos añadir código a los controladores del núcleo, podemos añadirlo a sus modelos. En MiInmobiliaria queremos dos cosas del modelo Cliente: Dar un valor inicial a la nueva columna profesion y limpiarla de HTML antes de guardarla.Impedir que se borre un cliente que...
22
Bloqueada 00:05:35

Añadir opciones al panel de control

El Panel de control (menú Administrador) reúne la configuración de FacturaScripts en pestañas. Tu plugin puede añadir su propia pestaña: basta con crear un archivo XMLView cuyo nombre empiece por Settings. MiInmobiliaria necesita tres opciones: Si se avisa por email a los...
23
Bloqueada 00:08:19

Campos personalizados en documentos y líneas de documentos

En FacturaScripts también se pueden añadir campos a los documentos de compra y venta (presupuestos, pedidos, albaranes y facturas) y a sus líneas. En MiInmobiliaria añadiremos a los documentos de venta: En la cabecera: el contrato al que corresponde el documento y el...
24
Bloqueada 00:06:08

Modificar los cálculos en documentos

La clase Calculator se encarga de calcular los totales de facturas, albaranes, pedidos y presupuestos: cada vez que creamos o modificamos un documento, se llama internamente a esta clase para calcular su neto, IVA, IRPF, recargo de equivalencia y total. Si queremos que un...
25
Bloqueada 00:04:51

Impresión en PDF

Para generar el PDF de una factura, un albarán, un pedido o un presupuesto se usa la clase ExportManager, la misma que usa FacturaScripts en el botón Imprimir. Usa el formato de impresión configurado por el usuario y, si tiene instalado un plugin de plantillas como...
26
Bloqueada 00:04:26

Envío de emails

Podemos enviar emails desde FacturaScripts con la clase NewMail. Usa la cuenta de correo configurada en el menú Administrador → Email, así que antes de probar esta lección configura allí una cuenta. ✉️ Enviar un email use FacturaScripts\Dinamic\Lib\Email\NewMail; $mail =...
27
Bloqueada 00:03:23

Descargar archivos de MyFiles

Los archivos añadidos por el usuario o generados por los plugins se almacenan en la carpeta MyFiles. Estos archivos no se pueden descargar solamente con poner la ruta en el navegador, se necesita una clave de autorización o token para evitar que terceros puedan descargar...
28
Bloqueada 00:04:13

Ejecutar procesos en el cron

El cron de FacturaScripts ejecuta periódicamente las tareas de todos los plugins activos, siempre que se haya configurado en el servidor o el hosting para que se ejecute, por ejemplo, cada 5 minutos. Si tu plugin necesita hacer algo de forma periódica, el mejor lugar es su...
29
Bloqueada 00:05:34

La cola de trabajos (WorkQueue)

La cola de trabajos permite ejecutar procesos en segundo plano, al final de cada petición, para que el usuario no tenga que esperar a que terminen. Es ideal para tareas que no necesitan ser instantáneas: actualizar contadores, recalcular estados, sincronizar con otros...
30
Bloqueada 00:05:08

Cómo añadir un endpoint a la API

FacturaScripts tiene una API REST que permite a otras aplicaciones consultar y modificar datos. Todos los modelos, también los de tu plugin, están disponibles automáticamente en la API: con MiInmobiliaria activo ya puedes listar, crear o modificar inmuebles en /api/3/inmuebles...
31
Bloqueada 00:04:31

Migraciones y actualizaciones del plugin

Tu plugin no se queda quieto: corregirás errores, añadirás funciones y cambiarás tablas. Y los usuarios actualizarán desde versiones anteriores, con datos que ya existen. En esta lección vemos cómo publicar versiones nuevas sin romper nada. 🔢 La versión del plugin Cada vez que...
32
Bloqueada 00:03:15

Librerías externas: Composer y npm

A veces no hace falta reinventar la rueda: existe una librería que ya hace lo que necesitas. Tu plugin puede usar librerías de Composer, para PHP, y de npm, para CSS y JavaScript. MiInmobiliaria no necesita librerías externas, así que en esta lección usaremos dos ejemplos: la...
33
Bloqueada 00:02:57

Cómo empaquetar el plugin: el zip

📦 En la pestaña Archivos de esta lección puedes descargar el plugin MiInmobiliaria completo, tal como queda al terminar el curso. Para distribuir tu plugin, o instalarlo en otra instalación de FacturaScripts desde el menú Administrador → Plugins, necesitas empaquetarlo en un...
34
Bloqueada 00:03:40

Anexo: cómo crear un widget

Los widgets son los campos que aparecen en las vistas XML: text, number, select, checkbox… En este anexo creamos un widget nuevo de tipo slider (una barra deslizante) para elegir un número entre un mínimo y un máximo, y lo usamos en MiInmobiliaria para el porcentaje de...
Cookies
Usamos cookies necesarias para el funcionamiento del sitio y cookies opcionales para recordar tus preferencias y mejorar tu experiencia. Puedes aceptarlas todas, rechazarlas o configurar tus preferencias

Soporte