creode / nova-page-builder
在Laravel Nova中暴露了一个简单可定制的页面构建器,基于Flexible Content字段构建。
Requires
- php: ^8.1
- illuminate/contracts: ^10.0
- spatie/laravel-package-tools: ^1.14.0
- whitecube/nova-flexible-content: ^1.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
This package is auto-updated.
Last update: 2024-09-04 09:15:31 UTC
README
在Laravel Nova中暴露了一个简单可定制的页面构建器,基于Flexible Content字段构建。
安装
您可以通过composer安装此包
composer require creode/nova-page-builder
可选,您可以使用以下命令发布视图
php artisan vendor:publish --tag="nova-page-builder-views"
用法
此包从之前名为 nova-pages
的模块中拆分出来。该模块提供了易于创建新组件的页面构建器功能。此模块将页面构建器功能与页面管理功能分离,允许您在不需要页面管理的情况下使用页面构建器。
此模块大量使用nova-flexible-content包,因此在使用此包之前,您应该熟悉该包。
页面构建器字段
此模块创建了一个新的字段类型,Creode\NovaPageBuilder\Nova\Fields\PageBuilder
。此字段类型是Flexible
字段类型的包装,因此您可以使用与Flexible
字段类型相同的所有方法。唯一的区别是,PageBuilder
字段类型将自动注册您创建的所有组件。
排除组件
如果您希望排除某些组件在字段中使用,您可以通过将组件名称数组传递到PageBuilder
字段类型的exclude
方法来实现。例如,如果您想排除Banner
组件,您可以在您的Page
Nova资源中添加以下内容
public function fields(Request $request) { return [ // ... PageBuilder::make('Content') ->exclude(['banner']), ]; }
渲染组件
此模块提供了一个可以用于在网站前端渲染组件的blade文件。
我们还包含一个需要在您的模型中添加的特质。此特质将允许您访问页面构建器字段的内容,并允许您将组件传递到blade文件中。该特质是Creode\NovaPageBuilder\Traits\HasPageBuilderContent
。您可以在模型中使用此特质,如下所示
use Creode\NovaPageBuilder\Traits\HasComponents; class Page extends Model { use HasPageBuilderContent; /** * The name of your page builder field. */ protected $componentField = 'content'; }
一旦将上述内容添加到您的模型中,您可以通过调用$page->components
并将此传递到以下视图文件来渲染页面构建器字段的组件
例如
@include('page-builder::components', ['components' => $page->components])
扩展
如前所述,此模块不会定义任何页面内容的格式。然而,它包含使用最少代码定义内容块的架构。要定义新的内容块,您需要定义Creode\NovaPageBuilder\Abstracts\PageBlockAbstract
类的扩展。然后,您应该在新服务提供者的boot方法中实例化您的新的类。
作为您新类的一部分,您必须定义一个"$label"字符串属性。这将是你新内容块的人类可读表示。您必须定义一个"$name"字符串属性。这将如何Laravel引用您的内容块。您必须定义一个"$view"字符串属性。这应该引用一个包含在渲染前端页面上的标记和/或模板逻辑的视图文件。您必须定义一个"fields"方法。这应该返回一个Laravel Nova字段对象数组。
更新日志
有关最近更改的更多信息,请参阅CHANGELOG
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请查阅我们的安全政策,了解如何报告安全漏洞。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。