tms/consent

基于Klaro的简单、轻量级且可定制的Neos CMS同意管理器!

安装数: 1,234

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 20

语言:SCSS

类型:neos-plugin


README

基于Neos CMS的简单、轻量级且可定制的同意管理器,基于Klaro!

让您的用户决定在访问您的网站时哪些脚本应该加载和执行。

重要提示:我们是开发者,不是律师。未经进一步修改使用此包很可能会导致不符合GDPR、ePrivacy或CCPA要求!

安装

composer require tms/consent

包含什么?

  • Klaro脚本 + 乐观的Klaro配置(可覆盖或随时使用自己的配置)
  • 通过Settings.yaml和预定义服务编辑Klaro配置
  • Klaro默认样式和主题 /Resources/Private/Styles/Theme
  • 为被阻止的内容元素提供占位符(Fusion组件 + JS)
  • 同意设置按钮(Fusion组件 + JS)
  • 覆盖常见Neos包 /Resources/Private/Fusion/PresetPackages

使用方法

步骤1:通过YAML设置服务配置

此包包含以下服务的默认同意管理设置。在您的Settings.yaml中启用它们或添加您自己的服务。

  • Cloudflare
  • Matomo
  • Google Analytics
  • Google Maps
  • Youtube
# Example Tms.Consent configuration
Tms:
  Consent:
    config:
      # The privacy policy uri can be specified by node type, path, identifier or simply an absolute/relative link
      privacyPolicy: '#4999814e-61c2-4ce1-ab46-c1145f2285d7'
      
      # Enable the services you need consent management for
      services:
        matomo:
          enabled: true
          # Use the position key to render services in your favorite order
          position: 100
        youtube:
          enabled: true
          position: 200

扩展服务

简单地扩展您Neos包内的YAML设置。

Tms:
  Consent:
    config:
      services:
        yourServiceName:
          enabled: true

          # -----------------------------------------------------------------
          # Klaro! Config
          # -----------------------------------------------------------------
          klaro:
            name: yourServiceName
            title: 'Your Service Title'
            description: 'Short description, why your website use this service...'
            purposes: ['functionality']

认为您的服务配置对其他人也很有用?不要犹豫,提交一个PR。所有与服务相关的配置应组合在一个名为Settings.Consent.YourServiceName.yaml的设置文件中。

步骤2:修改HTML

为了控制您配置的服务(例如,在没有同意的情况下停止加载和/或执行),您必须修改网页生成的HTML。

这可以通过简单地替换一些属性来实现 - 请参阅https://github.com/KIProtect/klaro#managing-third-party-appstrackers

我们试图为一些常见的Neos包提供预配置解决方案,请参阅/Resources/Private/Fusion/PresetPackages,我们已经覆盖的内容。如果您的包缺失,如果您认为服务配置对其他人可能有用,请提交一个PR。

步骤3:验证

检查您的网站 - 您是否已阻止所有关键服务?

(可选)步骤4:为被阻止的内容元素提供更好的UX

这是一个如何使用Fusion组件和Bootstrap标记来处理Youtube的示例。

prototype(Your.Package:Component.Atom.Youtube) < prototype(Neos.Fusion:Component) {
    renderer = afx`
        <div class="embed-responsive embed-responsive-16by9">
            <Tms.Consent:Component.Atom.NoConsentPlaceholder serviceName="youtube" imageUri="" />
            <iframe src="about:blank" data-name="youtube" data-src="https://www.youtube-nocookie.com/embed/4DVD03IlXIs?wmode=transparent&amp;autoplay=&amp;controls=1&amp;rel=&amp;showinfo=" class="embed-responsive-item" loading="lazy" allowfullscreen="1"></iframe>
        </div>
    `
}

愿望清单

  • 添加多站点支持
  • 带有一些基本接受率统计的后端模块
  • 基于用户位置的配置

任何反馈、PR或其他贡献都非常欢迎!

致谢

开发由tms.development - 在线营销和Neos CMS代理赞助

Webpack配置灵感来自https://github.com/neos/redirecthandler-ui