PHP code example of redberry / page-builder-plugin
1. Go to this page and download the library: Download redberry/page-builder-plugin library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
redberry / page-builder-plugin example snippets
use Redberry\PageBuilderPlugin\Traits\HasPageBuilder;
class Page extends Model
{
use HasPageBuilder;
}
$form->schema([
PageBuilder::make('website_content')
->blocks([]),
]);
class Description extends BaseBlock
{
public static function getBlockSchema(): array
{
return [
RichEditor::make('text')
->
$form->schema([
PageBuilder::make('website_content')
->blocks([
Description::class,
]),
]);
$form->schema([
PageBuilder::make('website_content')
->reorderable(),
]);
$form->schema([
PageBuilder::make('website_content')
->renderPreviewWithIframes(
condition: true,
createUrl: 'http://localhost:5173',
),
]);
class Description extends BaseBlock
{
// ...
public static function formatForSingleView(array $data): array
{
$data['text'] = url($data['text']);
$data['image'] = self::getUrlForFile($data['image']);
return $data;
}
}
class Description extends BaseBlock
{
// ...
public static function getBlockTitleAttribute(): string
{
return "logo.name";
}
}
class Description extends BaseBlock
{
// ...
public static function getBlockLabel(array $state, ?int $index = null)
{
return data_get($state, $key) . $index;
}
}
class Description extends BaseBlock
{
public static function getCategory(): string
{
return 'About';
}
}
PageBuilderPreview::make('...')
// ...
->iframeAttributes([
'height' => '500px'
]);
])
PageBuilder::make('...')
// ...
->createAction(function (PageBuilder $action) {
return $action->pageBuilderPreviewField(function (PageBuilderPreview $field) {
return $field->iframeUrl('http://localhost:5173')->autoResizeIframe()->iframeAttributes([
'height' => '500px'
]);
});
})
PageBuilder::make('...')
->renderPreviewWithIframes(
condition: true,
autoResize: true,
createUrl: 'http://localhost:5173',
),
PageBuilderPreview::make('...')
// ...
->autoResizeIframe();
class Description extends BaseBlock
{
// make sure that injecting parameter is nullable
public static function getBlockSchema(?Model $record = null): array
{
return [
RichEditor::make('text')
->default($record->text)
->
$infolist
->schema([
PageBuilderEntry::make('website_content')
->blocks([LongDescription::class])
->columnSpan(1),
PageBuilderPreviewEntry::make('website_content_preview')
->blocks([LongDescription::class])
->iframeUrl('http://localhost:5173')
->autoResizeIframe()
->columnSpan(2),
]);
PageBuilderPreview::make('website_content_preview')
->pageBuilderField('website_content')
->iframeUrl('http://localhost:5173')
->autoResizeIframe()
return view('filament::components.button.index', [
'slot' => $deleteAction->getLabel(),
'labelSrOnly' => true,
'icon' => 'heroicon-o-trash',
'color' => 'danger',
'disabled' => $deleteAction->isDisabled(),
'attributes' => collect([
'wire:click' => "mountFormComponentAction('$statePath', '{$this->getDeleteActionName()}', { item: '$item', index: '$index' } )",
]),
])
PageBuilder::make('website_content')
->deleteActionButton(function ($action, $item, $index, $attributes) {
return view('filament::components.button.index',
[
...$attributes,
'id' => 'delete-button'
]
);
})
bash
php artisan vendor:publish --tag="page-builder-plugin-migrations"
php artisan migrate
bash
php artisan vendor:publish --tag="page-builder-plugin-config"
bash
php artisan vendor:publish --tag="page-builder-plugin-views"
bash
php artisan vendor:publish --tag="page-builder-plugin-stubs"