¿Ya tienes cuenta? Inicia sesión aquí
Últimos temas
-
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
Estadísticas del foro
- Mensajes del foro:1,957
- Temas del foro:614
- Miembros:1,036
- Último miembro:carlos007r
Modo Mantenimiento Mejorado v1.0
Mejora para Risus Nova 2.0 — PHPost
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.
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.
Panel de Reportes v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost
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.
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.
Detectar Cuentas Duplicadas v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost
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.
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.
Límite de Posts por Día v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost
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.
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.
Contador de Visitas en Tiempo Real v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost
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.
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.
Schema.org v1.0
Mejora SEO para Risus Nova 2.0 — PHPost
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.
Descarga
Mediafire
http://Registrate o inicia tu sesión par... contenido
Google Drive
http://Registrate o inicia tu sesión par... contenido
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.
Posts Relacionados Mejorado v1.0
Mejora para Risus Nova 2.0 — PHPost
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.
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.
Dashboard Admin Mejorado v1.0
Mejora para Risus Nova 2.0 — PHPost
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.
Descarga
Mediafire
http://Registrate o inicia tu sesión par... contenido
Google Drive
http://Registrate o inicia tu sesión par... contenido
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.
Sistema de Insignias v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost
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.
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.
Ranking de Usuarios v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost
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.
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.

