Phpost

Versión completa: Sistema de Insignias v1.0
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Sistema de Insignias v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost


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]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 


Crea 20 insignias predefinidas que se asignan automáticamente cuando el usuario cumple las condiciones.
Usa el sistema de medallas existente del script — las insignias aparecen en el perfil y el usuario recibe una notificación al obtenerlas.



🏅 Insignias incluidas (20)

Posts
  • Primer Post · Escritor (10) · Gran Escritor (50) · Maestro del Post (100)

Comentarios
  • Primer Comentario · Conversador (50) · Gran Conversador (100) · Rey del Debate (500)

Seguidores
  • Popular (10) · Muy Popular (50) · Estrella (100) · Leyenda (500)

Puntos
  • Novato (50) · Activo (200) · Veterano (500) · Elite (1000)

Antigüedad
  • Un Mes · Tres Meses · Seis Meses · Un Año
 


⚡ Características
 
  • Se asignan automáticamente — sin intervención del admin
  • El usuario recibe una notificación al obtener una insignia
  • Se muestran en el perfil en la sección Medallas
  • Puedes añadir más insignias desde el panel admin → Medallas
  • No crea tablas nuevas — usa las tablas de medallas existentes
 


📋 Requisitos
 
  • Risus Nova 2.0 instalado y funcionando
  • PHP 8.0+
 


🛠️ Instalación

Paso 1 — Ejecutar el instalador

Sube la carpeta install/ a la raíz y accede a:

 
Código:
Registrate o inicia tu sesión para ver este contenido

⚠️ Elimina la carpeta install/ cuando termine.


Paso 2 — Subir el archivo
 
Código:
inc/class/c.insignias.php  →  inc/class/

Paso 3 — Hooks


a) Nuevo post — en c.posts.php al final de newPost() antes del return $postID:
Código PHP:
return $postID;
} else return 
show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.''db');
} else return -
1;
} else return 
'No tienes permiso para crear posts.';



Agregar:
 
Código:
require_once TS_CLASS . 'c.insignias.php';
(new tsInsignias())->comprobar($tsUser->uid);


b) Nuevo comentario — en ajax.comentario.php buscar:
Código PHP:
if(is_array($tsComment)) $smarty->assign("tsComment",$tsComment); 


Arriba agregar
 
Código:
require_once TS_CLASS . 'c.insignias.php';
(new tsInsignias())->comprobar($tsUser->uid);


c) Login — en ajax.login.php buscar:
Código PHP:
else echo $tsUser->loginUser($user$pass$reme); 


Reemplazar por:
 
Código:
else {
    $resultado = $tsUser->loginUser($user, $pass, $reme);
    if ($resultado === TRUE || is_numeric($resultado)) {
        // ── Insignias ──
        require_once TS_CLASS . 'c.insignias.php';
        (new tsInsignias())->comprobar($tsUser->uid);
        // ────────────────
    }
    echo $resultado;
}


Paso 4 — Mostrar medallas a 32px en el perfil

En m.perfil_sidebar.tpl buscar:

 
Código:
<img src="{$tsConfig.tema.t_url}/images/icons/med/{$m.m_image}_16.png"

Reeplazar por:
 
Código:
<img src="{$tsConfig.tema.t_url}/images/icons/med/{$m.m_image}_32.png" width="32" height="32"


Paso 5 — Borrar la caché

Borra el contenido de la carpeta /cache/ del sitio.



➕ Añadir más insignias

Desde el panel de admin → Medallas → Nueva medalla. Las condiciones disponibles son:
 
  • m_cond_user = 1 → Posts publicados
  • m_cond_user = 2 → Comentarios escritos
  • m_cond_user = 3 → Seguidores
  • m_cond_user = 4 → Puntos acumulados
  • m_cond_user = 5 → Días en el sitio
 


🗑️ Desinstalar

Elimina inc/class/c.insignias.php y quita los hooks. Las insignias creadas se pueden borrar desde el panel admin → Medallas.

 
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 algún problema? Déjalo en los comentarios.