binomeway / nova-page-manager-tool
此包已被废弃,不再维护。没有建议的替代包。
Laravel Nova 管理页面工具。
v1.1.0
2021-08-26 19:41 UTC
Requires
- php: >=8.0
- binomeway/nova-taxonomies-tool: *
- eminiarts/nova-tabs: ^1.4
- manogi/nova-tiptap: ^1.4
- optimistdigital/nova-sortable: ^2.4.0
- spatie/eloquent-sortable: ^4.0.0
- spatie/laravel-package-tools: ^1.9
- whitecube/nova-flexible-content: ^0.2.8
This package is auto-updated.
Last update: 2024-06-27 02:16:11 UTC
README
Nova 页面管理工具
从 Nova 控制面板管理静态页面。
先决条件
此工具依赖于以下包
请参阅其文档获取安装和使用说明。
安装
在 NovaServiceProvider.php
中注册此工具
public function tools(){ return [ \BinomeWay\NovaPageManagerTool\NovaPageManagerTool::make(), ]; }
发布迁移。
php artisan vendor:publish --provider="\BinomeWay\NovaPageManagerTool\ToolServiceProvider" --tag="migrations"
配置工具。
php artisan vendor:publish --provider="\BinomeWay\NovaPageManagerTool\ToolServiceProvider" --tag="config"
可选,自定义工具视图。
php artisan vendor:publish --provider="\BinomeWay\NovaPageManagerTool\ToolServiceProvider" --tag="views"
使用方法
模板
定义模板
您可以通过创建一个类并从 BinomeWay\NovaPageManagerTool\Template
继承来定义一个新的模板。
namespace App\Templates; use BinomeWay\NovaPageManagerTool\Template; class AboutTemplate extends Template { protected string $group = 'General'; // Displayed in the select field protected string $label = 'About Us'; // Displayed in the select field protected string $path = 'pages.about-us'; }
或使用生成器命令
php artisan nova-page-manager:template AboutTemplate
它将为您生成模板类和视图文件。
注册模板
定义好模板后,从服务提供者处注册。它可以放在 AppServiceProvider
、ViewServiceProvider
或其他任何服务提供者中。
use \BinomeWay\NovaPageManagerTool\Facades\TemplateManager; public function boot() { TemplateManager::register([ \App\Templates\AboutTemplate::class, ]); }
页面构建器
块
定义块
namespace App\Blocks; use BinomeWay\NovaPageManagerTool\Block; use Laravel\Nova\Fields\Textarea; class DescriptionSectionBlock extends Block { /** * The layout's unique identifier * * @var string */ protected $name = 'description-section'; /** * The displayed title * * @var string */ protected $title = 'Description Section'; /** * The view path associated with this block. * @var string */ protected string $component = 'blocks.description-section'; /** * Get the fields displayed by the layout. * * @return array */ public function fields() { return [ Textarea::make(__('Description'), 'description') ]; } public function customLogic(){ // You can define custom methods and use them within view. } }
注册块
在 AppServiceProvider
的 boot
方法中,您可以使用 PageBuilder 门面来注册块。
// AppServiceProvider.php use BinomeWay\NovaPageManagerTool\Facades\PageBuilder; function boot() { PageBuilder::register([ 'description-section' => \App\Blocks\DescriptionSectionBlock::class, ]); }
渲染块
在您的模板中,您可以遍历每个块并仅包含块关联的组件。
<x-app-layout> <x-slot name="header"> {{ $page->title }} </x-slot> <div class="py-12 max-w-2xl mx-auto"> <article class="prose prose-lg"> @foreach($page->blocks as $block) @include($block->component()) @endforeach </article> </div> </x-app-layout>
预设
定义预设
待办事项:文档
注册预设
待办事项:文档
路线图
-
页面构建器 - 改进发布工作流程
- 定时发布
- 改进模板系统
- 版本控制系统
- 多语言支持
- 协作编辑
- 使工具更可扩展
致谢
变更日志
1.1.0
- 为
Page
资源添加了 排序。 - 为
Page
添加了 URL 构建器。 - 重大变更 将
content
列表重构为summary
列表。 - 将
meta
列表重构为blocks
列表 - 由于未使用,已移除
PageFactory
。稍后将其添加回来。 - 为
Page
模型中的 status 标签添加了辅助方法。 - 调整页面构建器
1.0.2
- 实现了位置标签过滤
1.0.1
- 将 'Other' 的文本更改为页面构建器
- 将 'Meta' 的文本更改为块
1.0.0
- 发布