infernalmedia / laravel-cookie-consent
魁北克法律25号下的Cookie同意底部窗口,由statikbe/laravel-cookie-consent分支而来
Requires
- php: ^8.1
- illuminate/http: ^9.0|^10.0
README
该包包含一个用于cookie横幅和模态窗口的脚本和样式,访问者可以在其中选择他们的cookie偏好设置。
此包主要基于spatie的版本: https://github.com/spatie/laravel-cookie-consent
唯一的例外是你可以选择启用哪些cookie。这仅在Google Tag Manager正确配置的情况下才有效(基于在cookie中设置的值的一些正则表达式配置)。
安装
您可以通过composer安装此包
composer require infernalmedia/laravel-cookie-consent
该包将自动注册自己。
速查表
php artisan vendor:publish --provider="Infernalmedia\CookieConsent\CookieConsentServiceProvider" --tag="public" --tag="config"
编辑 app/Http/Kernel.php
class Kernel extends HttpKernel { protected $middleware = [ // ... \Infernalmedia\CookieConsent\CookieConsentMiddleware::class, ]; // ... }
用法
首先 您需要 发布javascript和css文件
php artisan vendor:publish --provider="Infernalmedia\CookieConsent\CookieConsentServiceProvider" --tag="public"
我们不会在视图中包含片段,而是会自动添加。这是通过使用中间件和两种方法完成的
- 第一种选择:使用kernel将其包含在整个项目中
// app/Http/Kernel.php class Kernel extends HttpKernel { protected $middleware = [ // ... \Infernalmedia\CookieConsent\CookieConsentMiddleware::class, ]; // ... }
- 第二种选择:将其作为路由中间件添加到任何您想要的路由中。
// app/Http/Kernel.php class Kernel extends HttpKernel { // ... protected $routeMiddleware = [ // ... 'cookie-consent' => \Infernalmedia\CookieConsent\CookieConsentMiddleware::class, ]; } // routes/web.php Route::group([ 'middleware' => ['cookie-consent'] ], function(){ // ... });
这将向响应的内容中添加 cookieConsent::head
,在关闭head标签之前。这将在关闭body标签之前向响应的内容中添加 cookieConsent::index
。
自定义对话框文本
如果您想修改对话框中显示的文本,可以发布lang文件,使用此命令
php artisan vendor:publish --provider="Infernalmedia\CookieConsent\CookieConsentServiceProvider" --tag="lang"
这将把这个文件发布到 resources/lang/vendor/cookieConsent/en/texts.php
。
return [ 'alert_title' => 'Deze website gebruikt cookies', 'setting_analytics' => 'Analytische cookies', ];
如果您想将值翻译成,例如,英语,只需将此文件复制到 resources/lang/vendor/cookieConsent/fr/texts.php
并填写英语翻译。
自定义对话框内容
如果您需要完全控制对话框的内容,您可以发布包的视图
php artisan vendor:publish --provider="Infernalmedia\CookieConsent\CookieConsentServiceProvider" --tag="views"
这将把 index
视图文件复制到 resources/views/vendor/cookieConsent
。
cookie-settings
视图文件只是一个您需要放置在页面上的片段。最好放在cookie政策的url旁边,在页脚中。
<a href="javascript:void(0)" class="js-lcc-settings-toggle">@lang('cookie-consent::texts.alert_settings')</a>
这给了您的访问者再次更改设置的机会。
发布
配置
php artisan vendor:publish --provider="Infernalmedia\CookieConsent\CookieConsentServiceProvider" --tag="config"
这是已发布配置文件的 内容:这将从您的env中读取策略url。
return [ 'cookie_key' => '__cookie_consent', 'cookie_value_analytics' => '2', 'cookie_value_marketing' => '3', 'cookie_value_both' => 'true', 'cookie_value_none' => 'false', 'cookie_expiration_days' => '365', 'gtm_event' => 'pageview', 'ignored_paths' => [], 'policy_url_en' => env('COOKIE_POLICY_URL_EN', null), 'policy_url_fr' => env('COOKIE_POLICY_URL_FR', null), 'policy_url_nl' => env('COOKIE_POLICY_URL_NL', null), 'facebook_pixel_code' => env('FACEBOOK_PIXEL_CODE', null), ];
您可以自定义一些与您的GTM和Facebook Pixel一起工作的设置。
在cookie政策页面或其他页面上不显示模态窗口
如果您不想在特定页面上显示模态窗口,您可以添加相关url到忽略路径设置。这也接受通配符(请参阅Laravel Str::is()
辅助函数)。
'ignored_paths => ['/en/cookie-policy', '/api/documentation*'];
翻译
php artisan vendor:publish --provider="Infernalmedia\CookieConsent\CookieConsentServiceProvider" --tag="lang"
视图
php artisan vendor:publish --provider="Infernalmedia\CookieConsent\CookieConsentServiceProvider" --tag="views"
配置Google Tag Manager
配置Google Tag Manager的所有步骤都可以在这里找到 这里。
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全漏洞
有关如何报告安全漏洞,请参阅 我们的安全策略。
鸣谢
许可协议
MIT 许可证(MIT)。请参阅许可文件获取更多信息。