misaf / vendra-blog
Tenant-aware blog publishing and Filament content management for Vendra
Requires
- php: ^8.4
- awcodes/filament-badgeable-column: ^4.0
- lara-zeus/spatie-translatable: ^2.0.1
- misaf/filament-jalali: ^5.1.4
- misaf/vendra-multimedia: v1.12.3
- misaf/vendra-support: v1.12.3
- spatie/eloquent-sortable: ^5.0.1
- spatie/laravel-package-tools: ^1.93.1
- spatie/laravel-sluggable: ^4.0.2
Requires (Dev)
None
Suggests
- misaf/vendra-tagger: Install this in the host application to assign typed tags to blog posts.
Provides
None
Conflicts
None
Replaces
None
README
Tenant-aware blog management for Vendra applications.
Features
- Blog post categories
- Blog posts
- Filament resources on the
adminpanel
Requirements
- PHP 8.4+
- Laravel 13
- Filament 5
- Livewire 4
- Pest 4
- Tailwind CSS 4
misaf/vendra-multimediamisaf/vendra-support
Optional:
misaf/vendra-tagger— enables assigningblog-typed tags to posts throughmisaf/vendra-support
Installation
composer require misaf/vendra-blog php artisan vendor:publish --tag=vendra-blog-migrations php artisan migrate
Optional configuration and translations:
php artisan vendor:publish --tag=vendra-blog-config php artisan vendor:publish --tag=vendra-blog-translations
The service provider and Filament plugin are auto-registered.
Usage
Create a category:
use Misaf\VendraBlog\Models\BlogPostCategory; $category = BlogPostCategory::query()->create([ 'name' => ['en' => 'Announcements'], 'active' => true, ]);
Create a post:
use Misaf\VendraBlog\Models\BlogPost; BlogPost::query()->create([ 'blog_post_category_id' => $category->id, 'name' => ['en' => 'Welcome'], 'active' => true, ]);
When Tagger is installed, blog post forms and tables expose tags automatically. Create tags with the reserved blog type:
use Misaf\VendraTagger\Models\Tagger; Tagger::findOrCreate('Announcement', type: 'blog', locale: 'en');
Blog imports neither Vendra Tagger nor Spatie Tags; the optional relationship is resolved through Support.
Filament
Resources are available in the shared Content cluster on the admin panel:
- Blog Post Categories
- Blog Posts
Demo seeders use bundled JSON fixtures in production and when their declared factory classes are unavailable. Local monorepo development continues to use factories when they are autoloadable.
Testing
Run the package checks from the project root:
php artisan test --compact --testsuite=vendra-blog
composer stan
License
MIT. See LICENSE.