¡Bienvenido a PHPost!

Para participar en el foro, descargar complementos y acceder al chat, necesitas una cuenta activa.

Descarga Risus Nova 2.0 para comenzar tu comunidad.

Regístrate Descargar Risus Nova

¿Ya tienes cuenta? Inicia sesión aquí

Últimos temas

Estadísticas del foro
  • Mensajes del foro:1,957
  • Temas del foro:614
  • Miembros:1,036
  • Último miembro:carlos007r


Enviado por: Tronlar
05-29-2026, 10:25 AM
Foro: Terminados
- Sin respuestas

Modo Mantenimiento Mejorado v1.0
Mejora 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]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]


Mejora la página de mantenimiento añadiendo una cuenta atrás en tiempo real, redes sociales y mensaje personalizable desde el panel de admin.


🛠️ Características nuevas
 
  • Cuenta atrás en tiempo real — días, horas, minutos y segundos hasta la vuelta
  • Fecha configurable desde el admin — selector de fecha y hora
  • Redes sociales — botones de Twitter/X, Instagram y Facebook mientras el sitio está caído
  • Mensaje personalizable — ya existía, ahora con más opciones
 


🛠️ 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 los archivos
 
Código:
mantenimiento.tpl   →  themes/default/templates/sections/
m.admin_configs.tpl →  themes/default/templates/admin_mods/
c.admin.php         →  inc/class/


Paso 3 — Borrar la caché

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


⚠️ Importante — si los campos no se guardan

Si al guardar la configuración los campos de redes y fecha no se guardan, abre inc/class/c.admin.php en la función saveConfig() y busca:
 
Código:
'pkey' => $tsCore->setSecure($_POST['pkey']),
'skey' => $tsCore->setSecure($_POST['skey']),
);

Cámbialo por:
 
Código:
'pkey' => $tsCore->setSecure($_POST['pkey']),
'skey' => $tsCore->setSecure($_POST['skey']),
'offline_fecha'           => $tsCore->setSecure($_POST['offline_fecha'] ?? ''),
'offline_redes_twitter'   => $tsCore->setSecure($_POST['offline_redes_twitter'] ?? ''),
'offline_redes_instagram' => $tsCore->setSecure($_POST['offline_redes_instagram'] ?? ''),
'offline_redes_facebook'  => $tsCore->setSecure($_POST['offline_redes_facebook'] ?? ''),
);


Configurar

Ve a Administración → Ajustes y busca la sección "Modo mantenimiento":
  • Campo de fecha de vuelta — para la cuenta atrás (dejar vacío para no mostrarla)
  • Campos de redes sociales — solo el nombre de usuario sin @ ni URL (dejar vacío para no mostrar)
 


🗑️ Desinstalar

Restaura los archivos originales. Las columnas se pueden borrar con:
Código:
ALTER TABLE w_configuracion
DROP COLUMN offline_fecha,
DROP COLUMN offline_redes_twitter,
DROP COLUMN offline_redes_instagram,
DROP COLUMN offline_redes_facebook;
 

 
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.



Imprimir


Enviado por: Tronlar
05-29-2026, 09:31 AM
Foro: Terminados
- Sin respuestas

Panel de Reportes 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]
 


Panel centralizado en el admin con todos los reportes pendientes agrupados por contenido. Muestra cuántos usuarios han reportado cada elemento y permite aprobar o eliminar con un clic.


🚩 Características
 
  • Reportes agrupados por objeto — si 5 usuarios reportan el mismo post aparece una vez con contador
  • Filtro por tipo: Posts, Mensajes, Usuarios, Fotos, Comunidades, Temas
  • Muestra quién reportó, cuándo y el motivo
  • Aprobar — limpia los reportes y restaura el contenido si estaba oculto
  • Eliminar — elimina el contenido y limpia los reportes
  • Sin instalador ni base de datos nueva — usa la tabla existente
 


🛠️ Instalación

Paso 1 — Subir los archivos
 
Código:
inc/class/c.reportes.php                                    →  inc/class/
inc/php/ajax/ajax.reportes.php                              →  inc/php/ajax/
themes/default/templates/admin_mods/m.admin_reportes.tpl   →  themes/default/templates/admin_mods/

Paso 2 — En admin.php

Buscar:
 
Código:
} elseif($action == 'feed'){

Añade justo antes:
 
Código:
} elseif($action == 'reportes'){
    require_once TS_CLASS . 'c.reportes.php';
    $tsR = new tsReportes();
    $pagina = max(1, (int)($_GET['page'] ?? 1));
    $tipo   = (int)($_GET['tipo'] ?? 0);
    $smarty->assign('tsReportes', $tsR->getReportes($tipo, $pagina));
    $smarty->assign('tsTipoFiltro', $tipo);

Paso 3 — En t.admin.tpl

Busca:
 
Código:
{elseif $tsAction == 'rangos'}
                                {include file='admin_mods/m.admin_rangos.tpl'}

Reemplazar por:
 
Código:
{elseif $tsAction == 'rangos'}
                                {include file='admin_mods/m.admin_rangos.tpl'}
                                {elseif $tsAction == 'reportes'}
                                {include file='admin_mods/m.admin_reportes.tpl'}


Paso 4 — En m.admin_sidemenu.tpl ponen esto donde quieran
 
Código:
<li><a href="{$tsConfig.url}/admin/reportes"><i class="fa-solid fa-flag"></i> Reportes</a></li>


Paso 5 — Borrar la caché

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


🗑️ Desinstalar

Elimina los archivos y quita los cambios en admin.php y t.admin.tpl. No hay tablas que borrar.

 
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.




Imprimir


Enviado por: Tronlar
05-29-2026, 08:31 AM
Foro: Terminados
- Sin respuestas

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


Detecta automáticamente cuando alguien se registra desde una IP ya usada por otra cuenta y notifica al admin. Panel en el admin para ver todas las IPs con múltiples cuentas.


🕵️ Características
 
  • Notificación automática al admin cuando se detecta IP duplicada
  • Panel en /admin/duplicados con lista de IPs sospechosas
  • Muestra todas las cuentas de cada IP con estado, posts y puntos
  • Enlace directo a GeoIP para ver la ubicación de la IP
  • Enlace para editar cada usuario directamente
 


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


🛠️ 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 los archivos
 
Código:
inc/class/c.duplicados.php
  →  inc/class/
themes/default/templates/admin_mods/m.admin_duplicados.tpl
  →  themes/default/templates/admin_mods/

Paso 3 — En c.registro.php

Buscar:
 
Código:
$tsData['user_id'] = db_exec('insert_id');

Debajo agregar:
 
Código:
// ── Detectar cuentas duplicadas ──
require_once TS_CLASS . 'c.duplicados.php';
$tsIpReg = !empty($_SERVER['HTTP_X_FORWARDED_FOR'])
    ? trim(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0])
    : ($_SERVER['REMOTE_ADDR'] ?? '0.0.0.0');
(new tsDuplicados())->comprobarRegistro($tsData['user_id'], $tsIpReg);
// ─────────────────────────────────

Paso 4 — En admin.php

Buscar:
 
Código:
} elseif($action == 'feed'){


Arriba agregar:
 
Código:
} elseif($action == 'duplicados'){
    require_once TS_CLASS . 'c.duplicados.php';
    $tsD = new tsDuplicados();
    $pagina = max(1, (int)($_GET['page'] ?? 1));
    $smarty->assign('tsDuplicados', $tsD->getDuplicados($pagina));

Paso 5 — Añadir en t.admin.tpl

Buscar:
 
Código:
{elseif $tsAction == 'rangos'}
                                {include file='admin_mods/m.admin_rangos.tpl'}

Cambiar por:
 
Código:
{elseif $tsAction == 'rangos'}
                                {include file='admin_mods/m.admin_rangos.tpl'}
                                {elseif $tsAction == 'duplicados'}
                                {include file='admin_mods/m.admin_duplicados.tpl'}

Paso 6 — En m.admin_sidemenu.tpl poner esto donde quieran:
 
Código:
<li><a href="{$tsConfig.url}/admin/duplicados"><i class="fa-solid fa-user-secret"></i> Cuentas duplicadas</a></li>


Paso 7 — Borrar la caché

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



🗑️ Desinstalar
 
Código:
ALTER TABLE u_miembros DROP COLUMN user_reg_ip;

Elimina los archivos y quita los hooks añadidos.

 
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.




Imprimir


Enviado por: Tronlar
05-29-2026, 07:48 AM
Foro: Terminados
- Respuestas (3)

Límite de Posts por Día 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]


El admin configura cuántos posts puede publicar cada rango por día. Cuando el usuario llega al límite recibe un mensaje indicando a qué hora podrá publicar de nuevo. Los admins y moderadores nunca tienen límite.


📝 Características
 
  • Límite configurable por rango desde el panel de admin
  • 0 = sin límite
  • Admins y moderadores nunca tienen límite
  • Mensaje de error claro con la hora a la que podrá publicar
  • Panel de configuración en el admin con tabla de rangos
 


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


🛠️ 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 los archivos
 
Código:
inc/class/c.limitposts.php                                      →  inc/class/
inc/class/c.posts.php                                           →  inc/class/
themes/default/templates/admin_mods/m.admin_limitposts.tpl     →  themes/default/templates/admin_mods/


Paso 3 — En admin.php

Busca en inc/php/admin.php:

 
Código:
} elseif($action == 'feed'){


Añade antes:
 
Código:
} elseif($action == 'limitposts'){
    require_once TS_CLASS . 'c.limitposts.php';
    $tsLP = new tsLimitPosts();
    if (!empty($_GET['save']) && !empty($_POST['limite'])) {
        foreach ($_POST['limite'] as $rango_id => $limite) {
            $tsLP->guardarLimite($rango_id, $limite);
        }
        $smarty->assign('tsLimitSaved', true);
    }
    $smarty->assign('tsLimitRangos', $tsLP->getLimitesAdmin());


Paso 4 — Añadir en t.admin.tpl

Busca:
 
Código:
{elseif $tsAction == 'rangos'}
    {include file='admin_mods/m.admin_rangos.tpl'}
{/if}


Cambiar por:
 
Código:
{elseif $tsAction == 'rangos'}
    {include file='admin_mods/m.admin_rangos.tpl'}
{elseif $tsAction == 'limitposts'}
    {include file='admin_mods/m.admin_limitposts.tpl'}
{/if}


Paso 5 — En m.admin_sidemenu.tpl agrega esto donde quieras:
 
Código:
<li><a href="{$tsConfig.url}/admin/limitposts"><i class="fa-solid fa-gauge"></i> Límite de Posts</a></li>


Paso 6 — Borrar la caché

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



⚙️ Configurar límites

Accede a /admin/limitposts y configura el número de posts por día para cada rango. Pon 0 para sin límite.


🗑️ Desinstalar
 
Código:
DROP TABLE IF EXISTS w_limitposts;

Elimina los archivos y quita los cambios en admin.php y t.admin.tpl.

 
Descarga


Mediafire
http://Registrate o inicia tu sesión par...0.rar/file


Google Drive
http://Registrate o inicia tu sesión par... contenido



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




Imprimir


Enviado por: Tronlar
05-28-2026, 11:58 PM
Foro: Terminados
- Sin respuestas

Contador de Visitas en Tiempo Real v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost


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


Muestra cuántas personas están viendo un post en ese momento, igual que hacen Medium o los periódicos online. Se actualiza automáticamente cada 30 segundos sin recargar la página.


👁️ Características
 
  • Actualización automática cada 30 segundos
  • Funciona para usuarios registrados y visitantes
  • Limpieza automática de presencias antiguas
  • Sin librerías externas — funciona en cualquier hosting
 


📋 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/ 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/php/ajax/ajax.vistas.php  →  inc/php/ajax/


Paso 3 — En m.posts_metadata.tpl

Buscar donde están las estadísticas del post (visitas, puntos...) y añadir:
 
Código:
<span id="vistas-rt-{$tsPost.post_id}" style="font-size:12px; color:#999;">
    <i class="fa-solid fa-eye"></i>
    <span class="vrt-count">-</span> viendo ahora
</span>

{literal}
<script>
(function() {
    var post_id = {/literal}{$tsPost.post_id}{literal};
    var url     = '{/literal}{$tsConfig.url}{literal}';
    function ping() {
        $.ajax({
            type: 'POST',
            url: url + '/vistas-ping.php',
            data: { post_id: post_id },
            dataType: 'json',
            success: function(r) {
                var el = document.querySelector('#vistas-rt-' + post_id + ' .vrt-count');
                if (el && r.total !== undefined) el.textContent = r.total;
            }
        });
    }
    ping();
    setInterval(ping, 30000);
})();
</script>
{/literal}


Paso 4 — Borrar la caché

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



🗑️ Desinstalar
 
Código:
DROP TABLE IF EXISTS w_vistas_rt;

Elimina ajax.vistas.php y quita el widget de m.posts_metadata.tpl.

 
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.


Imprimir


Enviado por: Tronlar
05-28-2026, 11:26 PM
Foro: Terminados
- Sin respuestas

Schema.org v1.0
Mejora SEO para Risus Nova 2.0 — PHPost


Añade datos estructurados Schema.org en formato JSON-LD a cada post. Esto le dice a Google exactamente qué tipo de contenido es, quién lo escribió y cuándo — mejorando la indexación y pudiendo mostrar resultados enriquecidos en las búsquedas.


🔍 Datos que incluye
 
  • Tipo: Article
  • Título, descripción y URL del post
  • Fecha de publicación
  • Autor con enlace al perfil
  • Imagen del post (si tiene)
  • Nombre y URL del sitio como publisher
 


🛠️ Instalación

Solo hay que sustituir 2 archivos:
 
Código:
inc/php/posts.php
  →  inc/php/
themes/default/templates/sections/main_header.tpl
  →  themes/default/templates/sections/


Borra la caché después de subir.

Verificar que funciona


Abre cualquier post, haz clic derecho → Ver código fuente y busca:
 
Código:
<script type="application/ld+json">


También puedes verificarlo con la herramienta de Google:
http://Registrate o inicia tu sesión par... contenido


🗑️ Desinstalar

Restaura los archivos originales de posts.php y main_header.tpl.



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



Imprimir


Enviado por: Tronlar
05-28-2026, 11:05 PM
Foro: Terminados
- Sin respuestas

Posts Relacionados Mejorado v1.0
Mejora para Risus Nova 2.0 — PHPost


Reemplaza el sistema de posts relacionados por un algoritmo más inteligente que combina múltiples factores para mostrar posts realmente relevantes en lugar de resultados aleatorios.


🧠 Cómo funciona el nuevo algoritmo

Cada post candidato recibe una puntuación basada en
  • Tags en común — cuantos más tags coincidan, más relevante (+3 puntos por tag)
  • Misma categoría — posts de la misma categoría tienen prioridad (+2 puntos)
  • Puntos del post — posts más valorados por la comunidad (+hasta 5 puntos)
  • Recencia — posts del último mes tienen más peso (+3 puntos)

Los 6 posts con mayor puntuación se muestran como relacionados.


⚡ Mejoras respecto al original
 
  • El original usaba ORDER BY rand() — resultados aleatorios cada vez
  • El nuevo usa un algoritmo de puntuación — siempre los más relevantes
  • Combina búsqueda por categoría Y tags en lugar de solo tags
  • Muestra 6 posts en lugar de 10 — más calidad, menos cantidad
  • Sin cambios en la plantilla — funciona con el diseño existente
 


📋 Requisitos
 
  • Risus Nova 2.0 instalado y funcionando
 


🛠️ Instalación

Solo hay que sustituir 2 archivos y borra la caché:

Paso 1 — Subir los archivos
 
Código:
inc/class/c.posts.php  →  inc/class/
inc/php/posts.php      →  inc/php/

Paso 2 — Borrar la caché

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


🗑️ Desinstalar

Restaura los archivos originales de c.posts.php y posts.php.

 
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.


Imprimir


Enviado por: Tronlar
05-28-2026, 07:52 PM
Foro: Terminados
- Sin respuestas

Dashboard Admin Mejorado v1.0
Mejora para Risus Nova 2.0 — PHPost


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

Añade al panel principal del admin una sección de actividad reciente con estadísticas de hoy y de la semana, más una gráfica de posts de los últimos 7 días.


📈 Qué añade
 
  • Nuevos usuarios hoy y esta semana
  • Posts publicados hoy y esta semana
  • Comentarios hoy y esta semana
  • Gráfica de barras de posts de los últimos 7 días
 


🛠️ Instalación

Paso 1 — En admin.php

Busca en inc/php/admin.php:
 
Código:
$smarty->assign("tsAdmins",$tsAdmin->getAdmins());


Agregar debajo:
Código:
// ── Dashboard: actividad reciente ──
$hoy_inicio    = mktime(0, 0, 0, date('n'), date('j'), date('Y'));
$semana_inicio = $hoy_inicio - (6 * 86400);

$u_hoy  = db_exec('fetch_row', db_exec([__FILE__, __LINE__], 'query', "SELECT COUNT(user_id) FROM u_miembros WHERE user_registro >= '$hoy_inicio'"));
$u_sem  = db_exec('fetch_row', db_exec([__FILE__, __LINE__], 'query', "SELECT COUNT(user_id) FROM u_miembros WHERE user_registro >= '$semana_inicio'"));
$p_hoy  = db_exec('fetch_row', db_exec([__FILE__, __LINE__], 'query', "SELECT COUNT(post_id) FROM p_posts WHERE post_date >= '$hoy_inicio' AND post_status = '0'"));
$p_sem  = db_exec('fetch_row', db_exec([__FILE__, __LINE__], 'query', "SELECT COUNT(post_id) FROM p_posts WHERE post_date >= '$semana_inicio' AND post_status = '0'"));
$c_hoy  = db_exec('fetch_row', db_exec([__FILE__, __LINE__], 'query', "SELECT COUNT(cid) FROM p_comentarios WHERE c_date >= '$hoy_inicio' AND c_status = '0'"));
$c_sem  = db_exec('fetch_row', db_exec([__FILE__, __LINE__], 'query', "SELECT COUNT(cid) FROM p_comentarios WHERE c_date >= '$semana_inicio' AND c_status = '0'"));

$grafica = []; $max_posts = 1;
for ($i = 6; $i >= 0; $i--) {
    $dia_ini = mktime(0, 0, 0, date('n'), date('j') - $i, date('Y'));
    $dia_fin = $dia_ini + 86400;
    $total   = db_exec('fetch_row', db_exec([__FILE__, __LINE__], 'query', "SELECT COUNT(post_id) FROM p_posts WHERE post_date >= '$dia_ini' AND post_date < '$dia_fin' AND post_status = '0'"));
    $grafica[] = ['label' => date('D', $dia_ini)[0], 'total' => (int)$total[0]];
    if ((int)$total[0] > $max_posts) $max_posts = (int)$total[0];
}
foreach ($grafica as &$g) { $g['pct'] = round($g['total'] / $max_posts * 100); }

$smarty->assign('tsAdminActivity', [
    'usuarios_hoy'       => (int)$u_hoy[0],
    'usuarios_semana'    => (int)$u_sem[0],
    'posts_hoy'          => (int)$p_hoy[0],
    'posts_semana'       => (int)$p_sem[0],
    'comentarios_hoy'    => (int)$c_hoy[0],
    'comentarios_semana' => (int)$c_sem[0],
    'grafica'            => $grafica,
]);
// ────────────────────────────────────


Paso 2 — Sustituir m_admin_welcome.tpl
 
Código:
themes/default/templates/admin_mods/m_admin_welcome.tpl
  →  themes/default/templates/admin_mods/


Paso 3 — Borrar la caché

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


🗑️ Desinstalar

Restaura el m_admin_welcome.tpl original y quita el hook de admin.php.





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



Imprimir


Enviado por: Tronlar
05-28-2026, 07:25 PM
Foro: Terminados
- Sin respuestas

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&iacute;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.



Imprimir


Enviado por: Tronlar
05-28-2026, 05:46 PM
Foro: Terminados
- Sin respuestas

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


Página /ranking/ con los 20 usuarios más activos en 4 categorías. Top 3 con medallas de oro, plata y bronce. Fomenta la participación y la competitividad sana entre usuarios.


🏆 Categorías
 
  • Puntos — usuarios con más puntos acumulados
  • 📝 Posts — usuarios que más posts han publicado
  • 💬 Comentarios — usuarios que más han comentado
  • 👥 Seguidores — usuarios con más seguidores
 


⚡ Características
 
  • Top 3 con medallas 🥇🥈🥉
  • Avatar, rango y nombre de cada usuario
  • Clic en el usuario lleva a su perfil
  • Sin base de datos ni instalador
  • Solo 3 archivos a subir
 


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


🛠️ Instalación

Paso 1 — Subir los archivos
 
Código:
inc/class/c.ranking.php                    →  inc/class/
inc/php/ranking.php                        →  inc/php/
themes/default/templates/t.ranking.tpl   →  themes/default/templates/

Paso 2 — En head_menu.tpl ponen esto donde quieran:
 
Código:
<li><a href="{$tsConfig.url}/ranking/"><i class="fa-solid fa-trophy"></i> Ranking</a></li>

Paso 3 — Borrar la caché

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


🗑️ Desinstalar

Elimina los 3 archivos subidos. No hay tablas que borrar.

 
 
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.




Imprimir