¡Bienvenido! ¿Aún no estás registrado?, deberás registrarte antes de poder usar el Chat, Comentar y Descargar en el Foro. Usa un email válido para la activación.
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

DESCARGAS Risus Nova 2.0 — Descarga, Novedades y Requisitos
#1

4
Mejor respuesta del mensaje Risus Nova 2.0 — Descarga, Novedades y Requisitos
Risus Nova 2.0 — Novedades y Cambios
La actualización más grande de PHPost en años


Después de meses de trabajo, hoy publicamos Risus Nova 2.0, una actualización mayor que moderniza el script de arriba a abajo. Aquí os contamos todo lo que ha cambiado.


⚙️ PHP 8.3

El script ha sido completamente adaptado para funcionar con PHP 8.3+. La versión 7 lleva sin soporte oficial desde diciembre de 2022, lo que significaba que cualquier instalación estaba expuesta a vulnerabilidades sin parche.

Se han corregido todos los errores de tipado estricto, propiedades nulas, funciones obsoletas y avisos que PHP 8 generaba con el código anterior. El resultado es un script más rápido, más seguro y compatible con los servidores actuales.



📦 Smarty 4.5.6

El motor de plantillas ha pasado de Smarty 2 a Smarty 4.5.6. La versión anterior generaba decenas de errores en PHP 8 que impedían el funcionamiento correcto del script. Con Smarty 4 la compilación de plantillas es más eficiente y el sistema de caché funciona mejor.



🔒 Seguridad
 
  • Contraseñas migradas de MD5 a bcrypt. MD5 es inseguro desde hace años. Las contraseñas de usuarios existentes se migran automáticamente a bcrypt la primera vez que inician sesión, sin que tengan que hacer nada.
  • Cloudflare Turnstile en lugar de reCaptcha en los formularios de registro y login.
  • Corregidas varias vulnerabilidades menores en el manejo de sesiones y cookies.
 


✍️ Nuevo editor — CKEditor 5

El editor de texto ha sido reemplazado por CKEditor 5, uno de los editores más completos y modernos disponibles. Más cómodo, más intuitivo y mejor adaptado a dispositivos móviles.



🔤 Font Awesome 7

Los iconos del script se han actualizado a Font Awesome 7, con más de 4.500 iconos nuevos y mejor rendimiento de carga.



⚡ JavaScript
 
  • jQuery actualizado de 3.5.1 a 3.7.1
  • Eliminados markItUp (usaba eval()) y autogrow (roto en jQuery 1.9+)
  • scrollTo actualizado de 1.4.2 a 2.1.3
  • Eliminadas todas las referencias a Taringa y Poringa del código
  • El buscador ahora redirige al buscador interno del sitio
  • Scripts movidos al final del body para mejor rendimiento
 


🗺️ SEO — Sitemap XML

Se ha añadido un sitemap XML dinámico accesible en /sitemap.xml. Se genera automáticamente con todos los posts públicos, categorías y perfiles de usuario. Regístralo en Google Search Console para mejorar el indexado de tu sitio.



🛠️ Instalador nuevo

El instalador ha sido reescrito desde cero. Proceso en 6 pasos con diseño moderno, detección automática del entorno (localhost vs producción), creación automática de todas las tablas, rangos, configuración y usuario administrador. Ya no hace falta tocar nada a mano después de instalar.



📋 Panel de Administración

El panel principal ha sido rediseñado con tarjetas de estado que muestran el rendimiento del servidor, el estado de moderación y la apariencia activa. Incluye un comprobador automático de versiones que avisa cuando hay una actualización disponible.



Notas de actualización

Si actualizas desde una versión anterior, ejecuta el upgrade desde /upgrade/ y luego ejecuta estas dos queries en phpMyAdmin:

 
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);

Borra también la carpeta /cache/ de la raíz del sitio tras actualizar.

 
CHANGELOG

=====================================================
RISUS NOVA 2.0 — CHANGELOG
PHPost | Registrate o inicia tu sesión para ver este contenido
Fecha: Mayo 2026
Autor: Tronlar

=====================================================

------------------------------------------------------
COMPATIBILIDAD PHP 8
------------------------------------------------------


- Compatibilidad total con PHP 8.3+
- Corregido TypeError: propiedad tsUser::$info declarada
como array no aceptaba null (PHP 8 tipado estricto)
- Corregido bug critico en loadUser() que usaba user_id
en lugar de user_rango al cargar permisos del usuario
- Eliminadas funciones deprecadas de PHP 7.x
- Corregidos warnings masivos por propiedades null en
QueryString.php, functions.php y bbcode.inc.php
- Corregidas claves indefinidas en $_GET en posts.php
y c.posts.php con isset() y operador ??
- Sistema de sesiones adaptado a PHP 8 con
random_bytes() criptográficamente seguro
- Logout mejorado con detección dinámica de cookie de
sesion por patron (pp_XXXXXX_sid)
- Corregido TypeError en collection.php del upgrade:
funciones mysql_* migradas a mysqli_*
- Corregido is_resource() en upgrade por instanceof
mysqli_result (PHP 8 ya no usa resources)

------------------------------------------------------
BASE DE DATOS
------------------------------------------------------


- Motor de tablas del upgrade cambiado de MyISAM a
InnoDB con charset utf8mb4
- Añadidos indices FULLTEXT en p_posts para búsqueda
de posts relacionados (ft_tags, ft_title_body)
- Añadida columna post_image en p_posts
- Añadida columna user_pwtype en u_miembros para
gestión de migración de hash de contraseñas
- Corregidos indices huérfanos en tablas u_perfil y
u_portal que referenciaban columnas inexistentes
- Añadidas columnas stats_comunidades,
stats_respuestas y stats_online en w_stats

------------------------------------------------------
SEGURIDAD
------------------------------------------------------


- Contraseñas migradas de MD5 a bcrypt con migración
automática al iniciar sesión (sin acción del usuario)
- Corregido login-salir.php: ahora borra correctamente
la cookie de sesión dinámica ademas de la legacy
- Eliminados error_log de debug en upload-crop.php que
volcaban contenido de $_POST y carpeta uploads/
- config.inc.php limpiado: eliminadas constantes
TSCookieName, RC_PUK y RC_PIK ya sin uso

------------------------------------------------------
MOTOR DE PLANTILLAS
------------------------------------------------------


- Migración de Smarty 2 a Smarty 4.5.6
- Compatible con PHP 8.3 sin warnings ni errores
- Compilación de plantillas mas eficiente
- Cache de plantillas mejorada

------------------------------------------------------
JAVASCRIPT
------------------------------------------------------


- jQuery actualizado de 3.5.1 a 3.7.1
- jquery.plugins.js: eliminado markItUp 1.1.5
(usaba eval() para desofuscár su código)
- jquery.plugins.js: eliminado autogrow 1.2.2
(usaba $.browser eliminado en jQuery 1.9+)
- jquery.plugins.js: scrollTo actualizado de 1.4.2
a 2.1.3 (compatible con jQuery 3.x/4.x)
- acciones.js: eliminadas referencias a Taringa y
Poringa del buscador; ahora usa el buscador interno
- acciones.js: eliminada funcion change_search_engine
- acciones.js: modernizado document.all (IE legacy)
- acciones.js: modernizado e.keyCode con e.key
- acciones.js: cookies con fechas hardcodeadas
sustituidas por fechas dinamicas
- funciones.js: $.post migrado a $.ajax con
encodeURIComponent en recover-pass y recover-validation
- funciones.js: eliminado campo RefID y enlace a
tscript.in del formulario de afiliacion
- Buscador home redirige al buscador interno del sitio

------------------------------------------------------
INTERFAZ Y DISEÑO
------------------------------------------------------


- Iconos actualizados a Font Awesome 7
- Nuevo editor de texto CKEditor 5
- Scripts JS movidos al final del body para mejor
rendimiento de carga
- Eliminado polyfill jQuery.browser del header
- og:image y twitter:image ahora dinamicas segun
el contenido (post, foto o imagen por defecto)
- Añadido twitter:image que faltaba en el header
- Los dos $(document).ready del header fusionados en uno
- Lazy loading en imágenes de muro y comentarios

------------------------------------------------------
PANEL DE ADMINISTRACION
------------------------------------------------------


- Panel principal rediseñado con tarjetas de estado
- Comprobación automática de versiones desde phpost.es
- Campos de reCaptcha cambiados a Cloudflare Turnstile
- Log de mejoras y parches de seguridad visible
- Sección de equipo administrativo

------------------------------------------------------
INSTALADOR (NUEVO)
------------------------------------------------------


- Instalador completamente reescrito desde cero
- Proceso guiado en 6 pasos con diseño moderno
- Detecta automáticamente entorno localhost vs
producción (http vs https)
- Crea todas las tablas, indices, rangos,
configuración y usuario administrador
- Campos de Cloudflare Turnstile en el instalador
guardados directamente en la base de datos
- Corregidos todos los errores SQL de instalacion
(indices huerfanos, columnas duplicadas, etc.)
- Post de bienvenida con BBCode y contenido correcto

------------------------------------------------------
UPGRADE
------------------------------------------------------


- collection.php migrado de mysql_* a mysqli_*
- Corregida comprobacion is_resource() a
instanceof mysqli_result
- Tablas del upgrade cambiadas a InnoDB/utf8mb4

------------------------------------------------------
OTROS
------------------------------------------------------


- Nuevos botones de compartir en redes sociales
- RSS feed implementado
- Sistema de avatares mejorado
- Limpieza de archivos y librerias innecesarias
- version.json disponible en phpost.es para
actualizaciones automáticas desde el panel

=====================================================
NOTAS DE ACTUALIZACIÓN
=====================================================


Si actualizas desde una versión anterior:

1. Sube todos los archivos al servidor
2. Ejecuta el upgrade desde /upgrade/
3. Ejecuta en phpMyAdmin:

 
ALTER TABLE p_posts ADD FULLTEXT KEY ft_tags (post_tags);
ALTER TABLE p_posts ADD FULLTEXT KEY ft_title_body (post_titlepost_body);
4. Borra la carpeta /cachede la raiz del sitio 


Las contrasenas de usuarios existentes se migraran
automáticamente a bcrypt la próxima vez que inicien
sesión. No se requiere ninguna acción por parte de
los usuarios.

=====================================================
CRÉDITOS
=====================================================


PHPost Team | Registrate o inicia tu sesión para ver este contenido
Basado en T!Script por Tronlar

=====================================================

 


Antes de instalar Risus Nova 2.0, asegúrate de que tu hosting cumple los siguientes requisitos.


🐘 PHP
 
  • Versión mínima: PHP 8.0
  • Versión recomendada: PHP 8.2 o superior

Extensiones obligatorias:
  • mysqli — base de datos
  • mbstring — codificación de texto
  • gd — procesamiento de imágenes
  • curl — peticiones HTTP externas
  • json — formato de datos
  • session — sesiones de usuario
  • fileinfo — detección de tipo de archivo
  • openssl — seguridad y cifrado

Configuración recomendada:
allow_url_fopen = On
upload_max_filesize = 8M
post_max_size = 8M
max_execution_time = 60
 


🗄️ Base de datos
 
  • MySQL 5.7 o superior
  • MariaDB 10.4 o superior
 


🌐 Servidor web
 
  • Apache con mod_rewrite activado (necesario para las URLs limpias)
  • O Nginx con configuración equivalente de rewrite
 


📁 Permisos de escritura

Las siguientes carpetas deben tener permisos de escritura (666 o 777 según el hosting):
 
/cache/
/files/avatar/
/files/images/
/files/uploads/
/config.inc/
 


💾 Espacio en disco
 
  • Mínimo recomendado: 50 MB (sin contar archivos subidos por usuarios)
 


La mayoría de hostings compartidos actuales cumplen estos requisitos. Si tienes dudas, consulta con tu proveedor de hosting o pregunta en este foro.
 

[img]Registrate o inicia tu sesión para ver este contenido[/img]

[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
DEMO
Debes agradecer para ver el contenido...
 
Descarga

Mediafire
Debes agradecer para ver el contenido...

Google Drive
Debes agradecer para ver el contenido...



¿Tienes dudas o encuentras algún problema? Déjalo en los comentarios.
Responder
#2

1
Hola, estuve probando la versión subida y encontré algunas cosas que quizá quedaron afuera del empaquetado final o del último repaso, te las paso por si te sirven:
  • En el topic anterior mencionabas Smarty 5.8, pero en esta versión quedó Smarty 4.5.6 y además el script ya se venía usando Smarty 3 anteriormente.
  • En admin hay errores JS porque admin.js depende de jQuery y ahora jQuery carga al final del body. También pasa con algunos <script> inline. Quizá convendría dejar jQuery en el <head> con el atributo defer para mantener compatibilidad sin bloquear carga.
  • Al crear/editar posts se carga Font Awesome 6 además de la 7 que ya está en el head.
  • En PHP 8.5 me aparecieron errores tipados relacionados con permisos/perfil. Bajando a 8.3 siguen algunos. Con display_errors activo pude ver que faltan validaciones en ciertos casos.

Arriba del constructor 
public array $permisos = []; 

y luego reemplazar $this->permisos 
$this->permisos unserialize($datis['r_allows']) ?: [];

foreach([
'sumo''suad'] as $permiso) {
    if(empty($this->permisos[$permiso])) {
        $this->permisos[$permiso] = false;
    }


El foreach es porque algunos rangos antiguos no tienen definidos esos índices y termina generando faltantes.

También en la función com_banned() después de 
$data db_exec('fetch_assoc'$query); 

faltaría validar
if(empty($data)) {
    return false;

  • En admin > soporte sigue apareciendo "PHPost 1.4.0.000".
  • También vi que faltaría agregar p_fondo y p_fondoper en u_perfil.

Te lo digo porque quizá algunas cosas quedaron fuera del script final.

PD: También noté que en la demo, los JS siguen cargando en el head y en el .rar están en footer, probablemente por eso aparecen esos errores mencionados.

Accede al servidor de Discord y descarga ZCode|PHPost
Responder
#3

0
(Hace 2 horas)Miguel92 escribió: Debes agradecer para ver el contenido...Hola, estuve probando la versión subida y encontré algunas cosas que quizá quedaron afuera del empaquetado final o del último repaso, te las paso por si te sirven:
  • En el topic anterior mencionabas Smarty 5.8, pero en esta versión quedó Smarty 4.5.6 y además el script ya se venía usando Smarty 3 anteriormente.
  • En admin hay errores JS porque admin.js depende de jQuery y ahora jQuery carga al final del body. También pasa con algunos <script> inline. Quizá convendría dejar jQuery en el <head> con el atributo defer para mantener compatibilidad sin bloquear carga.
  • Al crear/editar posts se carga Font Awesome 6 además de la 7 que ya está en el head.
  • En PHP 8.5 me aparecieron errores tipados relacionados con permisos/perfil. Bajando a 8.3 siguen algunos. Con display_errors activo pude ver que faltan validaciones en ciertos casos.

Arriba del constructor 
 
public array $permisos = []; 

y luego reemplazar $this->permisos 
$this->permisos unserialize($datis['r_allows']) ?: [];

foreach([
'sumo''suad'] as $permiso) {
    if(empty($this->permisos[$permiso])) {
        $this->permisos[$permiso] = false;
    }


El foreach es porque algunos rangos antiguos no tienen definidos esos índices y termina generando faltantes.

También en la función com_banned() después de 
 
$data db_exec('fetch_assoc'$query); 

faltaría validar
if(empty($data)) {
    return false;

  • En admin > soporte sigue apareciendo "PHPost 1.4.0.000".
  • También vi que faltaría agregar p_fondo y p_fondoper en u_perfil.

Te lo digo porque quizá algunas cosas quedaron fuera del script final.

PD: También noté que en la demo, los JS siguen cargando en el head y en el .rar están en footer, probablemente por eso aparecen esos errores mencionados.

Hola Miguel, estaba probando en otra demo y en la que he publicado tiene archivos viejos, no me había dado cuenta, me había liado de una demo a otra.
He salido, ahora cuando venga, te leo mejor.
Responder
#4

0
(Hace 2 horas)Miguel92 escribió: Debes agradecer para ver el contenido...Hola, estuve probando la versión subida y encontré algunas cosas que quizá quedaron afuera del empaquetado final o del último repaso, te las paso por si te sirven:
  • En el topic anterior mencionabas Smarty 5.8, pero en esta versión quedó Smarty 4.5.6 y además el script ya se venía usando Smarty 3 anteriormente.
  • En admin hay errores JS porque admin.js depende de jQuery y ahora jQuery carga al final del body. También pasa con algunos <script> inline. Quizá convendría dejar jQuery en el <head> con el atributo defer para mantener compatibilidad sin bloquear carga.
  • Al crear/editar posts se carga Font Awesome 6 además de la 7 que ya está en el head.
  • En PHP 8.5 me aparecieron errores tipados relacionados con permisos/perfil. Bajando a 8.3 siguen algunos. Con display_errors activo pude ver que faltan validaciones en ciertos casos.

Arriba del constructor 
 
public array $permisos = []; 

y luego reemplazar $this->permisos 
$this->permisos unserialize($datis['r_allows']) ?: [];

foreach([
'sumo''suad'] as $permiso) {
    if(empty($this->permisos[$permiso])) {
        $this->permisos[$permiso] = false;
    }


El foreach es porque algunos rangos antiguos no tienen definidos esos índices y termina generando faltantes.

También en la función com_banned() después de 
 
$data db_exec('fetch_assoc'$query); 

faltaría validar
if(empty($data)) {
    return false;

  • En admin > soporte sigue apareciendo "PHPost 1.4.0.000".
  • También vi que faltaría agregar p_fondo y p_fondoper en u_perfil.

Te lo digo porque quizá algunas cosas quedaron fuera del script final.

PD: También noté que en la demo, los JS siguen cargando en el head y en el .rar están en footer, probablemente por eso aparecen esos errores mencionados.

Tienes razón, fue un error en el mensaje anterior. La versión incluida es Smarty 4.5.6, que es la rama estable actual recomendada para producción. 
Smarty 5 todavía es experimental y tiene breaking changes que romperían muchas plantillas existentes. 
Smarty 4.5.6 es compatible con PHP 8.3 y es exactamente lo que lleva el paquete.

jQuery se ha movido al <head> sin defer, que es la solución más limpia para este script, ya que es una dependencia global que varios scripts inline del body necesitan antes de ejecutarse.
El resto de scripts (plugins, acciones, funciones, CKEditor) siguen en el footer.
La demo no tenía los últimos archivos subidos, de ahí que viste el error.


Ya lo he visto, estaba hardcodeado en m.agregar.form.tpl, el formulario de crear/editar posts. 
Se ha eliminado el

 
<link>

de FA 6.4.0 y el bloque
 
<style>

que lo acompañaba, y se ha actualizado la clase
 
fas fa-info-circle

a
 
fa-solid fa-circle-info

para que use FA7 de forma consistente.


Aplicadas y mejoradas respecto a lo que propones. En c.user.php:

Declaración tipada:
 
public array $permisos = [];

Deserialización segura con valores por defecto extendidos:
 
$this->permisos = unserialize($datis['r_allows']) ?: [];
foreach (['sumo', 'suad', 'gopfd', 'goaf', 'gopfp', 'govwm', 'gorpap',
          'godp', 'gopp', 'gopcp', 'govpp', 'govpn', 'goepc', 'godpc',
          'gopf', 'gopcf', 'movcud', 'movcus'] as $_p) {
    if (!isset($this->permisos[$_p])) {
        $this->permisos[$_p] = false;
    }
}

Se ha ampliado el foreach a todos los permisos conocidos del sistema, no solo
 

y
 

, para cubrir cualquier rango antiguo que pueda tener índices faltantes.


Validación en com_banned():
 
$data = db_exec('fetch_assoc', $query);
if (empty($data)) {
    return true;
}

Nota: se devuelve
 

en lugar de
 

porque la función devuelve true cuando no hay ban activo — devolver false indicaría que algo falló, cuando en realidad simplemente no hay registro de ban.


Era un texto hardcodeado en el bloque de créditos del footer del panel de administración. Ya lo he corregido a "Risus Nova 2.0".


Añadidas en el instalador (database.php) y en el upgrade (collection.php). 
Las instalaciones nuevas las tendrán automáticamente y las existentes las recibirán al pasar el upgrade
Si tienes una instalación actual puedes ejecutar en phpMyAdmin:

 
ALTER TABLE u_perfil ADD p_fondo VARCHAR(255) NOT NULL DEFAULT '';
ALTER TABLE u_perfil ADD p_fondoper INT(1) NOT NULL DEFAULT '0';


Todo irá incluido en el parche 2.0.1.
Gracias por el reporte, comentarios así ayuda a mejorar el script.
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)