Sistema de anuncios y comunicaciones para la plataforma GuildForge. Permite crear, gestionar y mostrar anuncios a los miembros de la asociación.
- Gestión completa de anuncios (CRUD) desde el panel de administración
- Múltiples niveles de visibilidad (público, autenticados, miembros)
- Posicionamiento flexible en diferentes zonas de la página
- Sistema de prioridades para ordenar anuncios
- Fechas de publicación y expiración programables
- Anuncios descartables por el usuario
- Componentes Vue reutilizables (banner, card)
- API REST para integración
- Soporte multiidioma (español, inglés)
- PHP >= 8.2
- Laravel >= 12.0
- GuildForge (aplicación principal)
- Copia el módulo en el directorio
modules/:
cp -r announcements /path/to/guildforge/modules/- Descubre el módulo:
php artisan module:discover- Habilita el módulo:
php artisan module:enable announcements- Ejecuta las migraciones:
php artisan module:migrate announcementsannouncements/
├── config/
│ ├── module.php # Configuración del módulo
│ └── settings.php # Configuración de ajustes
├── database/
│ └── migrations/ # Migraciones de base de datos
├── lang/
│ ├── en/ # Traducciones en inglés
│ └── es/ # Traducciones en español
├── resources/
│ └── js/
│ └── components/ # Componentes Vue
├── routes/
│ ├── api.php # Rutas API
│ └── web.php # Rutas web
├── src/
│ ├── Application/
│ │ ├── DTOs/ # Data Transfer Objects
│ │ └── Services/ # Servicios de aplicación
│ ├── Domain/
│ │ ├── Entities/ # Entidades de dominio
│ │ ├── Enums/ # Enumeraciones
│ │ ├── Exceptions/ # Excepciones de dominio
│ │ ├── Repositories/ # Interfaces de repositorio
│ │ └── ValueObjects/ # Objetos de valor
│ ├── Filament/
│ │ └── Resources/ # Recursos de Filament
│ ├── Http/
│ │ └── Controllers/ # Controladores HTTP
│ ├── Infrastructure/
│ │ └── Persistence/ # Implementación de persistencia
│ └── Policies/ # Políticas de autorización
├── tests/
│ ├── Feature/ # Tests de integración
│ └── Unit/ # Tests unitarios
└── module.json # Manifiesto del módulo
Una vez habilitado, aparecerá un nuevo grupo "Comunicación" en el menú lateral del panel de administración con acceso a la gestión de anuncios.
GET /api/announcements # Listar anuncios activos
GET /api/announcements/{id} # Obtener un anuncio
POST /api/announcements/{id}/dismiss # Descartar anuncio
<template>
<AnnouncementBanner :announcement="announcement" />
<AnnouncementCard :announcement="announcement" />
</template>| Valor | Descripción |
|---|---|
public |
Visible para todos los visitantes |
authenticated |
Solo usuarios autenticados |
members |
Solo miembros de la asociación |
| Valor | Descripción |
|---|---|
before-header |
Antes del encabezado |
after-header |
Después del encabezado |
before-content |
Antes del contenido principal |
after-content |
Después del contenido principal |
before-footer |
Antes del pie de página |
after-footer |
Después del pie de página |
Valores de 1 a 10, donde 10 es la máxima prioridad.
| Permiso | Descripción |
|---|---|
announcements.view |
Ver anuncios en el panel |
announcements.create |
Crear nuevos anuncios |
announcements.update |
Editar anuncios existentes |
announcements.delete |
Eliminar anuncios |
# Ejecutar todos los tests del módulo
php artisan test modules/announcements/tests
# Solo tests unitarios
php artisan test modules/announcements/tests/Unit
# Solo tests de integración
php artisan test modules/announcements/tests/FeaturePropietario - GuildForge