astrogoat / promobar
Strata 促销栏应用程序
Requires
- php: ^8.0
- astrogoat/strata: ^0.7.0
- illuminate/support: ^8.37 || ^9.0 || ^10.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- nunomaduro/collision: ^5.3|^7.0
- orchestra/testbench: ^6.15|^8.5
- pestphp/pest: ^1.18|^2.16
- pestphp/pest-plugin-laravel: ^1.1|^2.2
- spatie/laravel-ray: ^1.23
- vimeo/psalm: ^4.8|^5.15
README
安装
您可以通过 composer 安装此包
composer require astrogoat/promobar
使用
在您希望促销栏出现的位置包含 Blade 组件,每当通过应用程序设置启用促销栏时。
<x-promobar::show />
由于它是一个 Blade 组件,您还可以添加任何需要的属性。
<x-promobar::show class="sticky top-0" />
扩展
如果您有特殊需求,可以扩展促销栏以使用您自己的设置和渲染。
扩展它需要三个文件。
- 一个扩展
Astrogoat\Promobar\Types\PromobarType
的类型类。 - 两个 Blade 文件
- 一个用于设置视图
- 还有一个用于面向用户的侧边栏,它将位于您的网站上。
让我们从类型类开始。创建一个新的类并扩展 Astrogoat\Promobar\Types\PromobarType
。
该类只需要两个方法。 renderSettings
和 renderComponent
,它们需要您两个 Blade 文件的字符串路径。
<?php namespace App\Promobar\Types; use Astrogoat\Promobar\Types\PromobarType; class PopupType extends PromobarType { public function renderSettings() : string { return 'promobar.settings'; } public function renderComponent() : string { return 'promobar.component'; } }
让我们创建这两个 Blade 文件。
resources/views/promobar/settings.blade.php
在这里,您可以定义当您转到 应用程序
-> 促销栏
并选择您的促销栏类型时设置将如何显示。尽管我们还没有连接它,所以目前不会显示任何内容。
<div> <input name="payload[content_desktop]" wire:model="payload.content_desktop" /> <input name="payload[content_mobile]" wire:model="payload.content_mobile" /> </div>
重要:当您添加任何需要持久化的输入类型时,您需要添加
name
和wire:model
属性。名称必须以payload[]
开头的 html 数组。您可以在括号中放置任何您想要的名称。对于wire:model
,它必须以payload.
开头,再次,您可以在点号之后放置任何您想要的名称,但它应该与您的name
属性相同。
现在,在您的组件 Blade 视图(将成为面向用户的组件)中,您可以使用在设置 Blade 文件中定义的输入。
resources/views/promobar/component.blade.php
<div> <span class="md:hidden">{{ $payload['content_mobile'] ?? '' }}</span> <span class="hidden md:flex">{{ $payload['content_desktop'] ?? '' }}</span> </div>
最后一步是连接它们。
在您的服务提供商的 register 方法中,您可以连接到促销栏。 $promobar->addType()
方法需要两个参数。第一个是键,在这个例子中我们称之为 popup
,第二个参数是我们之前创建的类型类。
use App\Promobar\Types\PopupType; $this->callAfterResolving('Astrogoat\\Promobar\\Promobar', function ($promobar) { $promobar->addType(key: 'popup', type: PopupType::class); });
真实世界示例
您可以在 Zaius 应用程序 中看到一个真实世界的示例,说明如何将其连接到促销栏。
测试
composer test
变更日志
请参阅 变更日志 了解最近更改的信息。
贡献
请参阅 贡献指南 了解详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
此促销栏包是从出色的 Spatie 促销栏包 分支的。如果您可以的话,请支持他们。
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。