ludmanp / typicms-pageoptions
允许在 TypiCMS 页面中添加更多参数
11.0.3
2023-12-18 10:29 UTC
Requires
- php: ^8.1
- bkwld/croppa: ^6.0
- genealabs/laravel-model-caching: ^0.13.4
- illuminate/contracts: ^10.0
- laracasts/presenter: ^0.2.6
- spatie/laravel-package-tools: ^1.14.0
- spatie/laravel-translatable: ^6.5
- typicms/core: ^11.0
- typicms/nestablecollection: ^3.0
Requires (Dev)
- larastan/larastan: ^2.0.1
- 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
- roave/security-advisories: dev-latest
README
允许根据页面模板扩展 TypiCMS 页面属性。
安装
您可以通过 composer 安装此包
composer require ludmanp/typicms-pageoptions
为了准备使用,您可以运行
php artisan page-options:install
该命令将发布并运行迁移。
您也可以单独运行命令来完成这些操作
php artisan vendor:publish --tag="page-options-migrations"
php artisan migrate
可选地,您可以使用以下命令发布视图
php artisan vendor:publish --tag="typicms-pageoptions-views"
用法
管理员
包含
<x-pageoptions-admin-form :model="$model" />
到 resources/viwes/vendor/pages/admin/_from.blade.php
。
$model
是当前页面模型
在 resources/viwes/vendor/page-options/admin
目录中创建与页面模板同名的 blade 文件。例如 default.blade.php
要添加选项,例如,您可以
{!! BootForm::text(__('Description'), 'options[description]') !!} {!! TranslatableBootForm::text(__('Phone number'), 'options[phone][number]') !!}
要包含特定图像,使用
<x-pageoptions-image :model="$model" name="preview_image_id" label="Preview image"/> <x-pageoptions-image :model="$model" name="phone.icon_id" label="Phone icon"/>
name
是选项名称,使用点来创建多级数组。 label
是可选的,但建议与其他图像字段区分开来
同样,您可以添加文件字段
<x-pageoptions-file :model="$model" name="specification" label="Specification"/>
公开
在页面模板(pages/public/*.blade/php
)中使用以输出 PageOptions
要输出简单选项,使用
{{ $pageOptions->present()->option('phone') }}
要输出可翻译选项,使用
{{ $pageOptions->present()->optionTranslated('company.name') }}
有一个可选的本地化参数
{{ $pageOptions->present()->optionTranslated('company.name', 'en') }}
要输出图像,使用
<img src="{{ $pageOptions->present()->optionsImage('contact.image') }}" alt="{{ optional($pageOptions->present()->optionsFile('contact.image'))->alt_attribute ?? 'Contacts' }}"/>
额外的参数 width
、height
和 options
可用,如 presenter 的 image
方法中。
要获取文件模型,使用。
$pageOptions->present()->optionsFile('contact.file')
如您所见,它还适用于图像以获取 alt_attribute
等。
要创建指向文件的链接,您可以写作以下内容
<a href="{{ optional($pageOptions->present()->optionsFile('contact.file'))->url }}">File</a>
鸣谢
许可
MIT 许可证(MIT)。请参阅 许可文件 了解更多信息。