firefly / filament-blog
Filament管理员面板的高级博客包
Requires
- php: >=8.0
- awcodes/filament-tiptap-editor: ^3.2
- filament/support: ^3.2
Requires (Dev)
- orchestra/testbench: ^9
- pestphp/pest: 2.34.5
- pestphp/pest-plugin-laravel: ^2.3
README
Filament博客插件是一个功能丰富的插件,旨在增强您在网站上的博客体验。它提供了各种强大的功能,帮助您有效地管理和自定义博客文章。
特性
- 简单安装:简单直观的安装过程。
- 用户友好界面:直观且用户友好的界面,易于管理博客文章。
- SEO元扩展:通过内置的元标签自定义增强博客的搜索引擎优化。
- 未来发布文章:安排博客文章在未来日期和时间发布。
- 社交媒体分享功能:允许用户轻松地在社交媒体平台上分享您的博客文章。
- 评论功能:启用博客文章的评论,以鼓励参与和讨论。
- 新闻订阅:整合新闻订阅表单以增长您的电子邮件列表。
- 新文章发布通知:在新文章发布时通知订阅者。
- 分类搜索:对博客文章进行分类,以便于导航和搜索。
- 支持: Laravel 11 和 Filament 3.x
演示视频
升级说明
重要:如果您要从1.x版本升级到2.x版本,请按照以下步骤操作
- 在运行迁移之前备份您的数据库。 这只是为了安全起见。
- 现在您可以从配置文件中添加博客表的前缀。
'tables' => [ 'prefix' => 'fblog_', // prefix for all blog tables ],
- 设置前缀后,请运行以下命令来运行迁移:
php artisan filament-blog:upgrade-tables
安装
如果您的项目尚未使用Filament,您可以通过运行以下命令来安装它
composer require filament/filament:"^3.2" -W
php artisan filament:install --panels
通过运行以下命令安装Filament博客插件
composer require firefly/filament-blog
使用方法
在composer require之后,您可以通过运行以下命令开始使用Filament博客插件
php artisan filament-blog:install
此命令将发布filamentblog.php
配置文件和create_blog_tables.php
迁移文件。
<?php /** * |-------------------------------------------------------------------------- * | Set up your blog configuration * |-------------------------------------------------------------------------- * | * | The route configuration is for setting up the route prefix and middleware. * | The user configuration is for setting up the user model and columns. * | The seo configuration is for setting up the default meta tags for the blog. * | The recaptcha configuration is for setting up the recaptcha for the blog. */ use Firefly\FilamentBlog\Models\User; return [ 'tables' => [ 'prefix' => 'fblog_', // prefix for all blog tables ], 'route' => [ 'prefix' => 'blogs', 'middleware' => ['web'], // 'home' => [ // 'name' => 'filamentblog.home', // 'url' => env('APP_URL'), // ], 'login' => [ 'name' => 'filamentblog.post.login', ], ], 'user' => [ 'model' => User::class, 'foreign_key' => 'user_id', 'columns' => [ 'name' => 'name', 'avatar' => 'profile_photo_path', // column name for avatar ], ], 'seo' => [ 'meta' => [ 'title' => 'Filament Blog', 'description' => 'This is filament blog seo meta description', 'keywords' => [], ], ], 'recaptcha' => [ 'enabled' => false, // true or false 'site_key' => env('RECAPTCHA_SITE_KEY'), 'secret_key' => env('RECAPTCHA_SECRET_KEY'), ], ];
如果您的首页有不同的URL,您可以在route
配置中的home
键中设置它。在运行迁移之前,您可以修改filamentblog.php
配置文件以满足您的需求。
如果您想单独发布配置、视图、组件和迁移,可以运行以下命令
php artisan vendor:publish --provider="Firefly\FilamentBlog\FilamentBlogServiceProvider" --tag=filament-blog-views
php artisan vendor:publish --provider="Firefly\FilamentBlog\FilamentBlogServiceProvider" --tag=filament-blog-config
php artisan vendor:publish --provider="Firefly\FilamentBlog\FilamentBlogServiceProvider" --tag=filament-blog-components
php artisan vendor:publish --provider="Firefly\FilamentBlog\FilamentBlogServiceProvider" --tag=filament-blog-migrations
如果您已经有一个用户模型呢?
- 如果您已经有一个用户模型,您可以通过修改
filamentblog.php
配置文件来使用您的用户模型。 - 确保名称列是用户的
name
列。 - 如果您在用户模型中已经有
avatar
列,您可以在filamentblog.php
配置文件中的user.columns.avatar
键中设置它。 - 如果您想更改
foreign_key
列名,您可以通过修改filamentblog.php
配置文件。
迁移数据库
在修改filamentblog.php
配置文件后,您可以通过运行以下命令来运行迁移
php artisan migrate
存储链接
在运行迁移后,您可以通过运行以下命令来创建存储目录的符号链接
php artisan storage:link
将Filament博客面板附加到仪表板
您可以通过将以下代码添加到您的面板提供者中来将Filament博客面板附加到仪表板:将Blog::make()
添加到您的面板,通过传递类到您的plugins()
方法。
use Firefly\FilamentBlog\Blog; public function panel(Panel $panel): Panel { return $panel ->plugins([ Blog::make() ]) }
管理用户关系
如果您想管理用户关系,您可以修改 User
模型以与 Post
模型建立关系。
<?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Firefly\FilamentBlog\Traits\HasBlog; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasBlog; }
允许用户评论
如果您想允许用户对博客文章进行评论,您可以修改 User
模型以添加一个 canComment()
方法。
<?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Firefly\FilamentBlog\Traits\HasBlog; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { public function canComment(): bool { // your conditional logic here return true; } }
现在您可以使用 Filament 博客插件来有效地管理您的博客文章。yourdomain.com/blogs
您可以在 filamentblog.php
配置文件中更改路由前缀。
社交媒体分享
对于社交媒体分享,请访问 Sharethis 并从我们的分享片段部分生成 JS 脚本和 HTML 代码进行保存。
ReCaptcha
要将 ReCaptcha 添加到博客评论表单中,您可以在您的 .env
文件中添加环境变量。并确保在 filamentblog.php
配置文件中将 enabled 设置为 true
。
RECAPTCHA_SITE_KEY
RECAPTCHA_SECRET_KEY
鸣谢
安全
如果您在此软件包中发现安全漏洞,请发送电子邮件至 dev@thefireflytech.com,所有安全漏洞都将得到及时解决。
🤝 贡献
有关详细信息,请参阅 CONTRIBUTING。
📄 许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。
由尼泊尔 Firefly IT Solutions 用爱打造 - thefireflytech.com