¿Ya tienes cuenta? Inicia sesión aquí
-
Cómo funcionan las Mision...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
Ayer, 09:46 PM
» Respuestas: 0
» Vistas: 56 -
V6 Original/Dark/Memes (A...
Foro: Diseños Terminados
Último mensaje por: carlos007r
Ayer, 11:08 AM
» Respuestas: 26
» Vistas: 6,335 -
V5
Foro: Diseños Terminados
Último mensaje por: Aeikox
06-13-2026, 12:16 AM
» Respuestas: 8
» Vistas: 1,447 -
Risus 1.3 Actualizado jQu...
Foro: Risus 1.3
Último mensaje por: Tronlar
06-12-2026, 10:45 PM
» Respuestas: 55
» Vistas: 10,660 -
Preguntas Frecuentes y So...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-12-2026, 06:17 PM
» Respuestas: 0
» Vistas: 56 -
Cómo registrar tu comunid...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-12-2026, 05:32 PM
» Respuestas: 0
» Vistas: 50 -
Cómo monetizar tu comunid...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 07:19 PM
» Respuestas: 0
» Vistas: 50 -
Introducción al SEO para ...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 06:58 PM
» Respuestas: 0
» Vistas: 58 -
Guía completa de SEO para...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 06:48 PM
» Respuestas: 0
» Vistas: 60 -
Diccionario de términos b...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 01:41 PM
» Respuestas: 0
» Vistas: 82
- Mensajes del foro:1,957
- Temas del foro:614
- Miembros:1,036
- Último miembro:carlos007r
Nuevo módulo para Risus Nova 2.0 — PHPost
Sistema de Encuestas en Posts v1.0 para Risus Nova 2.0: el Sistema de Encuestas en Posts. Al crear un post puedes añadir una encuesta opcional con hasta 8 opciones. Los usuarios votan directamente desde el post y los resultados se actualizan en tiempo real sin recargar la página.
Capturas
📊 ¿Qué incluye?
- Encuesta opcional al crear cualquier post
- Hasta 8 opciones por encuesta
- Duración configurable — se puede poner fecha de cierre o sin límite
- Resultados en tiempo real con barras de progreso animadas
- Anti-doble voto por usuario y por IP
- Los usuarios no registrados ven los resultados pero no pueden votar
- Encuestas cerradas siguen mostrando resultados
- Al votar el formulario se transforma en resultados sin recargar
🛠️ Instalación
Paso 1 — Ejecutar el instalador
Sube la carpeta install/ a la raíz del sitio y accede a:
Registrate o inicia tu sesión para ver este contenidoPulsa Instalar ahora. El instalador creará 3 tablas:
- p_encuestas — encuestas ligadas a posts
- p_encuestas_opciones — opciones de cada encuesta
- p_encuestas_votos — registro de votos por usuario e IP
⚠️ Elimina la carpeta install/ del servidor cuando termine.
Paso 2 — Subir los archivos
inc/class/c.encuestas.php → inc/class/
inc/php/ajax/ajax.encuesta.php → inc/php/ajax/
themes/default/css/encuesta.css → themes/default/css/
themes/default/templates/modules/m.encuesta.tpl → themes/default/templates/modules/
themes/default/templates/modules/m.encuesta_form.tpl → themes/default/templates/modules/Paso 3 — c.posts.php
Abre inc/class/c.posts.php y busca el return $postID; al final de la función newPost(). Añade justo antes:
// ── Encuesta ──
if (!empty($_POST['enc_pregunta']) && !empty($_POST['enc_opciones'])) {
require_once TS_CLASS . 'c.encuestas.php';
$tsEncObj = new tsEncuestas();
$tsEncObj->crearEncuesta(
$postID,
$_POST['enc_pregunta'],
$_POST['enc_opciones'],
(int)($_POST['enc_expira_dias'] ?? 0)
);
}
// ────────────
return $postID;Paso 4 — posts.php
Abre inc/php/posts.php y busca:
// PAGINAS
$total = $tsPost['post_comments'];Añade justo antes:
// ── Encuesta ──
require_once TS_CLASS . 'c.encuestas.php';
$tsEncObj = new tsEncuestas();
$tsEncuesta = $tsEncObj->getEncuesta($tsPost['post_id']);
if ($tsEncuesta && !empty($tsEncuesta['opciones'])) {
foreach ($tsEncuesta['opciones'] as &$op) {
$op['pct'] = $tsEncuesta['total_votos'] > 0
? round($op['votos'] / $tsEncuesta['total_votos'] * 100, 1)
: 0;
}
unset($op);
}
$ip = $tsCore->getIP();
$tsYaVoto = $tsEncuesta ? $tsEncObj->yaVoto($tsEncuesta['enc_id'], $tsUser->uid, $ip) : false;
$tsMiOpcion = $tsEncuesta ? $tsEncObj->opcionVotada($tsEncuesta['enc_id'], $tsUser->uid, $ip) : 0;
$smarty->assign('tsEncuesta', $tsEncuesta);
$smarty->assign('tsYaVoto', $tsYaVoto);
$smarty->assign('tsMiOpcion', $tsMiOpcion);
// ────────────Paso 5 — Mostrar la encuesta en el post
Abre themes/default/templates/modules/m.posts_content.tpl y busca:
<div class="compartir-risus-banner">Añade justo antes:
{include file='modules/m.encuesta.tpl'}Paso 6 — Formulario al crear un post
Abre themes/default/templates/modules/m.agregar.form.tpl y busca el bloque de opciones de publicación (donde está el checkbox de "Solo usuarios registrados"). Añade después del cierre de ese bloque:
{include file='modules/m.encuesta_form.tpl'}Paso 7 — Borrar la caché
Borra el contenido de la carpeta /cache/ del sitio.
🗑️ Desinstalar
DROP TABLE IF EXISTS p_encuestas;
DROP TABLE IF EXISTS p_encuestas_opciones;
DROP TABLE IF EXISTS p_encuestas_votos;Elimina los archivos subidos y quita los hooks añadidos en los pasos 3, 4, 5 y 6.
http://Registrate o inicia tu sesión par...0.rar/file
http://Registrate o inicia tu sesión par... contenido
¿Tienes dudas o encuentras algún problema? Déjalo en los comentarios.
Nuevo módulo para Risus Nova 2.0 — PHPost
Primer complemento oficial para Risus Nova 2.0: la Tienda de Puntos. Permite a los usuarios gastar sus puntos acumulados en mejoras para su perfil y sus posts.
🛒 ¿Qué incluye?
- Cambio de nick — Los usuarios pueden cambiar su nombre una vez cada 30 días.
- Título personalizado — Un texto exclusivo que aparece bajo el nick en comentarios y perfil.
- Color de nombre — Personaliza el color del nick con cualquier color hexadecimal.
- Marco de avatar — Añade un marco especial alrededor del avatar.
- Destacar post 24h — El post aparece destacado en la portada durante 24 horas.
- Post fijado 48h — El post queda fijado en su categoría durante 48 horas.
- Subir de rango — Sube al siguiente rango sin necesidad de acumular más puntos.
- Medallas — Obtén medallas exclusivas para el perfil.
📋 Requisitos
- Risus Nova 2.0 instalado y funcionando
- PHP 8.0+
- MySQL 5.7+ / MariaDB 10.4+
🛠️ Instalación
Paso 1 — Ejecutar el instalador
Sube la carpeta install/ del ZIP a la raíz de tu sitio y accede a:
Registrate o inicia tu sesión para ver este contenidoPulsa Instalar ahora. El instalador creará automáticamente:
- Tabla w_tienda — catálogo de artículos
- Tabla w_tienda_compras — historial de compras
- Columnas nuevas en u_miembros: user_title, user_name_color, user_avatar_frame
- Columnas nuevas en p_posts: post_featured, post_sticky_until
- 8 artículos de ejemplo con precios predefinidos
⚠️ Elimina la carpeta install/ del servidor cuando termine.
Paso 2 — Subir los archivos
inc/class/c.tienda.php → inc/class/
inc/php/tienda.php → inc/php/
themes/default/css/tienda.css → themes/default/css/
themes/default/t.tienda.tpl → themes/default/templates/
themes/default/t.tienda.historial.tpl → themes/default/templates/
themes/default/t.tienda.admin.tpl → themes/default/templates/
themes/default/t.tienda.admin.form.tpl → themes/default/templates/Paso 3 — Añadir el CSS en el header
Abre themes/default/templates/sections/main_header.tpl y añade esta línea junto al resto de CSS:
<link href="{$tsConfig.css}/tienda.css" rel="stylesheet" type="text/css">Paso 4 — Añadir el enlace en el menú
Abre themes/default/templates/sections/head_menu.tpl y añade este elemento en el menú principal:
<li class="tabbed {if $tsPage == 'tienda'}here{/if}" id="tabbedtienda">
<a title="Ir a la Tienda" onclick="menu('tienda', this.href); return false;" href="{$tsConfig.url}/tienda/">
<i class="fa-solid fa-store"></i> Tienda
</a>
</li>Paso 5 — Borrar la caché
Borra el contenido de la carpeta /cache/ desde el panel de administración o desde el gestor de archivos del hosting.
⚙️ Gestionar los artículos
Accede como administrador a tudominio.com/tienda/?action=admin para:
- Crear nuevos artículos
- Editar precios y descripciones
- Activar o desactivar artículos
🗑️ Desinstalar
Si quieres eliminar el complemento, ejecuta esto en phpMyAdmin:
DROP TABLE IF EXISTS w_tienda;
DROP TABLE IF EXISTS w_tienda_compras;
ALTER TABLE u_miembros DROP COLUMN user_title;
ALTER TABLE u_miembros DROP COLUMN user_name_color;
ALTER TABLE u_miembros DROP COLUMN user_avatar_frame;
ALTER TABLE p_posts DROP COLUMN post_featured;
ALTER TABLE p_posts DROP COLUMN post_sticky_until;Y elimina los archivos subidos en el paso 2.
Capturas
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Mediafire
http://Registrate o inicia tu sesión par... contenido
Google Drive
http://Registrate o inicia tu sesión par... contenido
¿Tienes dudas o encuentras algún problema? Déjalo en los comentarios.
Lee esto antes de descargar o instalar cualquier archivo.
¿Qué puedes descargar aquí?
En esta sección encontrarás todas las descargas oficiales de Risus Nova, el script basado en PHPost, incluyendo:
- Versiones completas del script listas para instalar
- Actualizaciones y parches para instalaciones existentes
- Complementos oficiales verificados y compatibles con la versión actual
✅ Descargas disponibles
- Risus Nova 2.0 — Versión actual estable | Ver novedades
- Mod: Tienda de Puntos v1.0 — Mod oficial verificado
⚠️ Aviso sobre mods de terceros
PHPost no se hace responsable de ningún problema causado por la instalación de complementos obtenidos fuera de este foro o de phpost.es.
Los complementos son archivos PHP que se ejecutan en tu servidor con acceso completo a tu base de datos. Un complemento mal desarrollado puede comprometer la seguridad de tu sitio, corromper datos o romper funcionalidades existentes.
Los complementos publicados en este foro han sido revisados por el equipo de PHPost y son compatibles con Risus Nova 2.0, PHP 8.3 y Smarty 4.5.6. Los complementos de fuentes externas no tienen ninguna garantía.
📋 Antes de instalar cualquier cosa
- Haz siempre una copia de seguridad de tu base de datos y archivos antes de instalar o actualizar
- Comprueba que la versión del complemento es compatible con tu versión del script
- Si tienes dudas, pregunta en el foro de Ayuda y Soporte antes de instalar
- Prueba primero en un entorno de desarrollo si es posible
🐛 ¿Algo no funciona?
Si encuentras un error después de instalar algo de esta sección, abre un hilo en Ayuda y Soporte indicando:
- Qué instalaste y desde dónde lo descargaste
- Qué error aparece exactamente
- Qué versión de PHP tiene tu servidor
- Si el error apareció justo después de la instalación
📌 Condiciones de uso obligatorias
El uso de Risus Nova está sujeto a las siguientes condiciones. El incumplimiento de cualquiera de ellas supone la pérdida del derecho a soporte oficial.
1. Copyright obligatorio
El aviso de copyright en el pie de página de tu sitio es obligatorio y no puede ser eliminado ni modificado. Debe aparecer visible en todas las páginas:
Powered by PHPost2. Enlace a phpost.es obligatorio
El enlace a phpost.es que aparece en el pie de página junto al copyright debe mantenerse activo y visible. No puede ser eliminado, ocultado ni modificado para apuntar a otra dirección.
3. Usuario demo para soporte
Si necesitas soporte y el problema está relacionado con algo visible en tu web, deberás proporcionar un usuario de prueba (con permisos de usuario normal, no administrador) para que el equipo de PHPost pueda reproducir el problema. Sin acceso para verificar el error, no se puede garantizar soporte.
phpost.es
La actualizacion mas grande de PHPost en anos
Despues de meses de trabajo, presentamos Risus Nova 2.0.4, con nuevas funciones, sistema de email SMTP, soporte por tickets, Zona VIP y muchas mas mejoras.
NOVEDADES 2.0.4
EMAIL SMTP (PHPMailer)
El sistema de email ha sido completamente reescrito con PHPMailer. Los correos de registro, activacion y recuperacion de contrasena se envian de forma fiable desde cualquier hosting.
Se configura desde Admin - Configuracion en la nueva seccion "Configuracion de Email". Compatible con Gmail, Outlook, Yahoo y el email del propio hosting. Incluye boton de prueba de envio desde el panel y templates de email modernos en HTML.
SOPORTE POR TICKETS (Complemento - instalación aparte)
Sistema completo de soporte en /soporte/ con:
- Prioridades: baja, media, alta, urgente
- Categorias: tecnico, cuenta, contenido, pagos, otro
- Estados: abierto, en proceso, resuelto, cerrado
- Panel admin con estadisticas, filtros y tabla con avatar del usuario que envio el ticket
- Chat estilo mensajeria en la vista del ticket
- Notificacion automatica al usuario cuando el admin responde
- Valoracion del ticket por el usuario (resuelto / sin resolver)
ZONA VIP (Complemento - instalación aparte)
Pagina exclusiva /vip/ con contenido solo para miembros VIP:
- Panel admin para asignar VIP manual o por rango, con fecha de expiracion
- Posts VIP -- excluidos de la home y tops, solo visibles para VIPs
- Badge dorado en el perfil de usuarios VIP
- Notificacion automatica al asignar acceso VIP
- Compatible sin instalar -- detecta automaticamente si el mod esta activo
LOGIN Y REGISTRO EN PAGINAS DEDICADAS
Paginas /login/ y /registro/ con diseno moderno estilo carta aerea en dos columnas. El registro es en 3 pasos (Cuenta, Perfil, Confirmar) con validacion en tiempo real de usuario y email.
FILTROS Y MEJORAS EN POSTS
- Filtro de posts por pais del autor con banderas
- Filtro de posts por inicial del titulo (A-Z, 0-9)
- Buscador con 3 pestanas: Posts, Comunidades y Google
- Meta description dinamica -- slogan en home, extracto del post en posts individuales
- Lazy loading automatico en imagenes de posts
- Subida de imagenes en CKEditor 5 via upload_images.php
SISTEMA EN VIVO (Complemento - instalación aparte)
Feed de actividad en tiempo real en /en-vivo/ con posts, comentarios, comunidades y nuevos usuarios. Widget en la columna lateral de la home.
ESTRELLAS DE REPUTACION
Sistema de estrellas con Font Awesome 7. Niveles Normal y Premium con colores diferenciados. Detecta automaticamente Administrador y Moderador por rango.
PARCHE 2.0.4 -- SEGURIDAD
- Headers HTTP de seguridad en header.php: X-Frame-Options, X-Content-Type-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy y HSTS
- Cookies de sesion protegidas con flags httponly y samesite=Lax
- Rate limiting en login: maximo 5 intentos por nick y 10 por IP en 10 minutos
- Clase tsSeguridad con prepared statements, sanitizacion mejorada y tokens CSRF
- getIP() corregido: no acepta HTTP_CLIENT_IP falsificable
- X_FORWARDED_FOR corregido en c.posts.php, c.fotos.php, c.cuenta.php y c.mensajes.php
- Inputs sin sanitizar corregidos en c.mensajes.php
- Contrasenas limitadas a 72 caracteres en c.cuenta.php para evitar DoS por bcrypt
- XSS corregido en ajax.borradores.php
PHP 8.3
Script completamente adaptado para PHP 8.3+. Corregidos todos los errores de tipado estricto, propiedades nulas, funciones obsoletas y avisos.
Smarty 4.5.6
Motor de plantillas actualizado de Smarty 2 a Smarty 4.5.6. Compilacion mas eficiente y cache mejorada.
Seguridad
- Contrasenas migradas de MD5 a bcrypt. Migracion automatica al iniciar sesion.
- Cloudflare Turnstile en lugar de reCaptcha.
- Correcciones en manejo de sesiones y cookies.
CKEditor 5 -- editor moderno con subida de imagenes integrada.
Font Awesome 7 -- mas de 4.500 iconos nuevos.
SEO -- Sitemap XML
Sitemap dinamico en /sitemap.xml con posts, categorias y perfiles. Registralo en Google Search Console.
Instalador nuevo
Proceso en 6 pasos con diseno moderno y deteccion automatica del entorno.
Notas de actualizacion desde 2.0.x
1. Sube todos los archivos al servidor
2. Ejecuta el upgrade desde /upgrade/
3. Sube la carpeta inc/ext/phpmailer/ (3 archivos)
4. Ejecuta en phpMyAdmin:
ALTER TABLE w_configuracion
ADD COLUMN IF NOT EXISTS smtp_host varchar(120) NOT NULL DEFAULT '',
ADD COLUMN IF NOT EXISTS smtp_user varchar(120) NOT NULL DEFAULT '',
ADD COLUMN IF NOT EXISTS smtp_pass varchar(120) NOT NULL DEFAULT '',
ADD COLUMN IF NOT EXISTS smtp_port smallint(5) NOT NULL DEFAULT 587,
ADD COLUMN IF NOT EXISTS smtp_from varchar(120) NOT NULL DEFAULT '';
CREATE TABLE IF NOT EXISTS u_vip (
vip_id int(11) NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL,
vip_tipo tinyint(1) NOT NULL DEFAULT 1,
vip_inicio int(11) NOT NULL DEFAULT 0,
vip_expira int(11) NOT NULL DEFAULT 0,
vip_notas varchar(255) NOT NULL DEFAULT '',
vip_admin int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (vip_id),
UNIQUE KEY user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS u_vip_rangos (
vr_id int(11) NOT NULL AUTO_INCREMENT,
rango_id int(11) NOT NULL,
PRIMARY KEY (vr_id),
UNIQUE KEY rango_id (rango_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE p_posts ADD COLUMN IF NOT EXISTS post_vip tinyint(1) NOT NULL DEFAULT 0;
CREATE TABLE IF NOT EXISTS s_tickets (
ticket_id int(11) NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL,
asunto varchar(120) NOT NULL DEFAULT '',
categoria varchar(30) NOT NULL DEFAULT 'tecnico',
prioridad tinyint(1) NOT NULL DEFAULT 2,
estado tinyint(1) NOT NULL DEFAULT 1,
fecha int(11) NOT NULL DEFAULT 0,
fecha_update int(11) NOT NULL DEFAULT 0,
leido_admin tinyint(1) NOT NULL DEFAULT 0,
leido_user tinyint(1) NOT NULL DEFAULT 1,
valoracion tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (ticket_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS s_mensajes (
msg_id int(11) NOT NULL AUTO_INCREMENT,
ticket_id int(11) NOT NULL,
user_id int(11) NOT NULL,
cuerpo text NOT NULL,
es_admin tinyint(1) NOT NULL DEFAULT 0,
fecha int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (msg_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS w_login_attempts (
id int(11) NOT NULL AUTO_INCREMENT,
ip varchar(45) NOT NULL DEFAULT '',
nick varchar(50) NOT NULL DEFAULT '',
fecha int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE p_posts ADD FULLTEXT KEY ft_tags (post_tags);
ALTER TABLE p_posts ADD FULLTEXT KEY ft_title_body (post_title, post_body);
5. Borra las carpetas /cache/ y /templates_c/
6. Configura el SMTP en Admin - Configuracion
Requisitos del servidor
PHP
- Version minima: PHP 8.0
- Version recomendada: PHP 8.2 o superior
Extensiones obligatorias:
- mysqli -- base de datos
- mbstring -- codificacion de texto
- gd -- procesamiento de imagenes
- curl -- peticiones HTTP externas
- json -- formato de datos
- session -- sesiones de usuario
- fileinfo -- deteccion de tipo de archivo
- openssl -- seguridad y cifrado
Configuracion recomendada:
allow_url_fopen = On
upload_max_filesize = 8M
post_max_size = 8M
max_execution_time = 60Base de datos
- MySQL 5.7 o superior
- MariaDB 10.4 o superior
Servidor web
- Apache con mod_rewrite activado (necesario para las URLs amigables)
- O Nginx con configuracion equivalente de rewrite
Permisos de escritura
Las siguientes carpetas deben tener permisos de escritura (666 o 777):
/cache/
/files/avatar/
/files/images/
/files/uploads/
/files/posts/
/config.inc/La mayoria de hostings compartidos actuales cumplen estos requisitos. Consulta la Guia de hostings compatibles en el foro si tienes dudas.
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
http://Registrate o inicia tu sesión par... contenido
Descarga
Mediafire
http://Registrate o inicia tu sesión par... contenido
Google Drive
http://Registrate o inicia tu sesión par... contenido
Tienes dudas o encuentras algun problema? Dejalo en los comentarios.
Continuaré trabajando en PHPost v4 corrigiendo y normalizando el código, completando las secciones pendientes y eliminando progresivamente el código legacy que aún se mantiene por compatibilidad.
Sobre Nueva etapa del proyecto: Refactorización completa:
- El proyecto va a continuar, pero con un enfoque diferente. La idea no es convertirlo en otro clon dentro del mismo formato, sino tomar la base conceptual y orientarlo hacia una propuesta más flexible y distinta, más cercana a un formato tipo blog/comunidad de contenido que a una réplica tradicional.
He realizado una actualización importante del CMS PHPPost para adaptarlo a tecnologías actuales y mejorar tanto la estabilidad como la compatibilidad futura del sistema.
Entre los principales cambios realizados se encuentran:
- Actualización completa a PHP 8.X.X
- Integración de CKEditor 5 como nuevo editor visual
- Migración y adaptación a Smarty
- Corrección de errores heredados y mejoras internas del núcleo
Esta actualización no ha sido únicamente un cambio de versión, sino una modernización general del sistema para garantizar un mejor rendimiento, mayor seguridad y compatibilidad con servidores actuales.
¿Qué se ha mejorado?
Compatibilidad con PHP 8.X.X
El CMS ahora funciona sobre una versión moderna de PHP, eliminando funciones obsoletas y adaptando el código a los nuevos estándares del lenguaje. Esto permite:
- Mayor velocidad de ejecución
- Mejor gestión de memoria
- Más seguridad
- Compatibilidad con hosting actuales y futuros
Además, se han corregido numerosos avisos, warnings y errores que aparecían en versiones recientes de PHP.
Nuevo editor CKEditor 5
Se ha sustituido el antiguo editor por CKEditor 5, ofreciendo:
- Interfaz más moderna
- Mejor compatibilidad con navegadores actuales
- Edición más estable
- Mejor experiencia al crear publicaciones y contenido
También se han adaptado funciones internas relacionadas con la subida de imágenes y la edición avanzada de textos.
Actualización de Smarty a la versión 5.8.0
El motor de plantillas Smarty ha sido actualizado y adaptado completamente para mejorar:
- Rendimiento del sistema de plantillas
- Seguridad en la renderización
- Compatibilidad con PHP moderno
- Organización interna del código
Durante el proceso se corrigieron múltiples incompatibilidades heredadas de versiones antiguas.
Correcciones y mejoras generales
Además de las actualizaciones principales, también se realizaron múltiples ajustes internos:
- Corrección de errores históricos
- Optimización de consultas y procesos
- Limpieza de código legado
- Mejoras de estabilidad
- Compatibilidad general con entornos modernos
- Nace Risus Nova 2.0
Con esta nueva etapa, el proyecto pasa a llamarse:
Risus Nova 2.0
El objetivo es mantener vivo el CMS, modernizarlo y convertirlo en una plataforma más sólida, rápida y preparada para seguir evolucionando durante los próximos años.
La comunidad también forma parte del proyecto.
Me gustaría conocer vuestra opinión y saber qué os gustaría ver en futuras versiones de Risus Nova 2.0.
Algunas ideas que ya tengo en mente son:
- Mejoras visuales y responsive
- Sistema de plugins
- Panel de administración modernizado
- Mejor SEO
- API REST
- Mejor sistema de usuarios y permisos
- Optimización de rendimiento
- Nuevas funciones sociales
Pero también quiero escuchar a la comunidad.
¿Qué funcionalidades os gustaría que tuviera?
¿Qué mejoraríais del CMS?
¿Qué echáis en falta actualmente?
Toda sugerencia, idea o reporte es bienvenida y ayudará a seguir mejorando el proyecto.
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Hola, como dice el titulo es Cerberus V4 estoy haciendo una actualización integral del proyecto, enfocada en modernizar la base del código, mejorar la organización interna y optimizar el rendimiento, manteniendo compatibilidad con PHP 8.3 y 8.4 sin requerir cambios disruptivos.
Le puse V4, porque en el foro esta el "v3" y como cambia algunas cosas como directorios, funciones esto puede llegar a romper un poco la compatibilidad y se modifica como es internamente, por eso será v4.0.0 (x.y.z)
X (Versión Mayor - Major): Indica cambios mayores, a menudo incompatibles con las versiones anteriores (breaking changes).
Ejemplo: De 1.5.0 a 2.0.0.
Y (Versión Menor - Minor): Indica la adición de nuevas funcionalidades, pero compatible con versiones anteriores.
Ejemplo: De 1.5.0 a 1.6.0.
Z (Versión Parche - Patch): Indica correcciones de errores (bugs) o mejoras internas que no alteran la funcionalidad ni rompen compatibilidad.
Ejemplo: De 1.5.0 a 1.5.1.
Cambios en el core del script
- Reestructuración general del código para mejorar claridad, mantenimiento y escalabilidad.
- Incorporación de handlers para centralizar lógica y evitar redundancias.
- Implementación progresiva de un sistema de assets para la gestión de recursos globales.
- Creación del directorio cerberus/ destinado a configuraciones del sistema.
- Generación automática del directorio storage/, que centraliza: avatar/, uploads/, logs/, cache/, entre otros.
- Reemplazo de functions.php por connection.php, incorporando nuevos helpers que simplifican la interacción con la base de datos.
Stack y mejoras técnicas
- PHP 8.5 (compatible con 8.3 y 8.4, espero que lo sea
)
- Smarty 5.8
- Adopción de tipado en funciones y parámetros para mayor robustez.
- Inicio de implementación de estándares PSR-4 (autoloading) y PSR-5 (documentación).
- Inicio de implementación de PSR-4 (autoloading) y adopción parcial de convenciones inspiradas en PSR-5/PHPDoc para documentación.
- Refactorización de la capa de base de datos:
- Reubicación y renombrado de database.php a Database.Collection.php.
- Mejora en la creación y optimización de tablas.
- Reubicación y renombrado de database.php a Database.Collection.php.
- Eliminación de código innecesario y refactorización de funciones existentes.
- Reorganización general de directorios y archivos del proyecto.
- Ajustes en el proceso de instalación y configuración inicial.
Cita:Aclaración: PSR-5 nunca fue aceptado oficialmente por PHP-FIG. Quedó como draft/propuesta y nunca pasó a estándar final, por lo que actualmente se toma más como una referencia/documentación basada en PHPDoc que como un estándar oficial.
Theme (Default)
El sistema de temas fue rediseñado con un enfoque más moderno y flexible:
- Eliminación de código innecesario y refactorización general.
- Reescritura completa del CSS utilizando variables, permitiendo mayor personalización.
- Actualización de dependencias:
- jQuery 4.0.0
- Font Awesome 7
- jQuery 4.0.0
- Optimización de fuentes mediante el uso de woff2.
- Implementación de plugins para:
- Carga automática del <head>
- Inclusión dinámica de archivos CSS y JS
- Carga automática del <head>
- Rediseño del theme base desde cero.
- Modos de tema disponibles:
- Light
- Dim
- Dark
- Midnight
- Soft
- High Contrast
- Light
- Paletas de color:
- Ocean
- Forest
- Violet
- Slate
- Coral
- Emerald
- Crimson
- Amber
- Ocean
Si lo quieren probar, les paso una copia, obviamente le falta mucho apenas esta siendo iniciado y tampoco me estoy enfocando tanto como debería. Se instala bien, y lo único que funciona es el login, tengo que hacer todo lo demás. Asi de esta forma cualquier error que tengan en la instalación u otro tipo de problemas me lo puedan hacer saber.
12.05.2026
Se añadió enlace hacia la demo, aunque con algunas rutas tiene problemas (puede ser por el hosting)
DEMO CERBERUS V4
14.05.2026
Corregí un problema en el manejo de IPs dentro de IPHandler.
La implementación anterior dependía de comparaciones sobre strings y podía ser engañada mediante representaciones alternativas de IP. Ahora las direcciones se normalizan usando inet_pton(), lo que mejora la validación y compatibilidad con IPv4/IPv6.
También ajusté el almacenamiento de IPs en base de datos.
Las tablas utilizaban previamente:
VARBINARY(45)
pero ese tamaño estaba basado en la representación textual de una IP y resultaba innecesario una vez que las direcciones comenzaron a normalizarse mediante inet_pton().
Ahora el almacenamiento fue migrado a:
VARBINARY(16)
ya que inet_pton() devuelve la representación binaria real:
- IPv4 → 4 bytes
- IPv6 → 16 bytes
Cita:Lo debo aplicar a PHPost v4 y ZCode
[align=center][b][url=Registrate o inicia tu sesión para ver este contenido]DESCARGA DESDE MEGA (Versión *****]
Captura
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Tenía visitando varias veces el sitio pero estaba cerrado, me lo recomendaron mucho, gracias por aceptarme
Después de mucho tiempo modificando este proyecto, he llegado a un punto donde necesito tomar una decisión importante sobre su futuro. He estado añadiendo funcionalidades, parcheando errores y haciendo mejoras incrementales, pero ha llegado el momento de dar un paso atrás y reestructurar todo desde sus cimientos.
La situación actual
Con el tiempo, el proyecto ha acumulado:
- Código legacy que se arrastra desde versiones antiguas
- Estructura de base de datos que no es óptima para las necesidades actuales
- Arquitectura inconsistente con múltiples patrones mezclados
- Complejidad innecesaria que dificulta el mantenimiento
- Themes desactualizados que necesitan modernización
El plan de refactorización
A partir de ahora, voy a enfocarme en:1. Base de datos
- Rediseño completo del esquema
- Normalización y optimización de tablas
- Eliminación de campos obsoletos
- Mejora en las relaciones entre entidades
- Reestructuración de clases y módulos
- Implementación consistente de patrones de diseño
- Separación clara de responsabilidades
- Eliminación de dependencias circulares
- Limpieza de código duplicado
- Eliminación de funcionalidades no utilizadas
- Refactorización de lógica compleja
- Documentación mejorada (por verse, siempre me olvido)
- Aprovechamiento completo de características de PHP 8
- Actualización de librerías y dependencias
- Mejores prácticas de seguridad
- Performance optimizada
- Adaptación gradual de los themes existentes
- Código más limpio y mantenible
- Mejor estructura de componentes
- Estilos más consistentes
Consideraciones importantes
Compatibilidad
No habrá compatibilidad hacia atrás durante este proceso. Los cambios en la base de datos y estructura del código romperán con versiones anteriores. Esto es necesario para poder hacer las mejoras que el proyecto necesita.
Estabilidad
Durante este período de transición:
- Puede haber inestabilidad temporal
- Algunas funcionalidades pueden estar temporalmente deshabilitadas
- El proyecto puede volverse más pesado mientras migro componentes
Esta no es una tarea de días o semanas. Es un proceso que llevará tiempo hacer bien. Prefiero hacerlo correctamente que rápido.
El objetivo final
El objetivo de todo esto es tener un proyecto que sea:
✅ Más comprensible - Código claro que cualquiera pueda entender
✅ Más simple - Sin complejidad innecesaria ni código oscuro
✅ Más mantenible - Fácil de actualizar y extender
✅ Más robusto - Menos bugs, mejor manejo de errores
✅ Más moderno - Aprovechando las mejores prácticas actuales
✅ Mejor documentado - Para que otros puedan contribuir
Si quieres contribuir:
- Espera a que la nueva estructura esté lista
- Revisa la documentación nueva cuando esté disponible
- Reporta issues si encuentras algo en las versiones de desarrollo
- Ideas claramente no hace falta que contribuyas con código, reparaciones, etc... Puedes dar ideas nuevas.
Reflexión finalSé que romper compatibilidad nunca es una decisión fácil, pero a veces es necesario para poder avanzar. He aprendido mucho modificando este proyecto, y parte de ese aprendizaje es reconocer cuándo algo necesita ser rehecho correctamente en lugar de seguir parcheando.
Este es un compromiso con la calidad a largo plazo del proyecto. Puede que sea un camino difícil, pero al final tendremos algo mucho mejor.
Gracias por su comprensión y apoyo. 🙏
Última versión estable: http://Registrate o inicia tu sesión par... contenido (creo que podría ser este, es del 2022)
Última versión anterior estable: http://Registrate o inicia tu sesión par... contenido (este es del 2019 php 7)
Última versión desarrollo: http://Registrate o inicia tu sesión par... contenido (subido 15.04.26, no contiene las imágenes de categorías, tiene otras .svg)
Hola ¿cómo puedo mostrar la firma de usuario en la sección de fotos en particular en .m_fotos_ver_content ?

