innoboxrr / forum
A simple forum package for your laravel app
Requires
- php: ^8.2
- illuminate/cache: ^11.0
- illuminate/console: ^11.0
- illuminate/support: ^11.0
- mews/purifier: ^3.0
Requires (Dev)
- mockery/mockery: ^1.5
- phpunit/phpunit: ^10.0
README
Aquí tienes el README reescrito sin enlaces externos, manteniendo el branding y la estructura profesional de Innobox R&R.
🗂️ Innobox Forum - Laravel Forum Package
🚀 Un paquete poderoso y flexible para agregar foros a tus aplicaciones Laravel.
📌 Instalación
⚠️ Nota: Si este es un nuevo proyecto, asegúrate de instalar la autenticación de usuario predeterminada de Laravel ejecutando:
php artisan make:auth
1️⃣ Instalar el paquete en tu proyecto
composer require "innoboxrr/forum=0.2.*"
2️⃣ Registrar el Service Provider (Solo necesario en Laravel < 5.5)
Innoboxrr\Forum\ForumServiceProvider::class,
3️⃣ Publicar los archivos de configuración y assets
php artisan vendor:publish --provider="Innoboxrr\Forum\ForumServiceProvider"
4️⃣ Actualizar el autoload de Composer
composer dump-autoload
5️⃣ Ejecutar las migraciones
php artisan migrate
6️⃣ Cargar datos iniciales en la base de datos
php artisan db:seed --class=ForumTableSeeder
7️⃣ Incluir CSS y JS en tu plantilla principal
Dentro de master.blade.php
o app.blade.php
añade lo siguiente:
👉 En el <head>
@yield('css')
👉 Antes del </body>
@yield('js')
🔹 Ahora, visita tusitio.com/forums
y ¡listo! 🎉
🔄 Actualización del paquete
1️⃣ Asegúrate de usar la última versión en composer.json
:
"innoboxrr/forum": "0.2.*"
2️⃣ Ejecuta la actualización:
composer update
3️⃣ Publica nuevamente los assets y configuración:
php artisan vendor:publish --tag=forum_assets --force php artisan vendor:publish --tag=forum_config --force php artisan vendor:publish --tag=forum_migrations --force
4️⃣ Asegura que la base de datos esté actualizada:
php artisan migrate
✅ ¡Tu foro ahora está actualizado!
✍️ Edición de contenido
Innobox Forum admite varios editores de texto para los mensajes.
📌 Markdown (SimpleMDE)
- Cambia la configuración en
config/forum.php
:'editor' => 'simplemde',
- Instala la librería de soporte para Markdown:
composer require graham-campbell/markdown
📌 Trumbowyg
- Configura en
config/forum.php
:'editor' => 'trumbowyg',
- Asegúrate de incluir jQuery >= 1.8.
⚙️ Configuración avanzada
Al publicar los assets, se generará el archivo config/forum.php
, donde puedes personalizar la configuración del foro según tus necesidades.
🔹 Personalización de estilos
Si deseas agregar estilos personalizados, puedes incluir tu propio CSS después del @yield('css')
en tu plantilla:
@if(Request::is(Config::get('forum.routes.home')) || Request::is(Config::get('forum.routes.home') . '/*')) <link rel="stylesheet" href="/assets/css/forums.css"> @endif
🔹 SEO: Títulos amigables
Para mejorar el SEO de tu foro, agrega esto en el <head>
de tu plantilla:
@if(Request::is(Config::get('forum.routes.home'))) <title>Foro - Nombre de tu Sitio</title> @elseif(Request::is(Config::get('forum.routes.home') . '/' . Config::get('forum.routes.category') . '/*') && isset($discussion)) <title>{{ $discussion->category->name }} - Nombre de tu Sitio</title> @elseif(Request::is(Config::get('forum.routes.home') . '/*') && isset($discussion->title)) <title>{{ $discussion->title }} - Nombre de tu Sitio</title> @endif
🔹 Personalización de vistas
Para modificar las vistas del foro, crea una carpeta en resources/views/vendor/forum
y copia allí los archivos de vista que desees personalizar:
resources/views/vendor/forum/home.blade.php
resources/views/vendor/forum/discussion.blade.php
🔔 Eventos y Hooks
Innobox Forum proporciona eventos para personalizar el comportamiento del foro.
Eventos disponibles
Evento | Propiedades | Descripción |
---|---|---|
ForumBeforeNewDiscussion |
$request, $validator |
Antes de validar y crear una discusión |
ForumAfterNewDiscussion |
$request, $discussion, $post |
Después de crear una discusión |
ForumBeforeNewResponse |
$request, $validator |
Antes de validar y crear una respuesta |
ForumAfterNewResponse |
$request, $post |
Después de crear una respuesta |
Ejemplo de uso en EventServiceProvider.php
protected $listen = [ 'Innoboxrr\Forum\Events\ForumBeforeNewDiscussion' => [ 'App\Listeners\HandleNewDiscussion', ], ];
En el listener, puedes acceder a los datos del evento:
public function handle(ForumAfterNewDiscussion $event) { // Acceder a la discusión $event->discussion; // Acceder al post $event->post; }
🏆 Contribuye al proyecto
Si deseas colaborar en el desarrollo de Innobox Forum, cualquier contribución es bienvenida. Revisa el código, reporta errores o sugiere mejoras.
🚀 Innobox Forum es un paquete diseñado para llevar la funcionalidad de foros a tu aplicación Laravel de manera rápida y eficiente. ¡Disfrútalo! 🎉