yaroslawww / nova-ad-director
Laravel nova 广告管理器,用于在网站上展示广告。
2.1.0
2023-08-06 11:06 UTC
Requires
- php: ^8.1
- illuminate/support: ^9.0|^10.0
- laravel/nova: ^4.0
- think.studio/nova-flexible-content: ^3.0|^4.0
- yaroslawww/laravel-ad-director: ^1.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.16
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^10.1
- psalm/plugin-laravel: ^2.8
- vimeo/psalm: ^5.11
This package is auto-updated.
Last update: 2024-09-06 13:42:00 UTC
README
Laravel nova 广告管理器,用于在网站上展示广告。
安装
您可以通过composer安装此包
composer require yaroslawww/nova-ad-director # optional publish configs php artisan vendor:publish --provider="NovaAdDirector\ServiceProvider" --tag="config" # publish translations php artisan vendor:publish --provider="NovaAdDirector\ServiceProvider" --tag="lang"
使用方法
- 该包仅支持预定义的大小。因此,开发者首先应指定"全局"大小
- 继承或添加到nova AdConfiguration资源
- 继承或添加到auth服务提供者AdConfigurationPolicy
- 如果应用程序使用配置文件且"creatable==false",则开发者需要手动创建新位置
php artisan nova-ad-director:ad-config:create <key-name> <location-name>
- 然后配置系统中的广告
use NovaAdDirector\Facades\NovaAdDirector; class FrontpageController extends Controller { public function __invoke() { NovaAdDirector::prepareAds([ 'header' => NovaAdDirector::fallbackKey('header', 'frontpage'), 'medium-posts-list' => NovaAdDirector::fallbackKey('medium', 'list', 'frontpage'), 'footer-v2' => NovaAdDirector::fallbackKey('footer', 'frontpage'), ]); return view('frontpage'); } }
键回退搜索流程
在多种情况下,使用相同的广告但针对特定页面上的特定广告等,是有好处的。解决方案是使用回退流程
每个键都可以从多个嵌套指针中计算得出,系统将在子键为空的情况下尝试找到父键。
例如,网站有多个页面和多个帖子。因此,不同的页面和帖子将搜索以下键
header:page:frontpage
header:page:contact-us
header:post:12
header:post:654
每个此键都将搜索回退
header:page:frontpage
=>header:page
=>header
header:page:contact-us
=>header:page
=>header
header:post:12
=>header:post
=>header
header:post:654
=>header:post
=>header
管理员可以在管理员界面中指定仅header
配置,并在任何时刻添加一些特定的广告项,如header:page:contact-us
以覆盖仅用于联系页面的广告,或header:post
以仅在帖子中使用特定广告。
覆盖默认回退分隔符
class AppServiceProvider extends ServiceProvider { public function register() { \NovaAdDirector\NovaAdDirector::setFallbackKeyConnector('/'); } }