takepart-media / statamic-oreos
Statamic 3 的 Cookie 同意管理器
README
Statamic 3 的 Cookie 同意管理器。
特性
Oreos 允许您在两个层面上管理 Cookie 同意:同意组及其相关设置通过插件配置文件管理,而相应的标题和描述则通过控制面板管理。这使得您的作者不仅可以即时编辑文本,无需部署站点或开发人员打开他们的编辑器,还可以管理多站点(和多语言)安装中的文本。
- 通过插件配置文件管理 Cookie
- 通过控制面板管理 Cookie 文本
- 控制面板视图权限(查看和编辑)
- 可定制的表单视图(例如,用于隐私页面的 antlers 标签)和弹出窗口(如果没有设置 Cookie 则显示的弹出窗口)
如何安装
您可以在 Statamic 控制面板的“工具 > 插件”部分搜索此插件,并点击“安装”,或者从您的项目根目录运行以下命令
composer require takepart-media/statamic-oreos
之后,发布配置文件以自定义您的同意组并调整其他设置。
php artisan vendor:publish --tag=oreos-config
要自定义用户体验,您可以自由发布视图以根据您的需求进行自定义
php artisan vendor:publish --tag=oreos-views
如何使用
默认视图
弹出窗口
要将包含表单的弹出窗口添加到您的布局中,请使用 oreos:popup
标签将其放置在相应的位置(通常在 body 的末尾作为第一级子元素,例如在您的主布局文件中)
resources/views/layout.antlers.html
... {{ oreos:popup }} </body> </html>
保存后,页面将重新加载(技术上,我们在 /!/oreos/save
提交控制器操作后重定向到引用页面),因此所有检查同意的语句都应返回正确的设置。
表单
要在隐私声明中回忆设置,通常添加 oreos:form
标签。这可以在您的内容中完成,但请确保允许 antlers 解析
{{ oreos:form }}
这将仅显示 弹出窗口中的表单,而不是弹出窗口本身(表单周围的一切)。通过传递参数,您可以显示或隐藏某些元素。如果您使用自定义视图,此功能可能会损坏。默认配置(如果省略参数,则使用默认值)
{{ oreos:form description="true" acceptall="true" cancel="true" reset="false" }}
自定义视图
当然,您希望为您的访客定制体验:我们为您提供了解决方案。借助我们的标签,您可以轻松地覆盖和自定义弹出窗口以及表单——或者只是其中的一部分。
首先,发布插件的视图
php artisan vendor:publish --tag=oreos-views
这应在 /resources/views/vendor/oreos/
文件夹中创建两个文件,用于表单(form.antlers.php
)和弹出窗口(popup.antlers.html
)。这些文件可以按您的意愿进行自定义。您甚至可以完全省略我们的视图,仅使用我们的骨架,通过使用我们的控制器端点和我们的 oreos
标签来使用您自己的部分或模板。查看 form.antlers.php
了解如何将一切连接起来!
在其他地方使用 Cookie 组
借助 oreos
标签,您可以在网站上的任何地方显示您的 Cookie 组及其所有相关信息
{{ oreos }} <h2>{{ title }}</h2> <p>{{ description }}</p> <p>Consent: {{ consent ? 'true' : 'false' }}</p> {{ /oreos }}
在 oreos-loop 中增强以下属性
检查同意
要检查是否已对 Cookie 组给予同意,请使用 oreo:yourgrouphandle
标签
{{ if {oreo:yourgrouphandle} }} do something if yourgrouphandle is checked {{ else }} do something if yourgrouphandle is *not* checked {{ /if }}
使用静态缓存
当与启用静态缓存的功能一起使用时,无需任何其他更改,您的网站将抛出419 页面过期
错误。为了使插件正常工作,您必须使用{{ nocache }}
标签排除oreo
-弹出窗口以及缓存中的所有检查:https://statamic.dev/tags/nocache
# resources/views/layout.antlers.html
{{ nocache }}
{{ oreos:popup }}
{{ /nocache }}
# resources/views/partials/embed.antlers.html
{{ nocache }}
{{ if {oreo:embeds} }}
{{ embed_code }}
{{ /if }}
{{ /nocache }}
作者
- Dennis Dick, dick@takepart-media.de
- Jakob Plöns, jploens@takepart-media.de
© 2021 TAKEPART Media + Science GmbH