荷兰高度/cookie-boss

允许您的访客设置他们的cookie偏好。

1.4.4 2021-10-04 14:05 UTC

README

Screenshot

Craft CMS 3.x 的cookie-boss插件

允许您的访客设置他们的cookie偏好,您可以使用它来启用您网站上的功能。创建您自己的cookie组,使它们成为必填项并/或设置它们的默认状态。这些cookie组可以包含包含您可以使用来描述每个cookie目的的信息的cookie。

Create own cookie groups Add cookies to cookie groups

默认模态包含以下功能

  • 默认响应式模态
  • 位置(左上角,右上角,左下角,右下角)
  • 自动接受并在x秒后关闭(可选)
  • 未经同意阻止网站使用
  • 显示设置(是/否)

带设置的模态

Modal with settings

模态设置

Modal without settings

无设置的模态

Modal without settings

需求

此插件需要Craft CMS 3.0.0或更高版本。

安装

要安装此插件,请按照以下说明操作。

  1. 打开您的终端并转到您的Craft项目

     cd /path/to/project
    
  2. 然后告诉Composer加载插件

     composer require dutchheight/craft-cookie-boss
    
  3. 在控制面板中,转到设置→插件,并单击Craft Cookie boss的“安装”按钮。

  4. 在应显示模态的页面(s)上添加 {{ craft.cookieBoss.askConsent() }}

使用Craft Cookie boss

显示同意模态

craft.cookieBoss.askConsent(options, force)用于显示默认同意模态。

示例

显示模态 craft.cookieBoss.getConsents()

显示右上角的模态 craft.cookieBoss.getConsents({'position': 'top-right'})

始终显示模态

{{ craft.cookieBoss.getConsents({}, true) }}

显示cookie描述

显示一个包含所有启用cookie的表格。该表格的id为#cookie-descriptions。每个cookie都根据consentgroup的同意提供类.consent-true.consent-false。所有cookie都按其组分组,该组具有类.cookie-descriptions-group-title。如果您需要更多控制,可以使用craft.cookieBoss.getCookiesRaw()

示例

显示包含所有启用cookie的表格

{{ craft.cookieBoss.getCookies() }}

显示cookie组切换复选框

显示一个复选框,用于切换指定的同意组。有关更多控制,请参阅“使用表单切换同意组”

示例

显示一个可以用于切换同意组的复选框

{{ craft.cookieBoss.toggleConsentGroupForm('marketing') }}

获取所有访客同意

craft.cookieBoss.getConsents(defaultConcentIfNotSet)用于获取一个包含访客同意的数组。

示例

获取当前访客的所有同意 craft.cookieBoss.getConsents()

获取当前访客的所有同意。如果没有找到内容,则获取默认值。craft.cookieBoss.getConsents(true)

获取访客同意日期

craft.cookieBoss.getConsentGiveAt(format)用于获取访客同意的Unix时间戳或格式化日期。

示例

获取当前访客同意时间。 craft.cookieBoss.getConsentGiveAt()

获取当前访客同意时间(给定格式)。 craft.cookieBoss.getConsentGiveAt("d-m-Y")

获取访客是否对cookie组给出了同意

craft.cookieBoss.isConsentWith(handle)用于通过handle获取当前访客的同意。

示例

获取当前访客的同意

{% if craft.cookieBoss.isConsentWith('marketing') %}
    We have permission to do marketing stuff
{% endif %}

获取所有同意组

craft.cookieBoss.getConsentsGroupsRaw(false)用于获取所有同意组。

示例

获取所有同意组。

craft.cookieBoss.getConsentsGroupsRaw()

按handle获取所有同意组

craft.cookieBoss.getConsentsGroupRawByHandle(consentGroupHandle) 用于通过句柄获取所有饼干组。

示例

通过句柄获取所有饼干组。

craft.cookieBoss.getConsentsGroupRawByHandle()

获取所有饼干描述

craft.cookieBoss.getCookiesRaw() 用于获取所有饼干描述。craft.cookieBoss.getCookiesRaw(consentGroupHandle) 用于获取特定同意组的所有饼干描述。

示例

获取所有饼干描述

craft.cookieBoss.getCookiesRaw()

自定义模态框

craft.cookieBoss.getConsentsGroupsRaw() 将返回所有原始数据,您可以使用这些数据创建自定义模态框。

保存设置

/craft-cookie-boss/save-consent-settings 接受带有新同意设置的 POST 请求。需要使用 Craft csrf 令牌。使用 craft.app.request.csrfParam 获取密钥,使用 craft.app.request.csrfToken 获取实际令牌。

示例请求数据

    "groups": {
        "technical": true,
        "marketing": false
    },
    "CRAFT_CSRF_TOKEN": "ABC...XYZ"

使用自定义表单切换同意组

/cookie-boss/toggle-consent-group 发送 POST 请求。对于您希望切换的每个组,您需要传递一个由句柄名称表示的布尔值。

示例表单

{% set handle = 'marketing %}
{% set consentGroup = craft.cookieBoss.getConsentsGroupRawByHandle(handle) %}
<form id="toggle-{{ handle }}-form" action="/cookie-boss/toggle-consent-group" method="POST">
    {{ csrfInput() }}
    {{ redirectInput(craft.app.request.pathInfo) }}
    <input type="hidden" name="groups[marketing]" value="" />
    <input type="checkbox" class="inline js-toggle-consentGroup ml-2" value="true"
        name="groups[{{ handle }}]"
        onchange="document.getElementById('toggle-{{ handle }}-form').submit();"
        id="toggle-{{ handle }}-checkbox"
        {% if consentGroup.required %} disabled {% endif %}
        {% if consentGroup.hasConsent() or consentGroup.required %}checked {% endif %}>
</form>

Craft Cookie Boss 路线图

一些待办事项以及潜在功能的想法

  • 更多模板(模态框)
  • 支持每个网站的不同设置(多站点)
  • JavaScript 事件

Dutch Height 提供