PHPCG es un generador CRUD desarrollado en PHP puro para construir su panel de administración Bootstrap completo utilizando una interfaz de usuario visual.
PHPCG es adecuado tanto para no programadores como para programadores avanzados de PHP, que tendrán acceso a un código limpio y bien organizado para que puedan aprovechar todo su potencial.
PHPCG es capaz de analizar su base de datos y extraer tablas, campos y cualquier tipo de relación de forma inteligente.
El motor CRUD se basa en PHP PDO y es totalmente compatible con los siguientes sistemas de gestión de bases de datos relacionales (RDBMS):
MySQL
MariaDB
Oracle
Firebird
PostgreSQL
A continuación, puede utilizar los datos de la base de datos analizados para generar su panel de administración de usuarios:
Listas paginadas (CRUD READ)
filtrado de registros, incluso con tablas relacionales internas/externas
clasificación
edición avanzada in situ (texto, selección, booleana, fecha y hora,...)
tablas anidadas
tablas de datos externas (relaciones externas)
exportación a formatos Excel/CSV/PDF/PRINT
Crear y actualizar formularios (CRUD CREATE/UPDATE)
formularios construidos con PHP Form Builder, conocido por su robustez y fiabilidad
Todo tipo de campos
Integración automática de los mejores plugins jQuery para mejorar la experiencia del usuario (selección y radio personalizadas, editor de texto enriquecido, cargador de archivos, selectores, ...)
listas desplegables con contenido inteligente y personalizable
cargar archivos/imágenes con recorte/redimensionado y generación de miniaturas personalizables
validación automática según el tipo de datos personalizables
Disposición eficaz y sencilla - Posibilidad de agrupar los campos en 2 y 3 columnas
Borrar formularios (CRUD DELETE)
Eliminación en cascada de registros dependientes
Mostrar el número de registros dependientes que se borrarán
Consejos rápidos
He aquí un breve vídeo de presentación que muestra cómo funciona el Generador CRUD de PHP de la A a la Z.
Para crear su base de datos relacional le recomendamos que eche un vistazo a:
PHP 7.4+ con el controlador PDO, las extensiones mb_string y curl habilitadas. La extensión curl de PHP debe estar autorizada para enviar peticiones al servidor de licencias.
La carpeta "generator" sólo es necesaria para construir y editar su panel de administración Bootstrap.
Si utiliza un servidor local + un servidor remoto ("servidor de producción"): Puede
utilizar el generador local para crear su panel de administración y, a continuación, cargar las carpetas "admin" y "conf" en su servidor remoto.
crear el panel de administración directamente desde su servidor de producción.
La 2ª forma es el método recomendado.
Si no utiliza un servidor local: Suba todas las carpetas necesarias y construya su panel de administración CRUD directamente desde el generador remoto.
Cargue las carpetas necesarias* en su servidor tal y como se describe en la sección"estructura del paquete".
Si instala el Generador PHP CRUD dentro de una subcarpeta
(en otras palabras, si las carpetas admin, class, conf, generator, ... no están en la raíz de su proyecto), debe editar admin/.htaccess para evitar errores 404:
abra /admin/.htaccess en su editor de código
añada su subcarpeta a la RewriteRule. Por ejemplo RewriteRule . /su_carpeta/admin/index.php [QSA,L]
2Abra el instalador- install/index.php - en su navegador. Si utiliza un servidor local + un servidor remoto, deberá ejecutar el instalador en ambos. Más información disponible en la sección Instalación/Registro Tendrá que introducir la configuración de conexión a la base de datos para el servidor localhost o de producción + información general esencial.
3Ya está todo listo para generar su panel de administración utilizando el generador CRUD. Abra el generador - generator/generator. php - en su navegador.
Instalación/Registro
Si utiliza un servidor local + un servidor remoto, deberá ejecutar el instalador en ambos.
¿Qué hace el instalador?
El instalador:
Comprueba la compatibilidad de su servidor (versión PHP, módulos disponibles, derechos blancos, ...)
Pruebe y registre sus credenciales de conexión a la base de datos
Comprueba y registra su licencia
Crea una tabla MySQL con la configuración de su licencia
Si encuentra algún error
Como con cualquier programa PHP, puede encontrar problemas durante la instalación o el arranque inicial. Esto no significa que el programa esté estropeado, sino que necesita configurar su servidor correctamente para utilizarlo.
Si ocurriera:
En primer lugar, compruebe que su servidor cumple los requisitos (versión de PHP, reescritura habilitada, ...)
Este archivo contiene algunos ajustes globales que se pueden personalizar
Para cambiar estos ajustes, abra el Generador en su navegador y haga clic en la pestaña Configuración.
Proyecto
Nombre del sitio web
El nombre de su proyecto que aparece en la cabecera del panel de control del administrador.
Logo Admin
El logotipo de su proyecto aparece en la cabecera del panel de control del administrador.
Seguridad
Bloquear el generador
Permite bloquear/desbloquear el acceso al generador. Si el generador está bloqueado, el acceso está protegido por una página de identificación. Deberá introducir su correo electrónico y su código de compra para acceder a ella.
Depuración
Mostrar los errores de la base de datos
Elija "Sí" para mostrar los detalles cuando una consulta a la base de datos encuentre un error.
Simular y depurar
Si se activa, se simularán (NO se ejecutarán) todas las consultas de inserción/actualización/eliminación y se mostrarán en pantalla los detalles de todas las consultas de la base de datos.
Monitorización de errores PHP
Habilitar la monitorización de ERRORES PHP
elija "Sí" para activar la monitorización de errores PHP y recibir un correo electrónico cada vez que se produzca un error en el panel de administración.
NIVEL DE ERROR
Dispone de 3 niveles de error AVISO + ADVERTENCIA + ERROR FATAL|DESCONOCIDO, ADVERTENCIA + ERROR FATAL|DESCONOCIDO, ERROR FATAL|DESCONOCIDO.
Correo electrónico
La(s) dirección(es) de correo electrónico a la(s) que desea que se envíen los errores.
Estilos
Tema Bootstrap
Seleccione uno de los muchos temas disponibles en la lista desplegable.
Estilo de la barra de navegación
Estilo del menú de navegación superior del panel de administración.
Estilo de barra lateral
Estilo de la barra lateral del panel de administración.
Clase CSS de las columnas filtradas
En el panel de administración, las columnas filtradas se marcan con un estilo específico de su elección. Aquí puede introducir una clase CSS de Bootstrap y ajustar la opacidad. Por ejemplo: bg-danger bg-opacity-10
Estilo de los selectores de fecha yhora
Estilo de los selectores de fecha y hora ("Predeterminado" o "Material Design").
Clase de botones por defecto
Clase CSS de Bootstrap para los botones secundarios del panel de administración. Por ejemplo: text-bg-light
Fondo por defecto de los encabezados de tabla
Clase CSS de Bootstrap para los encabezados de tabla del panel de administración. Por ejemplo: text-bg-dark
Interfaz de usuario (UI)
Posición de los botones Admin ACTION
Elija si desea mostrar los botones de edición de registros (ver/editar/eliminar) a la izquierda o a la derecha en las listas READ del administrador.
Habilitar la posibilidad de cambiar los estilos desde el panel de control del administrador
Si está activada, cada usuario puede elegir su tema y los colores de la barra de navegación. Sus preferencias se almacenan en el navegador y no afectan a los demás usuarios.
Activar filtros
Cuando un usuario del panel de administración establece un filtro, éste puede aplicarse inmediatamente o tras hacer clic en el botón "filtrar", como desee.
Contraer las categorías inactivas de la barralateral
Elija si desea que la barra lateral de administración se comporte como un menú en acordeón o si varias categorías pueden permanecer desplegadas al mismo tiempo.
Visualización de tablas de datos
Elija si desea mostrar los datos de la tabla en la parte visible de la página con una barra de desplazamiento interna, o en una tabla de altura ilimitada utilizando la barra de desplazamiento del navegador.
Mostrar resultados de búsqueda
Muestre los resultados de la búsqueda todos en la misma página, o utilizando resultados paginados.
Restricción de contraseña para cuentas de nuevos usuarios
Elija el nivel mínimo de seguridad para las contraseñas de los usuarios administradores.
Ajustes de idioma
Idioma
El idioma principal del panel de control del administrador.
Traducción fecha/hora para listas Admin
Establece el PHP Locale::setDefault para auto-traducir fechas PHP
Zona horaria
Su zona horaria
Idioma de los selectores de fecha yhora
Los idiomas disponibles se encuentran en class/phpformbuilder/plugins/pickadate/lib/compressed/translations/
Lenguaje de validación de formularios en vivo (JavaScript)
Los idiomas disponibles se encuentran en class/phpformbuilder/plugins/formvalidation/js/locales
Lenguaje de validación de formularios del lado del servidor (PHP)
Proteja el acceso al Generador con una página de inicio de sesión
Para proteger el acceso al generador:
Abra el Generador - generator/generator.php - en su navegador
Abra la pestaña Configuración
Fije Bloquear el generador en Sí
Hecho - cuando abra generator/generator.php en su navegador. Será redirigido a la página de inicio de sesión. Introduzca su correo electrónico de registro y su código de compra para iniciar sesión.
Panel principal
Al abrir el Generador CRUD, la aplicación le da acceso a todas sus funciones principales.
Elija la tabla que desee configurar y, a continuación, pulse uno de los tres botones disponibles para crear o editar su Lista de lectura de administración, Crear/actualizar formularios o Eliminar formularios para la tabla elegida.
Desde esta pestaña puede configurar todo lo necesario para generar la lista de lectura de la tabla seleccionada. Para más información consulte este tutorial, que muestra paso a paso cómo crear las Listas de Lectura de su panel de administración.
Filtros de listas
Pulse el botón"Añadir filtro" en el formulario del generador de listas de lectura para añadir un nuevo filtro.
Añadirá un nuevo filtro a su lista.
PHPCG le ofrece dos tipos de filtros:
Filtros simples
Sólo tiene que elegir el campo a filtrar en la lista desplegable.
Filtros avanzados
Los filtros avanzados son útiles:
si desea mostrar dos o más valores en la lista desplegable del admin. Por ejemplo, se muestran el nombre y los apellidos, y el valor filtrado es el ID.
si desea filtrar valores de relaciones externas.
Para utilizar filtros avanzados, es necesario introducir parámetros de consulta con uniones.
Dispone de un botón de ayuda para construir su consulta, así como de un botón de vista previa que le permite ver la lista desplegable generada y comprobar su validez.
Puede elegir el tema de Bootstrap y los colores de la barra de navegación en la pestaña Configuración del generador CRUD.
A continuación, cada usuario del panel de control puede elegir individualmente, desde el administrador y según sus preferencias, su tema y colores preferidos, que sólo se aplicarán en su propio navegador (almacenados como cookies).
Temas Bootstrap y CSS
Si usted es un desarrollador y utiliza Gulp + SASS, los archivos fuente están disponibles, listos para usar y bien organizados:
Usuariosde SASS: todas las fuentes de SASS están disponibles
Abra el generador en su navegador y haga clic en la pestaña"Módulo de autenticación".
El instalador creará las tablas users y users_profiles
También tendrá que introducir la información del administrador principal.
El administrador principal puede entonces gestionar usuarios y perfiles en el panel de administración.
Reinstalar/actualizar el módulo de autenticación del usuario administrador
Si añade algunas tablas a su panel de administración después de haber instalado el módulo de autenticación de usuarios, tendrá que actualizar la tabla users_profiles.
Para ello, tiene dos posibilidades:
1 - reinstalar con el instalador automático
Desactivar el módulo del generador
Desinstalar el módulo del generador
Borre admin/secure/install/install. lock de su servidor
Elimine la tabla"users" y la tabla"users_profiles" de su base de datos.
Vuelva a iniciar el instalador y siga el proceso
2 - Actualizar con una simple consulta SQL
Cuando instala/reinstala el módulo de autenticación, se modifica la tabla users_profiles utilizada por el generador CRUD de PHP para gestionar los derechos de los usuarios. Para cada tabla de su base de datos utilizada en el panel de administración, se crean cuatro campos:
leer_tabla
actualizar_tabla
crear_borrar_tabla
constraint_query_table
En lugar de utilizar el instalador automático, puede añadir los cuatro campos con una simple consulta MySQL. El resultado será exactamente el mismo que utilizando el instalador.
Copie / pegue la consulta siguiente en su interfaz de gestión de base de datos (es decir: phpmyadmin) para añadir los cuatro campos a la tabla users_profiles.
Sustituya users_profiles por el nombre de su tabla users_profiles, que puede tener un prefijo.
Sustituya _table por el nombre de la tabla que desea añadir al módulo de autenticación.
ALTER TABLE `users_profiles`
ADD `r_table` BOOLEAN NOT NULL DEFAULT TRUE AFTER `profile_name`,
ADD `u_table` BOOLEAN NOT NULL DEFAULT TRUE AFTER `r_table`,
ADD `cd_table` BOOLEAN NOT NULL DEFAULT TRUE AFTER `u_table`,
ADD `cq_table` VARCHAR(255) NULL DEFAULT '' AFTER `cd_table`;
Todas las operaciones se realizan en el mismo archivo:
Protegido por el módulo de autenticación de usuarios y gestión de derechos
Obtener registros para rellenar previamente el formulario
Crear y mostrar el formulario, incluyendo todos los plugins (seleccionar desplegables, selectores, cargadores, ...)
Validación PHP
Actualizar los registros de la base de datos o mostrar los errores si se contabilizan valores erróneos
<?php
use phpformbuilder\Form;
use phpformbuilder\Validator\Validator;
use phpformbuilder\database\DB;
use common\Utils;
use secure\Secure;
include_once ADMIN_DIR . 'secure/class/secure/Secure.php';
$debug_content = '';
/* =============================================
validation if posted
============================================= */
if ($_SERVER["REQUEST_METHOD"] == "POST" && Form::testToken('form-edit-actor') === true) {
$validator = Form::validate('form-edit-actor', FORMVALIDATION_PHP_LANG);
$validator->required()->validate('first_name');
$validator->required()->validate('last_name');
$validator->required()->validate('last_update');
if (isset($_POST['last_update_submit'])) {
$validator->date()->validate('last_update_submit');
} else {
$validator->date()->validate('last_update');
}
// check for errors
if ($validator->hasErrors()) {
$_SESSION['errors']['form-edit-actor'] = $validator->getAllErrors();
} else {
require_once CLASS_DIR . 'phpformbuilder/database/db-connect.php';
require_once CLASS_DIR . 'phpformbuilder/database/DB.php';
$db = new DB(DEBUG);
$db->setDebugMode('register');
$values = array();
$values['first_name'] = $_POST['first_name'];
$values['last_name'] = $_POST['last_name'];
$values['last_update'] = $_POST['last_update'];
$where = $_SESSION['actor_editable_primary_keys'];
// begin transaction
$db->transactionBegin();
try {
// update actor
if (DEMO !== true && !$db->update('actor', $values, $where, DEBUG_DB_QUERIES)) {
$error = $db->error();
throw new \Exception($error);
} else {
// get records from film_actor
$film_actor_current_records = array();
// Array with film.film_id
$film_actor_records_to_add = array();
// Array with film_actor.actor_id
$film_actor_records_to_delete = array();
$from = 'film_actor';
$columns = array('film_id');
$where = array('actor_id' => $_SESSION['actor_editable_primary_keys']['actor.actor_id']);
$db->select($from, $columns, $where, array(), DEBUG_DB_QUERIES);
$db_count = $db->rowCount();
if (!empty($db_count)) {
while ($row = $db->fetch()) {
$film_actor_current_records[] = $row->film_id;
}
}
foreach ($_POST['ext_film'] as $film_value) {
if (!in_array($film_value, $film_actor_current_records)) {
$film_actor_records_to_add[] = $film_value;
}
}
foreach ($film_actor_current_records as $film_value) {
if (!in_array($film_value, $_POST['ext_film'])) {
$film_actor_records_to_delete[] = $film_value;
}
}
// insert records in film_actor
foreach ($film_actor_records_to_add as $value) {
$values = array();
$values['actor_id'] = $_SESSION['actor_editable_primary_keys']['actor.actor_id'];
$values['film_id'] = $value;
if (DEMO !== true && $db->insert('film_actor', $values, DEBUG_DB_QUERIES) === false) {
$error = $db->error();
throw new \Exception($error);
}
}
// delete records from film_actor
foreach ($film_actor_records_to_delete as $film_id_value) {
$where = array();
$where['actor_id'] = $_SESSION['actor_editable_primary_keys']['actor.actor_id'];
$where['film_id'] = $film_id_value;
if (DEMO !== true && !$db->delete('film_actor', $where, DEBUG_DB_QUERIES)) {
$error = $db->error();
throw new \Exception($error);
}
}
// ALL OK
if (!DEBUG_DB_QUERIES) {
$db->transactionCommit();
$_SESSION['msg'] = Utils::alert(UPDATE_SUCCESS_MESSAGE, 'alert-success has-icon');
// reset form values
Form::clear('form-edit-actor');
// redirect to list page
if (isset($_SESSION['active_list_url'])) {
header('Location:' . $_SESSION['active_list_url']);
} else {
header('Location:' . ADMIN_URL . 'actor');
}
// if we don't exit here, $_SESSION['msg'] will be unset
exit();
} else {
$debug_content .= $db->getDebugContent();
$db->transactionRollback();
$_SESSION['msg'] = Utils::alert(UPDATE_SUCCESS_MESSAGE . '<br>(' . DEBUG_DB_QUERIES_ENABLED . ')', 'alert-success has-icon');
}
}
} catch (\Exception $e) {
$db->transactionRollback();
$msg_content = DB_ERROR;
if (DEBUG) {
$msg_content .= '<br>' . $e->getMessage() . '<br>' . $db->getLastSql();
}
$_SESSION['msg'] = Utils::alert($msg_content, 'alert-danger has-icon');
}
} // END else
} // END if POST
// register editable primary keys, which are NOT posted and will be the query update filter
// $params come from data-forms.php
// replace 'fieldname' with 'table.fieldname' to avoid ambigous query
$where_params = array_combine(
array_map(function ($k) {
return 'actor.' . $k;
}, array_keys($params)),
$params
);
$_SESSION['actor_editable_primary_keys'] = $where_params;
if (!isset($_SESSION['errors']['form-edit-actor']) || empty($_SESSION['errors']['form-edit-actor'])) { // If no error registered
$from = 'actor';
$columns = '*';
$where = $_SESSION['actor_editable_primary_keys'];
// if restricted rights
if (ADMIN_LOCKED === true && Secure::canUpdateRestricted('actor')) {
$where = array_merge($where, Secure::getRestrictionQuery('actor'));
}
$db = new DB(DEBUG);
$db->setDebugMode('register');
$db->select($from, $columns, $where, array(), DEBUG_DB_QUERIES);
if ($db->rowCount() < 1) {
if (DEBUG) {
exit($db->getLastSql() . ' : No Record Found');
} else {
exit('No Record Found');
}
}
if (DEBUG_DB_QUERIES) {
$debug_content .= $db->getDebugContent();
}
$row = $db->fetch();
$_SESSION['form-edit-actor']['actor_id'] = $row->actor_id;
$_SESSION['form-edit-actor']['first_name'] = $row->first_name;
$_SESSION['form-edit-actor']['last_name'] = $row->last_name;
$_SESSION['form-edit-actor']['last_update'] = date('Y-m-d H:i');
}
$_SESSION['form-edit-actor']['ext_film'] = array();
$from = 'film_actor';
$columns = array('film_id');
$where = array('actor_id' => $_SESSION['actor_editable_primary_keys']['actor.actor_id']);
$db = new DB();
$db->select($from, $columns, $where, array(), DEBUG_DB_QUERIES);
if (DEBUG_DB_QUERIES) {
$debug_content .= $db->getDebugContent();
}
$db_count = $db->rowCount();
if (!empty($db_count)) {
while ($row = $db->fetch()) {
$_SESSION['form-edit-actor']['ext_film'][] = $row->film_id;
}
}
// $params come from data-forms.php
$pk_url_params = http_build_query($params, '', '/');
$form = new Form('form-edit-actor', 'horizontal', 'novalidate');
$form->setAction(ADMIN_URL . 'actor/edit/' . $pk_url_params);
$form->startFieldset();
// actor_id --
$form->setCols(2, 10);
$form->addInput('hidden', 'actor_id', '');
// first_name --
$form->setCols(2, 10);
$form->addInput('text', 'first_name', '', 'First Name', 'required');
// last_name --
$form->addInput('text', 'last_name', '', 'Last Name', 'required');
// last_update --
$form->addInput('hidden', 'last_update', date('Y-m-d H:i'));
// external relation: actor => film_actor => film;
$from = 'film';
$columns = 'title, film_id';
$where = false;
$extras = array(
'select_distinct' => true
);
$db = new DB();
$db->select($from, $columns, $where, $extras, DEBUG_DB_QUERIES);
if (DEBUG_DB_QUERIES) {
$debug_content .= $db->getDebugContent();
}
$db_count = $db->rowCount();
if (!empty($db_count)) {
$values = array();
$display_values = array();
while ($row = $db->fetch()) {
$values[] = $row->film_id;
$display_values[] = $row->title;
}
for ($i=0; $i < $db_count; $i++) {
$form->addOption('ext_film[]', $values[$i], $display_values[$i]);
}
$form->addSelect('ext_film[]', 'Film', 'data-slimselect=true, multiple, data-close-on-select=false');
}
$form->addBtn('button', 'cancel', 0, '<i class="' . ICON_BACK . ' prepend"></i>' . CANCEL, 'class=btn btn-warning, data-ladda-button=true, data-style=zoom-in, onclick=history.go(-1)', 'btn-group');
$form->addBtn('submit', 'submit-btn', 1, SUBMIT . '<i class="' . ICON_CHECKMARK . ' append"></i>', 'class=btn btn-success, data-ladda-button=true, data-style=zoom-in', 'btn-group');
$form->setCols(0, 12);
$form->centerContent();
$form->printBtnGroup('btn-group');
$form->endFieldset();
$form->addPlugin('pretty-checkbox', '#form-edit-actor');
$form->addPlugin('formvalidation', '#form-edit-actor', 'default', array('language' => FORMVALIDATION_JAVASCRIPT_LANG));
Personalización para usuarios avanzados
Si la estructura de su base de datos cambia por el camino, PHPCG es capaz de reconstruir los datos y le permite regenerar las páginas CRUD correspondientes.
Al generar las páginas del panel de administración, PHPCRUD guarda automáticamente una copia de seguridad de la versión anterior.
La herramienta de comparación de archivos integrada en el generador le permite comparar lado a lado su versión actual y la anterior y fusionarlas eligiendo los bloques de código que desea conservar.
De este modo, las personalizaciones de la administración pueden conservarse durante los cambios de versión/estructura.
Instrucciones de actualización
Las actualizaciones son automáticas.
Cuando se publique una nueva versión, verá el mensaje "Nueva versión PHP CRUD GENERATOR disponible" en /generator/generator. php y sólo tendrá que hacer clic en el botón "Instalar".
Su número de versión está disponible en /conf/conf. php (VERSION)
Actualización de 1.x a 2.x
La versión 2 es una actualización mayor. Por lo tanto, no es posible actualizar desde la versión 1.
La solución es, por tanto, instalar la versión 2 y, a partir de ahí, reconfigurar su panel de administración.
Idiomas/Traducción (I18n)
Tanto el generador PHP CRUD como el panel de administración Bootstrap generado son totalmente multilingües.
Para traducir a su propio idioma:
Duplique admin/i18n/es. php y cámbiele el nombre a su propio idioma.
Realice las traducciones dentro del archivo que ha creado(admin/i18n/[su-idioma].php)
Abra conf/user-conf.php y sustituya define('LANG', 'en'); por el nombre de archivo que utilizó anteriormente.
Compruebe class/phpformbuilder/plugins/select2/dist/js/i18n/[su-idioma].js y créelo si no existe.
Le invitamos a que nos envíe su traducción. Será útil para otros usuarios.
Generador de formularios PHP
PHP Form Builder está incluido en el paquete, y puede utilizarlo sin restricciones en el mismo dominio que su CRUD.
Esto significa que puede construir cualquier formulario que desee en su sitio web/proyecto y utilizar los plugins y funcionalidades integrados.
Para utilizar PHP Form Builder en su proyecto, cree un archivo PHP en el que desee añadir un formulario o abra cualquier archivo php existente y añada este código al principio del mismo:
Entonces podrá construir sus formularios. La documentación está disponible en el sitio web oficial: https://www.phpformbuilder.pro
Constructor de formularios y plantillas de arrastrar y soltar
El Constructor de Formularios drag & drop y las plantillas de formularios no están incluidos en el paquete del Generador PHP CRUD. Esto no es una restricción sino simplemente porque están disponibles en línea, y la mayoría de los usuarios no lo necesitan, reduciendo así el peso del paquete PHPCG.
El archivo ZIP contiene dos directorios: drag-n-drop-form-builder y templates
Constructor de formularios de arrastrar y soltar
Coloque el directorio drag-n-drop-form-builder dentro de la carpeta class, justo al lado de la carpeta phpformbuilder. Entonces podrá abrir /class/drag-n-drop-form-builder/index.html en su navegador y empezar a construir sus formularios.
Cuando obtenga los códigos de los formularios generados por la herramienta de arrastrar y soltar, no olvide añadir siempre manualmente el código específico del Generador CRUD (como se ha explicado anteriormente):
Coloque el directorio drag-n-drop-form-builder dentro de la carpeta class, justo al lado de la carpeta phpformbuilder. Entonces podrá abrir /class/drag-n-drop-form-builder/index.html en su navegador y empezar a construir sus formularios.
El directorio de plantillas puede estar en cualquier parte de su servidor, no importa en qué carpeta esté, las plantillas funcionarán bien.
Después de cualquier actualización, cierre y vuelva a abrir su navegador para borrar la SESIÓN PHP
versión 2.3.5 (12/2023)
Improvements:
- improve Spanish translations
Bug Fix:
- fix "|raw" apprearing in the list's tables headers"
- fix quotes escaping in the forms help texts
versión 2.3.4 (11/2023)
Bug Fix:
- fix a weird error with the error_log function call in DB class
- fix error with the Spanish translation
versión 2.3.3 (11/2023)
New Features:
- Add PHP Errors Monitoring with email sending. Available in the generator's configuration tab.
Improvements:
- lint code with SonarLint + PHP 8.2, remove all php deprecated and warning messages
Bug Fix:
- fix a bug with "update" queries using the same fieldname in both values and where clause
versión 2.3.2 (10/2023)
Improvements:
- add SQL group_by clause in DB->select() '$extras' argument
- ability to use HTML code for field titles
Bug Fix:
- the custom fieldnames are now properly displayed in the single records views
- fix image field addons display in the generator forms
- fix admin infinite loading bug in Firefox due to an internal Pace loader bug (https://github.com/CodeByZach/pace/issues/510)
versión 2.3.1 (04/2023)
Bug Fix:
- fix the file comparison tab not showing the tool
- fix the broken date pickers translations
versión 2.3 (03/2023)
Improvements:
- fix wrong links & images in the documentation
- database insert now returns the last insert id if supported by the db driver
Bug Fix:
- fix plugins_path in class/Form.php (PHP Form Builder) when the plugins folder URL is set with $form->setPluginsUrl()
- repair the database getLastInsertId() function
- remove PHP warning with Secure class when passing NULL to the constraint query
- fix floating values that were converted to int with input[type="number"]
- fix query error with empty filters
- fix a warning in admin forms with some special restriction queries
- fix error when sorting fields from relational tables
- fix Deprecated error in class.fileuploader.php
versión 2.2 (02/2023)
Improvements:
- remove the search box in the Edit in place's boolean selects
Bug Fix:
- fix non-working Generator lock
- fix error on cascade delete - please regenerate your delete forms if they use cascade deletion to get them working properly.
versión 2.1 (01/2023)
Improvements:
- authentication module installer will keep the multiselect opened when choosing the admin tables
- update the wordcharcount plugin to set the default maxWords to -1 (= infinity)
Bug Fix:
- fix a wrong query in create/update forms on external tables
- fix tinymce theme in class/phpformbuilder/plugins-config-custom/tinymce.xml
versión 2.0.1 (01/2023)
Improvements:
- enable of the auto-update system for the package's version 2
Bug Fix:
- fix filters inappropriate error message when the filter data contains null values
versión 2.0 (01/2023)
New Features:
- switch from Mysqli to PDO with prepared queries
- Oracle database support
- PostgreSQL database support
- Firebird database support
- upgrade to Bootstrap 5
- upgrade Bootswatch themes
- add the SCSS source files to the package
- rewrite the color palette and make use of the Bootstrap 5 color contrast utilities (.text-bg-xxx)
- replace PHP Form Builder by the latest version
- add 'Display the database errors' and 'Simulate and debug' options to the generator's general settings for easy database debugging.
- add an option to the generator's general settings to display the data tables in the viewport with or without a vertical scrollbar.
- highly improve the debugging system, which now can show all the queries (including Ajax requests), PDO parameters and performances using the 'Simulate and debug' option.
- add the ability to set a custom CSS class for the filtered columns in the admin READ
Improvements:
- auto-highlight filtered columns in the admin READ lists and remove the "Column number" setting in the generator "advanced filters" settings
- the generator's advanced filters test tool now analyzes the queries and display an explicit error message when a field are missing from the query.
- optimisation of the CRUD Generator forms and tools for more efficient loading
- complete redesign of the generator and admin dashboard User Interface (UI)
versión 1.29 (08/2022)
Improvements:
- add an error message with a link to the documentation when a user opens a READ lists in the admin with the authentication module enabled and the table not registered inside it.
Bug Fix:
- fix an error with external fields multiple checkboxes
versión 1.28 (07/2022)
New Features:
- Display of values from secondary relationships.
E.g: address.city_id -> city.country_id -> country.name
PHPCG now can show the country name straight from the address READ list and forms.
- Add capability to load the select options dynamically in Ajax from the database in the admin forms
Improvements:
- add 'json' in database fields types
- update and improve the file comparison tool
- test Apache FollowSymLinks + admin 404 errors in the installer and return the appropriate help messages
versión 1.27 (06/2022)
Improvements:
- the installer will now show a clear message if the database connection is successful but no table is found, instead of showing a connection failure message.
Bug Fix:
- fix a missing translation in Italian
- fix a missing parenthesis in generator/generator-templates/form-edit-template.php
versión 1.26 (05/2022)
Bug Fix:
- fix a missing parenthesis in generator/generator-templates/form-create-template.php
versión 1.25 (05/2022)
Improvements:
- PHPCG will now preselect the current values in READ lists live-edit's select dropdowns
- the Live edit in admin READ lists will now show the values of the relational table instead after editing
- fix PHP warning with mysqli_free_result, boolean and null values & PHP 8.1
- add a loading indicator when loading Live Edit forms from the READ lists
Bug Fix:
- set mysqli_report to MYSQLI_REPORT_OFF during the installation to make sure that mysqli_query will not throw a warning when a query fails (which is normal when we test if a table exist for instance, the query returns false);
- fix all the errors in the generator with PHP8 and the count() function when some fields have been deleted from the database
- fix broken queries due to a regex that didn't include table/field names with a number in admin/class/crud/ElementFilters
- fix PHP Warning with Ajax filters in the admin dashboard
- escape JSON values in Live edit select dropdowns
versión 1.24 (02/2022)
Improvements:
- add a warning to the installer if the install folder is not at the root of the project
- add the same warning to the Quick Start Guide
versión 1.23 (11/2021)
Improvements:
- update the TWIG engine to 3.3.4
- add a "Select" type in the READ list generator to prevent the CREATE/UPDATE form from reverting to "text" when rebuilding the READ list
- add a message in the installer to warn users if their url has uppercase characters (uppercase are not valid and cause problems).
Bug Fix:
- replace a php arrow function call in ElementsFilters.php for php <7.4 compatibility
versión 1.22 (10/2021)
Improvements:
- load the Codecanyon package images in documentation/index.html from local assets instead of Cloudinary CDN, which was not authorized for external hostnames
Bug Fix:
- fix a sql error caused by Secure users rights (Secure::getRestrictionQuery() returning a single space instead of an empty value)
- the Date Range filters now remove the NULL values to detect the minimum / maximum available dates for filter
- fix filter error with invalid JSON values in database in latest MySQL versions
- fix missing images in the documentation on users localhost.
- fix the admin search engine for relational fields with 2 values
versión 1.21 (08/2021)
Bug Fix:
- the PHP integer validator will now accept null values
- In the generator - custom validation: removing a validator will now work as expected instead of always removing the last validation rule.
versión 1.20 (07/2021)
New Features:
- Add a new option in the generator that allows to choose the target (intermediate or final table) of the add/edit/delete buttons for relational tables
Bug Fix:
- fix error in Material Datepicker months (error coming from the original plugin)
- fix missing ACTION header in the admin lists when the action buttons are on the right and bulk check is disabled
versión 1.19 (04/2021)
Improvements:
- update the admin css to align the nested tables vertically on top
Bug Fix:
- fix broken boolean filters in the admin panel
- fix php warnings in the generator with validation auto + INT fields + MySQL v8
- restore the "add new" button for nested tables (external relations) in the admin dashboard READ lists
- fix paginated search results urls in the admin dashboard
- fix wrong links from READ lists nested tables to their edit/delete form if the nested table name contains underscores
versión 1.18 (03/2021)
New Features:
- PHPCG now accepts PHP 8
Improvements:
- choice of the name of the license table during the installation process
- improve php version checking during the installation process
- update the Tinymce responsive filemanager plugin to the latest version - only in the Codecanyon package, not in the auto-update to avoid breaking customized code from users.
- improve code standards for PHP 8 compatibility
Bug Fix:
- fix issues with boolean values storage in the generator
- remove PHP warning with Ajax filters loading
- remove PHP warnings in the generator about missing relations
- fix weird field types returned by MySQL, e.g., "smallint unsigned" instead of "smallint", which is the official valid field type
versión 1.17 (03/2021)
- quickly unreleased because of unexpected bugs
versión 1.16 (02/2021)
New Features:
Improvements:
Bug Fix:
- fix wrong behavior of the admin delete forms when no option or "no" is selected due to a previous update
- solve assets urls issues in the main index.html and the documentation
versión 1.15 (12/2020)
New Features:
- add a new 'html' field type in the generator to show the HTML content in the admin lists instead of HTML code when the fields contain HTML
- auto enable textarea + tinyMce in the generator for HTML fields
Improvements:
- add $mail->Sender in Form.php for PHPMailer to improve email deliverability
- edit the Fileuploader PHP image upload script to crop the images AFTER resizing
- (the original behavior that center-crops the original image is still available in the file code comments)
- add a default empty value in the admin forms select, radio & checkbox when the field is not required
Bug Fix:
- validator now validates integers with leading zeros (PHP :: Bug #43372)
- fix wrong ajax POST url in the admin search with paginated results
- fix textarea custom heights in CREATE forms
versión 1.14 (11/2020)
New Features:
- add field height option for textarea in the generator
Improvements:
- Accept NULL date / time instead of registering the default '1970-01-01 00:00' timestamp in database
- sanitize directory separator in class/Form.php to avoid wrong plugins url detection on server with inconsistent $_SERVER['SCRIPT_NAME'] and $_SERVER['SCRIPT_FILENAME'] values
- show tinymce and word char count in the generator only for textarea
Bug Fix:
- remove php warning when posting a delete form without choosing yes/no
versión 1.13.3 (11/2020)
Improvements:
- improve scrolling behavior in admin nested tables show / hide
Bug Fix:
- fix non-working nested tables show / hide due to the new OverlayScrollbars plugin
versión 1.13.2 (11/2020)
Bug Fix:
- replace the deprecated admin table scrollbar plugin broken by the latest jQuery with the great new OverlayScrollbars plugin
versión 1.13.1 (11/2020)
New Features:
- new tutorial to customize the admin Home page: https://www.phpcrudgenerator.com/tutorials/how-to-customize-the-bootstrap-admin-homepage
- add documentation to update the Authentication Module with a simple SQL query instead of reinstalling from scratch:
https://www.phpcrudgenerator.com/documentation/index#admin-user-authentication-module
Bug Fix:
- fix a bug in the General Settings Form due to the previous update
versión 1.13 (11/2020)
Bug Fix:
- update jQuery to 3.5.1 due to a recent browser bug that prevented the generator forms to submit (nothing happened after clicking the submit button)
versión 1.12 (11/2020)
Bug Fix:
- prefill the generator create/update form properly with TinyMce and character counter options & values
- remove php warning when installing the authentication module
- move the generator scripts to the <head> part to avoid jQuery not loaded error in some special circumstances
- change the target table in READ lists nested tables EDIT buttons to the end relationnal table instead of intermediate
- edit class/Utils/isValidTimeStamp function to return true with number entry as well as string
versión 1.11 (09/2020)
Improvements:
- trim $url in CrudTwigExtension::ifRemoteFileExists($url) - vendor/twig/twig/src/Extension/CrudTwigExtension.php
- replace "url" property in object classes with "item_url" to avoid conflicts with database fields named "url"
Bug Fix:
- fix php Notice when building single record READ lists
- add empty default value in create / update forms for fields that get their values from a table when no record exist
- fix the filtered columns overlay colored by colorColumns in the admin READ lists
- fix wrong default dates / times in UPDATE forms with the pickadate & material date/time pickers hidden fields
- fix date value with date pickers when a form is posted with errors
- fix the index of the colored columns in READ lists when some filters are active with bulk delete enabled and admin action buttons are on the left
versión 1.10 (06/2020)
Improvements:
- add "open url button" link to the documentation in the generator
- better date & time formats management with the material datepicker plugin
(rebuild your create/update forms if you want to benefit from these changes)
Bug Fix:
- fix date and time custom formats with translations in the create / edit forms
- add missing session_start() in ajax bulk delete forms
versión 1.9 (06/2020)
New Features:
- add Bulk Delete capabilities to the admin dashboard's data lists
- add date range picker filter to the generator filters options + the admin dashboard's data lists
- add "Default field for search" option to the generator
Improvements:
- improve the generator design consistency
- improve root path detection for servers with inconsistent directory separators
- collapse admin inactive sidebar categories on categorie click
Bug Fix:
- fix Ajax filter results when the result options use 2 field names
versión 1.8 (05/2020)
Improvements:
- add timezone to the generator general settings
- update PHP Form Builder to the latest version (4.4)
- upgrade Twig to Twig 3.0 and others vendor libraries for PHP 7.4.x compatibility
- add php DOM extension test in the installer's server capabilities tests
- add a clear error message with a link to the help center on root path detection failure
- add a loading indicator to the auto-updater
Bug Fix:
- fix wrong urls in admin forms when moving the admin files from localhost to the production server
- fix the missing relational values in the exported data
- fix admin login failure after reinstalling the authentication module with changing the user table name
- replace the double quotes with single quotes in the generator delete form template main query
versión 1.7.7 (04/2020)
Bug Fix:
- fix stupid ROOT path error with subfolder installations due to the previous update
versión 1.7.6 (04/2020)
Improvements:
- add a server test file in the install folder to debug paths & urls
- auto-apply ORDER BY changes from the generator to the admin panel without clearing PHP session
- update ElementFilters to allow simple quotes in advanced filters
Bug Fix:
- fix ROOT path with server alias
versión 1.7.5 (04/2020)
New Features:
- add an "Ajax loading" option in the generator READ Lists filters (default: false)
Hint: Enable Ajax loading on all the tables that contain a lot of records
This new option allows to load the filters options on demand and will GREATLY improve the loading speed
- add ORDER BY in the generator READ List main settings
- add website search to https://www.phpcrudgenerator.com documentation, tutorials & help center
- add default skin loader for each Bootstrap admin theme CSS in the general settings form
- add the item name in the admin header h1
- add a footer template for admin READ lists (admin/templates/footer.html)
Improvements:
- cleaner generator design
- add instructions to solve 404 errors on some servers (lightspeed) in the help center + admin/.htaccess
- various minor optimizations
Bug Fix:
- fix Tinymce's Responsive file manager url
- edit the cUrl test file in install/
versión 1.7.4 (12/2019)
New Features:
- new setting available to choose to show search results in all on the same page or in a paginated list
IMPORTANT: regenerate your READ lists from the generator if you want the paginated search results
or your paginated results will lead to 404 NOT FOUND
Bug Fix:
- fix nested table records in READ lists with only the primary key displayed
- fix the "add new" button link (previously to 404) in READ lists nested tables with page > 1
- the generator delete form now sets the correct stored options for external tables records
versión 1.7.3 (12/2019)
New Features:
- add an "Advanced" section in the tutorials with a new "Date and Time formats management logic tutorial
Bug Fix:
- fix wrong date / time formats in admin READ lists for servers without PHP intl extension in some random cases depending on the chosen format
- fix date / time format dropdown helpers in the generator
versión 1.7.2 (11/2019)
Improvements:
- add Czech translation
- improve documentation
Bug Fix:
- fix PHP warnings with forms & array values
- fix error in general settings form when no logo is registered
- fix filters query with number values & MySQL 5.7+
- fix error in the Italian translation
- fix PHP warning caused by primary keys aliases in the admin READ lists external relations
versión 1.7.1 (08/2019)
Bug Fix:
- Fix the Admin Dropdown Search field cross-browser compatibility
(rebuild your lists to apply)
versión 1.7 (08/2019)
New Features:
- New live search with Ajax Autocomplete for Bootstrap Admin Panel READ lists
(rebuild your lists to apply)
Improvements:
- Update Material Pickers for compatibility
versión 1.6.1 (07/2019)
New Features:
- Admin filters now can deal with JSON array values (select multiple, checkboxes)
- New PHP CRUD Generator Tutorials channel on Youtube
Improvements:
- Array values from database now displayed as comma-separated values instead of raw JSON
- improve the online Documentation & Tutorials
Bug Fix:
- Rewrite code to limit users rights to their own records
(rebuild your lists / forms to apply)
Improvements:
- The General Settings form in the generator now allows to change the Bootstrap admin main body class
Bug Fix:
- the installer was broken by the previous changes. Solved now.
- Edit in place is no more available in Admin READ lists for users with insufficient rights
- the broken "enable/disable" authentication module in the Generator now works again
versión 1.5.5 (06/2019)
New Features:
- The date & Time pickers languages can now be defined in the General Settings form
- You can now choose the style of the Bootstrap admin date & Time pickers
(default | Material Design)
- New Italian translation - Many thanks to Alberto
versión 1.5.4 (06/2019)
New Features:
- New General Settings form available in the Generator
- The action buttons of the Bootstrap Admin panel can now be on the left or right of the table
- The filters of the Bootstrap Admin panel can now be triggered automatically when selected
- You can change the site title and admin logo using the General Settings form
- You can change the admin language using the General Settings form
- You can change the admin skin using the General Settings form
Improvements:
- Show custom table names in Admin READ lists nested tables
Bug Fix:
- The Validation button in the Generator should now never overlap the forms
versión 1.5.3 (06/2019)
New Features:
- Action buttons in the admin panel can now be displayed in the
1st column of the admin READ lists
Improvements:
- Responsive & others in admin CSS
Bug Fix:
- datepicker plugin
- files & images upload
- tooltips
(these bugs were due to the previous update with latest PHP Form Builder)
New Features:
- replace PHP Form Builder with the latest version 4.2.1
Improvements:
- Admin Panel Fast Loading optimization with the new LoadJS features
- PHP CRUD Fast Loading optimization with the new LoadJS features
- rewrite queries for admin restricted users rights
- upgrade Bootstrap to the latest version 4.3.1
- minor various others improvements
versión 1.4.9 (05/2019)
New Features:
- add new Export features (print - current view - all records) in admin READ lists
versión 1.4.8 (02/2019)
New Features:
Improvements:
- add (very) strong protection for fileuploader plugin uploads
Bug Fix:
- remove some PHP warnings
- solved admin sidebar duplicate items issue
versión 1.4.7 (02/2019)
Bug Fix:
- fix navbar issue with empty icons
versión 1.4.6 (02/2019)
New Features:
- New "array" field type in generator for checkboxes & select multiple values
will show JSON decoded values in the READ lists
Improvements:
- better admin navbar content management ("Organize Navbar")
- improve array values management in the generator
Bug Fix:
- fix non-working select multiple with "set" & "enum" field types
- fix changelog url in auto-update success message
versión 1.4.5 (02/2019)
New Features:
- License system now accepts domain with multiple extensions
e.g., domain.com, domain.eu, domain.co.uk are all valid with the same license.
- New button in the Generator to reload fresh database structure
(When you add or remove tables)
Improvements:
Bug Fix:
- admin filters now accept zero values
- fix queries in admin lists on external tables with direct relation (no intermediate table)
versión 1.4.4 (02/2019)
New Features:
- external records from relational tables can now be managed
from the READ LISTS & the CREATE/UPDATE forms (!)
- add self-referential foreign keys management
- tables can now be removed/re-enabled from the admin navbar
- add Spanish admin translation (Thanks to Sergio)
Improvements:
- export buttons (csv/xls[x]) now export the exact filtered list items
- align single fields on the left in admin panels
Bug Fix:
- remove phone validation in auth. module installer
- logout from generator/generator.php now does its job as intended
- upgrade PHPMailer to latest 6.0.6 to fix PHP 7.3 warnings
versión 1.4.3 (12/2018)
Bug Fix:
- fix inverted label & value in form CREATE/EDIT templates
- protect relation tables SELECT queries in form CREATE/EDIT templates
versión 1.4.2 (10/2018)
New Features:
- new "Add New" button in admin READ lists on external nested tables even if no record
Improvements:
- ADMIN panel: register URL query parameters in $_GET (Altorouter ROUTES doesn't deal with these).
- the ADMIN ADD & UPDATE forms now redirect to the correct list if we come from a nested table (external relation)
- move date_default_timezone_set from conf/conf.php to conf/user-conf.php
- add Help & instructions for Microsoft IIS & NGINX servers
Bug Fix:
- "Add New" button in admin READ lists now always targets the right CREATE form
even if there's several external nested tables in the list.
- Fix several warnings & minor issues
versión 1.4.1 (10/2018)
New Features:
- add "Add New", "Edit" & "Delete" buttons in READ Lists nested tables for external tables records
Improvements:
- add compatibility for date & time without PHP intl extension
Bug Fix:
- definitely fix the Apache mod_security error on the install process with some misconfigured servers
versión 1.4 (10/2018)
Advertencia: Si sus listas admin READ tienen campos de fecha o fecha-hora, abra las plantillas correspondientes en /admin/templates, busque las funciones toDate(...) y sustituya el formato PHP de fecha por el formato de fecha ICU correspondiente.
New Features:
- PHPCG includes now the complete latest PHP Form Builder version with all its features & plugins.
- Add the online knowledge base with numerous tutorials & videos
Improvements:
- improve date & time translations management - https://www.phpcrudgenerator.com/tutorials/how-to-translate-dates-times-in-admin-panel
- add full date & time translation in admin lists & forms
- change admin form action from absolute url to root relative url
- add install/curl-test.php to help with CURL debbuging
Bug Fix:
- the generator now retrieves the correct stored values to be displayed in READ lists for the external fields
- get the correct time value in admin edit forms with datetime fields
- solve plugins URL detection with paths containing uppercase letters
versión 1.3.2 (08/2018)
Improvements:
- dates edit in place now get the current field value
- image now crop from the center
Bug Fix:
- fix missing fields in update forms due to previous update error
- fix admin lists bug with fields having uppercase characters
- fix admin edit in place with dates & uppercase table name
versión 1.3.1 (08/2018)
Improvements:
Bug Fix:
- fix Generator form create profiles
versión 1.3 (08/2018)
Notes:
- After this update you may have to reinstall the user authentication module from the Generator page.
Improvements:
- update server-side validation functions to accept empty values,
except for the validators whose internal logic make values required.
Details available here: https://www.phpformbuilder.pro/documentation/class-doc.php#php-validation-methods
- the User Authentication Module now keeps the users & users profiles tables and records when uninstalling.
- the User Authentication Module can now be reinstalled even if the users & users profiles table exist
- improve user profiles management and rights limitations
- the users rights changes now take effect without clearing the session
- the admin sidebar doesn't show empty categories anymore
- the only required fields in users table are now name, firstname, profile ID, email, pass & active
(takes effect on new User Authentication Module installs only)
- add simulate property to Generator.php to simulate when we reset a table structure from generator
- remove several warnings & improve various feedback messages
Bug Fix:
- solve problem with updates & SSL errors on misconfigured servers
versión 1.2.4 (07/2018)
Notes:
- After this update you may have to reinstall the user authentication module from the Generator page.
Improvements:
- set default empty value for passwords in UPDATE FORMS
Bug Fix:
- solve CREATE/UPDATE forms generation with custom validation
- solve READ LISTS generation with advanced filders
- solve image path in admin when the field thumbs are not enabled
- remove password validation in UPDATE FORMS if posted value is empty
- correct select values count in generator CREATE/UPDATE forms with custom values
- solve error 500 when adding new users
versión 1.2.3 (07/2018)
New Features:
- add an uninstallation process
- add a login module for the generator on the production server
- primary key management in admin forms
Improvements:
- remove the "select database" form in generator & auto select the correct database
- add warnings for non-standard tables & field names (hyphenated)
- improve password fields management in CREATE/UPDATE forms:
better password encryption with Secure class
password are now automatically optional on update forms with an helper text: "Leave blank to keep the current password"
- turn fileuploader debug on for CREATE/UPDATE forms
- improve documentation
- improve auto-validation detection according to forms & database field types
Bug Fix:
- revert Twig template engine to version 1.35.4 to preserve PHP < 7.0 compatibility
- regenerate css & js combined plugin files for CREATE/UPDATE forms when the forms are edited with the generator
- fix generator which failed to validate when custom validators were selected while generating the CREATE/UPDATE forms
- fix password encryption when changes are made in CREATE/UPDATE users table
versión 1.2.2 (07/2018)
Improvements:
- add user-conf file to avoid breaking user custom settings with updates
- move the install folder outside the generator folder.
- improve the updater script
- improve url & path management
Bug Fix:
- fix server issues in some special configurations
versión 1.2.1 (07/2018)
Advertencia: si su módulo de autenticación no está habilitado, después de la actualización abra php-crud-generator/conf/admin-lock. php y ponga ADMIN_LOCKED en false.
Improvements:
- move ADMIN_LOCKED and ADMIN_LOGO to separate files for easier updates
Bug Fix:
- fix several minor bugs