infernalmedia/laravel-cookie-consent

魁北克法律25号下的Cookie同意底部窗口,由statikbe/laravel-cookie-consent分支而来

v1.0.4 2023-09-14 16:47 UTC

This package is auto-updated.

Last update: 2024-09-21 18:04:35 UTC


README

Latest Version on Packagist Total Downloads

该包包含一个用于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"

我们不会在视图中包含片段,而是会自动添加。这是通过使用中间件和两种方法完成的

  1. 第一种选择:使用kernel将其包含在整个项目中
// app/Http/Kernel.php

class Kernel extends HttpKernel
{
    protected $middleware = [
        // ...
        \Infernalmedia\CookieConsent\CookieConsentMiddleware::class,
    ];

    // ...
}
  1. 第二种选择:将其作为路由中间件添加到任何您想要的路由中。
// 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)。请参阅许可文件获取更多信息。