Screenshot

Filament Blog Template

Latest Stable Version License Downloads

Frontend for CMS Builder to build a blog and personal websites

Screenshots

Home Blog Post Like & Comments Open Source Portfolios Services Contact User Dashboard Comments Likes

Features

  • [x] Tailwind CSS Blog Template
  • [x] Blog
  • [x] Open Source integration with GitHub / Composer
  • [x] Portfolios integration with Behanace
  • [x] Services
  • [x] Contact Us
  • [x] User Dashboard
  • [x] Comments
  • [x] Likes
  • [x] SEO Friendly
  • [x] Multi Language
  • [x] Dark/Light Mode
  • [ ] Social Login
  • [ ] RSS Feed
  • [ ] Sitemap

Installation

composer require tomatophp/filament-blog

we need to publish some migrations for settings and media

php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-migrations"
php artisan vendor:publish --provider="Spatie\LaravelSettings\LaravelSettingsServiceProvider" --tag="migrations"

if you are using this package as a plugin please register the plugin on /app/Providers/Filament/AdminPanelProvider.php

->plugin(\TomatoPHP\FilamentBlog\FilamentBlogPlugin::make())

now you need to create a user panel you can follow instructions on filament-accounts

let's start by create a new panel

php artisan filament:panel app

if you need to change the panel name you can change it on config file filament-blog.php


return [
    "user-panel" => "app"
];

inside the new panel add this plugin

->plugin(
    FilamentBlogUserPanelPlugin::make()
)

and if you don't set the full user panel use it like this

->plugin(
    FilamentAccountsSaaSPlugin::make()
        ->editProfile()
        ->editProfileMenu()
        ->APITokenManager()
        ->browserSesstionManager()
        ->deleteAccount()
        ->editPassword()
        ->registration()
        ->checkAccountStatusInLogin()
)

you need to publish Account Model

php artisan vendor:publish --tag="filament-accounts-model"

and on your auth.php add a accounts guard

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Authentication Defaults
    |--------------------------------------------------------------------------
    |
    | This option defines the default authentication "guard" and password
    | reset "broker" for your application. You may change these values
    | as required, but they're a perfect start for most applications.
    |
    */

    'defaults' => [
        'guard' => env('AUTH_GUARD', 'web'),
        'passwords' => env('AUTH_PASSWORD_BROKER', 'users'),
    ],

    /*
    |--------------------------------------------------------------------------
    | Authentication Guards
    |--------------------------------------------------------------------------
    |
    | Next, you may define every authentication guard for your application.
    | Of course, a great default configuration has been defined for you
    | which utilizes session storage plus the Eloquent user provider.
    |
    | All authentication guards have a user provider, which defines how the
    | users are actually retrieved out of your database or other storage
    | system used by the application. Typically, Eloquent is utilized.
    |
    | Supported: "session"
    |
    */

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'accounts' => [
            'driver' => 'session',
            'provider' => 'accounts',
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | User Providers
    |--------------------------------------------------------------------------
    |
    | All authentication guards have a user provider, which defines how the
    | users are actually retrieved out of your database or other storage
    | system used by the application. Typically, Eloquent is utilized.
    |
    | If you have multiple user tables or models you may configure multiple
    | providers to represent the model / table. These providers may then
    | be assigned to any extra authentication guards you have defined.
    |
    | Supported: "database", "eloquent"
    |
    */

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => env('AUTH_MODEL', App\Models\User::class),
        ],
        'accounts' => [
            'driver' => 'eloquent',
            'model' => \App\Models\Account::class,
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Resetting Passwords
    |--------------------------------------------------------------------------
    |
    | These configuration options specify the behavior of Laravel's password
    | reset functionality, including the table utilized for token storage
    | and the user provider that is invoked to actually retrieve users.
    |
    | The expiry time is the number of minutes that each reset token will be
    | considered valid. This security feature keeps tokens short-lived so
    | they have less time to be guessed. You may change this as needed.
    |
    | The throttle setting is the number of seconds a user must wait before
    | generating more password reset tokens. This prevents the user from
    | quickly generating a very large amount of password reset tokens.
    |
    */

    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => env('AUTH_PASSWORD_RESET_TOKEN_TABLE', 'password_reset_tokens'),
            'expire' => 60,
            'throttle' => 60,
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Password Confirmation Timeout
    |--------------------------------------------------------------------------
    |
    | Here you may define the amount of seconds before a password confirmation
    | window expires and users are asked to re-enter their password via the
    | confirmation screen. By default, the timeout lasts for three hours.
    |
    */

    'password_timeout' => env('AUTH_PASSWORD_TIMEOUT', 10800),

];

now it's time to install

php artisan filament-blog:install

after install please run npm

npm i && npm run build

you need to clean up your web.php routes file and make sure that the / route does not point anywhere.

now you can visit your website and you will see the blog

Publish Assets

you can publish config file by use this command

php artisan vendor:publish --tag="filament-blog-config"

you can publish views file by use this command

php artisan vendor:publish --tag="filament-blog-views"

you can publish languages file by use this command

php artisan vendor:publish --tag="filament-blog-lang"

you can publish migrations file by use this command

php artisan vendor:publish --tag="filament-blog-migrations"

Other Filament Packages

Checkout our Awesome TomatoPHP

Share To Social Networks

Login To Leave a Comment