itemvirtual/cookies-popup

Laravel 项目中的 Cookie 同意管理

1.2.3 2024-06-28 08:02 UTC

This package is auto-updated.

Last update: 2024-09-28 08:49:57 UTC


README

Laravel 包

此包提供了一个弹出层来管理 Cookie 同意

Latest Version on Packagist Total Downloads

安装

您可以通过 composer 安装此包

composer require itemvirtual/cookies-popup

发布配置文件(使用 --force 选项更新)

php artisan vendor:publish --provider="Itemvirtual\CookiesPopup\CookiesPopupServiceProvider" --tag=config

您需要将包的 Cookie 名称添加到 EncryptCookies 数组除外

# file app/Http/Middleware/EncryptCookies.php
protected $except = [
    'analytical_cookies',
    'advertising_cookies',
    'recaptcha_cookies',
    'preferences_cookies',
];

在 Laravel 11 中,您应该在应用程序的 bootstrap/app.php 文件中添加到 encryptCookies 方法中的 Cookie 名称

->withMiddleware(function (Middleware $middleware) {
    $middleware->encryptCookies(except: [
        'analytical_cookies',
        'advertising_cookies',
        'recaptcha_cookies',
        'preferences_cookies',
    ]);
})

生成翻译

labels 部分有一个命令可以创建所需的翻译

php artisan cookies-popup:generate-labels

如果您希望将翻译创建在文件中,这些是必要的索引

cookies-popup-title
cookies-popup-text
cookies-popup-configure
cookies-popup-accept
accept-required-cookies-label
accept-required-cookies-info
accept-preferences-cookies-label
accept-preferences-cookies-info
accept-analytical-cookies-label
accept-analytical-cookies-info
accept-advertising-cookies-label
accept-advertising-cookies-info
accept-recaptcha-cookies-label
accept-recaptcha-cookies-info
cookies-popup-close
cookies-configure-link

使用方法

打印弹出层

要添加 Cookie 弹出层,请将此代码放在您的 HTML 布局页脚之后

{!! \Itemvirtual\CookiesPopup\CookiesPopup::addCookiesPopup() !!}

如果您的 config/cookies-popup.php 中的 add-inline-styles 设置为 false。您应该在 <head> HTML 标签内部使用 getHeadStyles()

{!! \Itemvirtual\CookiesPopup\CookiesPopup::getHeadStyles() !!}

要添加打开 Cookie 弹出层的链接,请使用 cookies-popup-show 参数的 id

<a href="#" id="cookies-popup-show" rel="noopener">{{ trans('cookies-popup.cookies-configure-link') }}</a>

检查 Cookie 是否允许

要隐藏或显示与 Cookie 同意相关的内容,请使用 allowed 方法

@if(\Itemvirtual\CookiesPopup\CookiesPopup::allowedAnalyticalCookies())
@endif
@if(\Itemvirtual\CookiesPopup\CookiesPopup::allowedAdvertisingCookies())
@endif
@if(\Itemvirtual\CookiesPopup\CookiesPopup::allowedRecaptchaCookies())
@endif
@if(\Itemvirtual\CookiesPopup\CookiesPopup::allowedPreferencesCookies())
@endif

添加 Google Analytics 脚本

要将脚本添加到您的布局(gtag.jsanalytics.js),请使用您需要的 () 方法

{!! \Itemvirtual\CookiesPopup\CookiesPopup::getGtagJs() !!}
{!! \Itemvirtual\CookiesPopup\CookiesPopup::getAnalyticsJs() !!}

您需要添加一个环境变量 GA_MEASUREMENT_ID,它可以是逗号分隔的数组

GA_MEASUREMENT_ID="UA-XXXXXXXX-X"
GA_MEASUREMENT_ID="G-XXXXXXXXXX, AW-XXXXXXXXXX"

analytics.js 脚本是正常的或 async 脚本 更多信息

analytics.js
通用分析 (gtag.js)

样式

为了样式化您的弹出窗口,您有两个选项。
配置参数 custom_stylescustom_classes

使用 custom_styles 您可以更改一些 CSS 样式。如果您需要更深入的设计更改,请使用 custom_classes,它将连接到通用类

文档链接

Google Consent Mode

如何配置网站上的同意模式
如何使用 Tag Assistant 解决同意模式的故障
Tag Manager 同意模式支持
Google Tag Assistant

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

鸣谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件