innoboxrr/forum

A simple forum package for your laravel app

1.0.9 2025-03-09 17:12 UTC

This package is auto-updated.

Last update: 2025-03-09 17:12:57 UTC


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)

  1. Cambia la configuración en config/forum.php:
    'editor' => 'simplemde',
  2. Instala la librería de soporte para Markdown:
    composer require graham-campbell/markdown

📌 Trumbowyg

  1. Configura en config/forum.php:
    'editor' => 'trumbowyg',
  2. 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! 🎉