¡Bienvenido! ¿Aún no estás registrado?, deberás registrarte antes de poder usar el Chat, Comentar y Descargar en el Foro. Usa un email válido para la activación.
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Avisos Masivos v1.0
#1

0
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
 
themes/default/templates/admin_mods/m.admin_avisos_masivos.tpl
  →  themes/default/templates/admin_mods/


Paso 2 — En admin.php

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


Agregar arriba:
} 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:
 
{elseif $tsAction == 'avisosmasivos'}
    {include file='admin_mods/m.admin_avisos_masivos.tpl'}


Paso 4 — En m.admin_sidemenu.tpl ponen esto donde quieran:
<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
Debes agradecer para ver el contenido...


Google Drive
Debes agradecer para ver el contenido...



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




Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)