Hace 2 horas
1
(Hace 5 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
Código PHP: ( Seleccionar Todo )public array $permisos = [];
y luego reemplazar $this->permisos
Código PHP: ( Seleccionar Todo )$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
Código PHP: ( Seleccionar Todo )$data = db_exec('fetch_assoc', $query);
faltaría validar
Código PHP: ( Seleccionar Todo )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
Código: ( Seleccionar Todo )
<link>de FA 6.4.0 y el bloque
Código: ( Seleccionar Todo )
<style>que lo acompañaba, y se ha actualizado la clase
Código: ( Seleccionar Todo )
fas fa-info-circlea
Código: ( Seleccionar Todo )
fa-solid fa-circle-infopara que use FA7 de forma consistente.
Aplicadas y mejoradas respecto a lo que propones. En c.user.php:
Declaración tipada:
Código: ( Seleccionar Todo )
public array $permisos = [];Deserialización segura con valores por defecto extendidos:
Código: ( Seleccionar Todo )
$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
Código: ( Seleccionar Todo )
sumoy
Código: ( Seleccionar Todo )
suad, para cubrir cualquier rango antiguo que pueda tener índices faltantes.
Validación en com_banned():
Código: ( Seleccionar Todo )
$data = db_exec('fetch_assoc', $query);
if (empty($data)) {
return true;
}Nota: se devuelve
Código: ( Seleccionar Todo )
trueen lugar de
Código: ( Seleccionar Todo )
falseporque 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:
Código: ( Seleccionar Todo )
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.


Facebook
Twitter
Reddit
Digg
del.icio.us
Tumblr
Pinterest
Blogger
Fark
LinkedIn
Mix
Google