Hace 2 horas
Avisos Masivos 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]
Permite al admin enviar un aviso a todos los usuarios o a rangos específicos desde el panel. El aviso aparece en las notificaciones de cada usuario.
📢 Características
- Enviar a todos los usuarios o a rangos específicos
- Selección múltiple de rangos
- Asunto y mensaje personalizables (máx 500 caracteres)
- Los admins y moderadores no reciben el aviso
- Confirmación antes de enviar
- Muestra cuántos usuarios recibieron el aviso
- Sin instalador ni base de datos nueva
🛠️ Instalación
Paso 1 — Subir el archivo
Código:
themes/default/templates/admin_mods/m.admin_avisos_masivos.tpl
→ themes/default/templates/admin_mods/Paso 2 — En admin.php
Buscar:
Código:
} elseif($action == 'feed'){Agregar arriba:
Código:
} elseif($action == 'avisosmasivos'){
$rangos = result_array(db_exec([__FILE__, __LINE__], 'query',
"SELECT rango_id, r_name, r_color FROM u_rangos
WHERE r_type = '1' ORDER BY r_cant ASC"
)) ?: [];
$smarty->assign('tsRangosDisponibles', $rangos);
if (!empty($_GET['save']) && !empty($_POST['av_subject']) && !empty($_POST['av_body'])) {
$asunto = $tsCore->setSecure($_POST['av_subject']);
$cuerpo = $tsCore->setSecure($_POST['av_body']);
$rangos_sel = $_POST['rangos'] ?? [];
$todos = empty($rangos_sel);
if ($todos) {
$where = "user_activo = '1' AND user_baneado = '0'";
} else {
$ids = implode(',', array_map('intval', $rangos_sel));
$where = "user_activo = '1' AND user_baneado = '0' AND user_rango IN ($ids)";
}
$usuarios = result_array(db_exec([__FILE__, __LINE__], 'query',
"SELECT user_id FROM u_miembros WHERE $where"
)) ?: [];
$total = 0;
$fecha = time();
foreach ($usuarios as $u) {
db_exec([__FILE__, __LINE__], 'query',
"INSERT INTO u_avisos (user_id, av_subject, av_body, av_date, av_type)
VALUES ('{$u['user_id']}', '$asunto', '$cuerpo', '$fecha', '4')"
);
$total++;
}
$smarty->assign('tsAvisoEnviado', $total);
}Paso 3 — Añadir en t.admin.tpl
Antes del {/if} final agregar:
Código:
{elseif $tsAction == 'avisosmasivos'}
{include file='admin_mods/m.admin_avisos_masivos.tpl'}Paso 4 — En m.admin_sidemenu.tpl ponen esto donde quieran:
Código:
<i class="fa-solid fa-bullhorn"></i> Avisos Masivos</a></li><li><a href="{$tsConfig.url}/admin/mensajesadmin"><i class="fa-solid fa-envelope"></i> Mensajes Privados</a></li>Paso 5 — Borrar la caché
Borra el contenido de la carpeta /cache/ del sitio.
🗑️ Desinstalar
Elimina la plantilla y quita los cambios en admin.php y t.admin.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.