This Laravel Filament package allows you to manage Post news in your Laravel Filament admin panel.
You will be able to create posts, categories and tags.
You can attach multiple categories and tags to a post. Categories can be viewed as a listing page.
- PHP >= 8.2
- Laravel Filament >= 3.3
- Laravel >= 11.0
You can install the package via composer:
composer require novius/laravel-filament-news
Run migrations with:
php artisan migrate
In your AdminFilamentPanelProvider
add the PageManagerPlugin
:
use Novius\LaravelFilamentNews\Filament\NewsPlugin;
class AdminFilamentPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
// ...
->plugins([
NewsPlugin::make(),
])
// ...
;
}
}
You can optionally publish the config file with:
php artisan vendor:publish --provider="Novius\LaravelFilamentNews\LaravelFilamentNewsServiceProvider" --tag="config"
This will allow you to:
- define the name of the routes and their parameter
- override resource or model classes
- define locales used
// config/laravel-filament-news.php
return [
/*
* Resources used to manage your posts.
*/
'resources' => [
'post' => \Novius\LaravelFilamentNews\Filament\Resources\PostResource::class,
'category' => \Novius\LaravelFilamentNews\Filament\Resources\CategoryResource::class,
'tag' => \Novius\LaravelFilamentNews\Filament\Resources\TagResource::class,
],
/*
* Models used to manage your posts.
*/
'models' => [
'post' => \Novius\LaravelFilamentNews\Models\NewsPost::class,
'category' => \Novius\LaravelFilamentNews\Models\NewsCategory::class,
'tag' => \Novius\LaravelFilamentNews\Models\NewsTag::class,
],
// If you want to restrict the list of possible locals. By default, uses all the locals installed
'locales' => [
// 'en',
],
/*
* The route name used to display news posts and categories.
*/
'front_routes_name' => [
'posts' => null,
'post' => null,
'categories' => null,
'category' => null,
'tag' => null,
],
/*
* The route name used to display news posts and categories.
*/
'front_routes_parameters' => [
'post' => null,
'category' => null,
'tag' => null,
],
];
If you want a pre-generated front controller and routes, you can run following command :
php artisan news-manager:publish-front {--without-categories} {--without-tags}
This command appends routes to routes/web.php
and creates a new App\Http\Controllers\NewsController
.
You can then customize your routes and your controller.
In views called by the controller use the documentation of laravel-meta to implement meta tags
Next we need to publish the Laravel Nova Translatable package's assets. We do this by running the following command:
php artisan vendor:publish --provider="Novius\LaravelNovaTranslatable\LaravelNovaTranslatableServiceProvider" --tag="public"
If you want to customize the migrations or lang files, you can publish them with:
php artisan vendor:publish --provider="Novius\LaravelFilamentNews\LaravelFilamentNewsServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Novius\LaravelFilamentNews\LaravelFilamentNewsServiceProvider" --tag="lang"
Run the tests with:
composer test
Lint your code with Laravel Pint using:
composer lint
This package is under GNU Affero General Public License v3 or (at your option) any later version.