Phpost

Versión completa: Avisos Masivos v1.0
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Avisos Masivos v1.0
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.