荷兰高度 / cookie-boss
允许您的访客设置他们的cookie偏好。
Requires
- craftcms/cms: ^3.1.0
- dev-master
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.0
- 1.3.3
- 1.3.2.2
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.0
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.5
- 1.0.4
- 1.0.3.1
- 1.0.2
- 1.0.0
- dev-dependabot/composer/craftcms/cms-3.8.6
- dev-dependabot/composer/guzzlehttp/psr7-2.5.0
- dev-dependabot/composer/twig/twig-2.14.13
- dev-dependabot/composer/guzzlehttp/guzzle-7.4.5
This package is auto-updated.
Last update: 2024-09-26 16:36:08 UTC
README
Craft CMS 3.x 的cookie-boss插件
允许您的访客设置他们的cookie偏好,您可以使用它来启用您网站上的功能。创建您自己的cookie组,使它们成为必填项并/或设置它们的默认状态。这些cookie组可以包含包含您可以使用来描述每个cookie目的的信息的cookie。
默认模态包含以下功能
- 默认响应式模态
- 位置(左上角,右上角,左下角,右下角)
- 自动接受并在x秒后关闭(可选)
- 未经同意阻止网站使用
- 显示设置(是/否)
带设置的模态
模态设置
无设置的模态
需求
此插件需要Craft CMS 3.0.0或更高版本。
安装
要安装此插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project
-
然后告诉Composer加载插件
composer require dutchheight/craft-cookie-boss
-
在控制面板中,转到设置→插件,并单击Craft Cookie boss的“安装”按钮。
-
在应显示模态的页面(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 提供