CdB Form
Plugin de formularios personalizados para proyectocdb.es
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/patricdb/cdb-form/archive/refs/heads/main.zipPlugin de formularios personalizados para proyectocdb.es. Proporciona herramientas para que empleados y bares puedan registrar su información y experiencia.
Instalación
- Copia la carpeta
cdb-formen el directoriowp-content/pluginsde tu instalación de WordPress. - Activa el plugin desde el panel de administración.
- Al activarlo se crean las tablas personalizadas necesarias y se registran los Custom Post Types (CPT) usados por los formularios.
Estructura de carpetas
cdb-form.php– archivo principal del plugin.includes/– lógica del plugin (registro de CPT, bases de datos, shortcodes y procesadores AJAX).templates/– plantillas PHP que se cargan al usar los shortcodes.admin/ypublic/– carga de scripts/estilos para el panel de administración y el frontend.assets/– ficheros CSS y JavaScript utilizados por las interfaces.docs/– documentación adicional del proyecto.
Uso de shortcodes
Inserta estos shortcodes en una página o entrada para mostrar los distintos formularios o listados:
[cdb_form_bar]– formulario para crear o editar un bar asociado al usuario.[cdb_form_empleado]– formulario para crear o actualizar el perfil de empleado.[cdb_experiencia]– formulario de experiencia laboral con listado de entradas guardadas.[cdb_bienvenida_usuario]– muestra siempre un saludo y un mensaje de bienvenida para cualquier usuario autenticado y, según su rol, carga el panel de empleado o empleador. Incluye mensajes específicos para empleados sin perfil o sin experiencia.[cdb_top_empleados_experiencia_precalculada]– ranking de empleados por puntuación de experiencia.[cdb_top_empleados_puntuacion_total]– ranking de empleados por puntuación gráfica.
Los avisos, errores e instrucciones mostrados por estos shortcodes pueden personalizarse desde el submenú Configuración de Mensajes y Avisos dentro del menú "CdB Form" del panel de administración. El saludo mostrado por [cdb_bienvenida_usuario] es fijo y funciona como título de página.
Configuración de mensajes y avisos
En esta pantalla es posible editar el contenido de cada mensaje y definir variantes de avisos con sus propias clases CSS. Además de los mensajes de bienvenida iniciales, es posible configurar avisos como:
- Acceso restringido para usuarios no autenticados.
- Empleado sin perfil o sin experiencia registrada.
- Listados de empleados o bares sin resultados.
- Puntuaciones o posiciones no disponibles.
- Mensajes de error por falta de permisos o recursos vinculados al usuario (por ejemplo, bar sin registrar).
Cada variante permite elegir un color de fondo y otro de texto. Si no se especifica color de texto, el sistema calcula automáticamente uno con contraste adecuado.
Para añadir una nueva variante introduce nombre, clase CSS, color de fondo y color de texto. Posteriormente podrás usar esa variante en los shortcodes seleccionándola en los mensajes correspondientes.
También puedes registrar variantes desde código utilizando cdb_form_register_tipo_color( $slug, $args ), pasando un array con name, class, color y text.
Mensajes configurables
| Clave | Texto por defecto | Contexto (dónde aparece) |
|---|---|---|
| cdb_mensaje_login_requerido | Debes iniciar sesión para acceder. | Inicia sesión o regístrate para continuar. | Formularios de bar o empleado cuando el usuario no ha iniciado sesión |
| cdb_mensaje_sin_permiso | No tienes permisos para ver este contenido. | Contacta con un admin si crees que es un error. | Formulario de empleado cuando el usuario no tiene permisos |
| cdb_mensaje_puntuacion_no_disponible | Puntuación gráfica no disponible. | Añade más valoraciones para generar tu gráfico. | Panel de empleado cuando no hay gráfico |
| cdb_mensaje_busqueda_sin_bares | No hay bares que coincidan con tu búsqueda. | Ajusta filtros o prueba con otro término. | Búsqueda de bares sin resultados |
| cdb_mensaje_empleado_no_encontrado | Empleado no encontrado. | Crea primero tu perfil de empleado para continuar. | Formulario de empleado cuando no existe perfil asociado |
| cdb_mensaje_busqueda_sin_empleados | Sin coincidencias para tu búsqueda. | Modifica los criterios e inténtalo de nuevo. | Búsqueda de empleados sin resultados |
| cdb_mensaje_sin_empleados | Aún no hay empleados registrados. | ¡Sé el primero en unirte al proyecto! | Rankings de empleados cuando no existen registros |
| cdb_mensaje_experiencia_sin_perfil | Para registrar experiencia debes crear tu perfil. | Completa tu información de empleado y vuelve aquí. | Formulario de experiencia sin perfil de empleado |
| cdb_ajax_exito_empleado | Empleado creado correctamente. | El perfil se ha guardado sin problemas. | Respuesta exitosa al crear empleado por AJAX |
| cdb_ajax_error_empleado | Error al crear empleado. | Inténtalo de nuevo más tarde. | Fallo al crear empleado por AJAX |
| cdb_ajax_exito_experiencia | Experiencia registrada. | Se ha guardado la experiencia. | Registro de experiencia por AJAX |
| cdb_ajax_empleados_sin_resultados | Sin resultados. | No hay empleados que coincidan con tu búsqueda. | Búsqueda de empleados sin coincidencias (AJAX) |
| cdb_ajax_bares_sin_resultados | Sin resultados. | No hay bares que coincidan con tu búsqueda. | Búsqueda de bares sin coincidencias (AJAX) |
| cdb_ajax_disponibilidad_actualizada | Disponibilidad actualizada correctamente. | Los datos se han guardado. | Actualización de disponibilidad del empleado |
| cdb_ajax_error_disponibilidad | Hubo un problema al actualizar la disponibilidad. | Inténtalo de nuevo más tarde. | Error al actualizar disponibilidad del empleado |
| cdb_ajax_estado_bar_actualizado | Estado del bar actualizado correctamente. | Los datos se han guardado. | Actualización del estado del bar |
| cdb_ajax_error_estado_bar | Hubo un problema al actualizar el estado del bar. | Inténtalo de nuevo más tarde. | Error al actualizar estado del bar |
| cdb_ajax_error_comunicacion | Error de comunicación. | No se pudo contactar con el servidor. | Fallo de conexión AJAX |
| cdb_ajax_error_anio_cifras | El año debe tener 4 cifras. | Introduce un año válido. | Validación de filtros de búsqueda (año con 4 cifras) |
| cdb_ajax_error_nombre_invalido | Selecciona un nombre válido. | Elige una opción de la lista. | Validación de filtro de nombre en búsqueda de empleados |
| cdb_ajax_error_posicion_invalida | Selecciona una posición válida. | Usa la ayuda de autocompletado. | Validación de filtro de posición en búsqueda de empleados |
| cdb_ajax_error_bar_invalido | Selecciona un bar válido. | Usa la ayuda de autocompletado. | Validación de filtro de bar en búsquedas |
| cdb_ajax_error_anio_invalido | Selecciona un año válido. | Usa un formato de cuatro cifras. | Validación de filtro de año en búsqueda de empleados |
| cdb_ajax_error_zona_invalida | Selecciona una zona válida. | Elige una opción de la lista. | Validación de filtro de zona en búsqueda de bares |
Para personalizar estos textos ve al submenú Cdb Form → Configuración de Mensajes y Avisos.
Procesamiento de formularios
Los formularios funcionan mediante llamadas AJAX a admin-ajax.php y se validan con nonces de seguridad:
- Las plantillas (
templates/) generan los formularios HTML y sus scripts asociados. - Al enviarse, se ejecutan las funciones en
includes/form-handler.phpoincludes/ajax-functions.php, que comprueban permisos y guardan los datos. - La experiencia laboral se guarda en la tabla personalizada
wp_cdb_experiencia, mientras que los perfiles de empleados y bares se almacenan como CPT. - Tras procesar la petición, el manejador devuelve una respuesta JSON que permite recargar la página o actualizar el contenido de forma dinámica.
Para más información consulta la carpeta docs/.
Internacionalización
El plugin carga las traducciones desde la carpeta languages mediante load_plugin_textdomain() al iniciarse. Para generar el archivo cdb-form.pot se utilizan las funciones de internacionalización de WordPress en todo el código.
Traducciones
Para crear archivos de traducción personalizados sigue estos pasos:
-
Genera el archivo
.potcon la utilidad de WP-CLI:wp i18n make-pot . languages/cdb-form.pot -
Crea un archivo
.popara tu idioma a partir del.pot(ejemplo para español de España):msginit --locale=es_ES --input=languages/cdb-form.pot --output-file=languages/es_ES.po -
Rellena los
msgstrdel.poy compílalo a.mo:msgfmt languages/es_ES.po -o languages/es_ES.mo
Coloca los archivos generados en la carpeta languages para que WordPress los cargue automáticamente.