firefly/filament-blog

Filament管理员面板的高级博客包

v2.0.1 2024-05-31 17:12 UTC

This package is auto-updated.

Last update: 2024-09-27 04:09:44 UTC


README

Filament博客插件是一个功能丰富的插件,旨在增强您在网站上的博客体验。它提供了各种强大的功能,帮助您有效地管理和自定义博客文章。

Latest Version on Packagist Total Downloads Packagist License GitHub forks GitHub Org's stars

Firefly Filament Blog

特性

  • 简单安装:简单直观的安装过程。
  • 用户友好界面:直观且用户友好的界面,易于管理博客文章。
  • SEO元扩展:通过内置的元标签自定义增强博客的搜索引擎优化。
  • 未来发布文章:安排博客文章在未来日期和时间发布。
  • 社交媒体分享功能:允许用户轻松地在社交媒体平台上分享您的博客文章。
  • 评论功能:启用博客文章的评论,以鼓励参与和讨论。
  • 新闻订阅:整合新闻订阅表单以增长您的电子邮件列表。
  • 新文章发布通知:在新文章发布时通知订阅者。
  • 分类搜索:对博客文章进行分类,以便于导航和搜索。
  • 支持: Laravel 11Filament 3.x

演示视频

IMAGE ALT TEXT HERE

升级说明

重要:如果您要从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