Skip to content
This repository has been archived by the owner on Sep 4, 2024. It is now read-only.

martin-ro/filament-page-blocks

Repository files navigation

Archived

Filament has introduced previews and editing in modals in the Builder component: filamentphp/filament#12629

To take advantage of the new features, you can use the simplified Filament Blocks package.

Block-Based Page Builder for Filament

This is basically a lightweight version of Z3d0X's excellent Filament Fabricator Plugin.

It only provides the blocks functionality without layouts, pages, routing, etc.

Installation

You can install this package via composer:

composer require martin-ro/filament-page-blocks

Documentation

Documentation can be viewed at: https://filamentphp.com/plugins/fabricator

Creating a Page Block

php artisan make:filament-page-block MyPageBlock

This will create the following Page Block class:

use Filament\Forms\Components\Builder\Block;
use MartinRo\FilamentPageBlocks\PageBlock;
 
class MyBlock extends PageBlock
{
    public static function getBlockSchema(): Block
    {
        return Block::make('my-page-block')
            ->label('My Page Block')
            ->icon('heroicon-o-rectangle-stack')
            ->schema([
                //
            ]);
    }
 
    public static function mutateData(array $data): array
    {
        return $data;
    }
}

and its corresponding blade component view:

@props([
    //
])

<div>
    //
</div>

Using Page Blocks in your template

<x-filament-page-blocks::page-blocks :blocks="$page->blocks" />

Changelog

Please see CHANGELOG for more information on what has changed recently.

Credits

License

The MIT License (MIT). Please see License File for more information.