PHPackages                             tdoescher/cokiban-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. tdoescher/cokiban-bundle

ActiveContao-bundle[Utility &amp; Helpers](/categories/utility)

tdoescher/cokiban-bundle
========================

Cookie-Banner der über die Contao config.yml konfiguriert wird

3.7.6(2mo ago)0915↓33.3%LGPL-3.0-or-laterPHPPHP &gt;=8.0

Since Nov 3Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/tdoescher/contao-cokiban-bundle)[ Packagist](https://packagist.org/packages/tdoescher/cokiban-bundle)[ RSS](/packages/tdoescher-cokiban-bundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (66)Used By (0)

Cookie-Banner der über die Contao config.yml konfiguriert wird
==============================================================

[](#cookie-banner-der-über-die-contao-configyml-konfiguriert-wird)

Diese Modul erzeugt einen Cookie-Banner der rein über die "config.yml" von contao konfiguriert und eingebunden wird.

Twig-Support
------------

[](#twig-support)

Um den Twig-Support zu gewährleisten gibt es in diesem Bundle eine angepaste Version des **content\_element/\_base.html.twig** Tempaltes, dies wird automatisch geladen.

```
{% extends "@Contao/content_element/_base.html.twig" %}

{% block wrapper %}
  {{ cokiban_open() }}
    {{ parent() }}
  {{ cokiban_close() }}
{% endblock %}

```

Um Templates hinter den Cookie-Banner zu verstecken die das **content\_element/\_base.html.twig** Template nicht verwenden kann der Inhalte des Templates manuell mittels `{{ cokiban_open() }}` und `{{ cokiban_close() }}` umschlossen werden.

Scripte &amp; Styles
--------------------

[](#scripte--styles)

Cokiban erfordert Alpine.js (). Um dies zu integrieren, kann man zum Beispiel das Bundle  verwenden. Außerdem muss das JavaScript-Template **js\_cokiban** aktiviert werden, dieses importiert das JavaScript und die Stylesheets für das Banner.

Nutzt man gulp oder webpack können die Dateien über diese Pfade inkludiert werden:

```
__DOCUMENTROOT__/web/bundles/cokiban/cokiban.min.js
__DOCUMENTROOT__/web/bundles/cokiban/cokiban.min.css
__DOCUMENTROOT__/web/bundles/cokiban/cokiban.js
__DOCUMENTROOT__/web/bundles/cokiban/cokiban.scss

```

Für das **content\_element/cokiban\_replacement.html.twig** Template verwende ich diesen CSS-Code:

```
.content-cokiban-replacement__replacement {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: $black;
}
.content-cokiban-replacement__background {
  position: absolute;
  inset: 0;
  height: 100%;
  width: 100%;
  pointer-events: none;
  user-select: none;
  opacity: 0.5;
  object-fit: cover;
}
.content-cokiban-replacement__text {
  position: relative;
  max-width: 600px;
  padding: 1em;
  color: #fff;
  text-align: center;
}

```

Konfiguration
-------------

[](#konfiguration)

Die Konfiguration wird der **config.yml** hinzugefügt. Tipp: Der übersichtshalber kann man eine zusätzliche **cokiban.yml** erstellen und die Konfiguration in diese auslagern. Mittels `imports: - { resource: cokiban.yml }` kann diese importiert werden.

```
cokiban:
  disable_token: 'custom-token'  ##### Optional - Funktion zum deaktiviren des Plugins mittels GET-Parameter(https://website.com/?custom-token)
  hide_token: 'custom-token'     ##### Optional - Funktion zum ausblenden des Cokiban mittels GET-Parameter(https://website.com/?custom-token)
  banners:
    alias:                       ##### Alias oder ID des Startpunktes für diese Konfiguration, alternativ kann mal "global" angeben für einen globalen Banner
      id: 'main'                 ##### Optional - Manuel setzen einer id für das Cookiebanner, ohne angabe wird die RootPageId verwendent
      version: 1                 ##### Durch das erhöhen wird das Banner beim Besucher erzwungen
      days: 30                   ##### Tage bis das Banner erneut angezeigt wird, 0 für nie
      google_consent_mode: false ##### Wenn true, wird die Funktion gtag('consent','update',{...}) für den Google Consent Mode v2 ausgeführt
      groups:                    ##### Gruppierungen der Cookie-Auswahl
        tracking:                ##### Alias der Gruppe
          analytics:             ##### Alias des Cookies, Array der Tempaltes die nicht ohne akzeptieren des Cookis angezeigt werden sollen
            - 'analytics_google'
        media:
          googlemaps:
            - 'content_element/googlemaps_embed'
            - 'content_element/googlemaps_html'
          youtube:
            - 'content_element/youtube'
      pages:                       ##### Alias oder ID der Seiten auf denen der Banner nicht angezeigt werden soll
        - 'impressum'
        - 'datenschutz'
      tempalte: 'cokiban'          ##### Optional - Angabe des zu verwendenden Templates, ohne Angabe wird "cokiban" verwendet
    translations:                  ##### Übersetzungen
      de:                        ##### Kürzel der Sprache, als fallback wird die erste angegeben Sprache verwendent
        banner:
          main_headline: 'Wir verwenden Cookies'
          main_text: 'Um unsere Website für Sie optimal zu gestalten, verwenden wir Cookies. Weitere Informationen zu Cookies und Ihren Möglichkeiten, Ihre Privacy-Einstellungen anzupassen, finden Sie in unserer {{link_open::datenschutz}}Datenschutzerklärung{{link_close}}.'
          save_button_text: 'Speichern & schließen'
          save_button_title: 'Cookie Einstellungen Speichern'
          accept_button_text: 'Alle akzeptieren'
          accept_button_title: 'Alle Cookies akzeptieren'
          details_headline: 'Cookie Details'
          details_link_text: 'Cookie Details'
          details_link_title: 'Details anzeigen'
          details_back_link_text: 'zurück'
          details_back_link_title: 'zurück zur Übersicht'
          footer_links:        #### oder footer_text
            - '{{link::impressum}}'
            - '{{link::datenschutz}}'
          footer_text: '{{link::datenschutz}} {{link::impressum}}'
          switch_true: 'aktiviert'
          switch_false: 'deaktiviert'
        button:                ##### Übersetzungen Inserttags
          text: 'Zeige Cookiebanner!'
          title: 'Cookiebanner öffnen'
        groups:                ##### Übersetzungen der Gruppen
          mandatory:
            headline: 'Notwendige Cookies'
            text: 'Diese Cookies ermöglichen grundlegende Funktionen und sind für die einwandfreie Funktion der Website erforderlich.'
          tracking:
            headline: 'Statistiken'
            text: 'Wir nutzen Google Analytics um zu verstehen, wie unsere Website genutzt wird und sie entsprechend zu verbessern.'
          media:
            headline: 'Externe Medien'
            text: 'Um Ihre Nutzererfahrung zu verbessern, greifen wir auf externe Services und Medien zurück. Ich willige ein, dass verschiedene Daten (insbesondere gekürzte IP-Adresse, Informationen zum Browser und Betriebssystem) an Unternehmen in Ländern ohne angemessenes Datenschutzniveau übermittelt werden. Sie können die Services hier einzeln aktivieren oder deaktivieren:'
        cookies:                ##### Übersetzungen der einzelnen Cookies
          analytics:
            headline: 'Google Analytics'
            text: 'Google Analytics Datenschutzerklärung'
          googlemaps:
            headline: 'Google Maps'
            text: 'Google Maps Datenschutzerklärung'
          youtube:
            headline: 'YouTube'
            text: 'Youtube Datenschutzerklärung'
        replacements:                                                       ##### Übersetzungen der Replacement Elemente nach Template, wird kein Replacement angegeben wird keins erzeugt
          content_element/googlemaps_embed:
            button: '{{cokiban::button}}'
            text: 'Um diesen Ihnalt zu sehen akzeptieren Sie bitte den Cookie für GoogleMaps.'
            background: 'files/map.webp'                                 ##### UUID oder Pfad einer Bild-Datei
          content_element/youtube:
            button: '{{cokiban::button}}'
            text: 'Um diesen Ihnalt zu sehen akzeptieren Sie bitte den Cookie für YouTube.'
            background: 'f74e15a7-7ec3-13eb-8a1d-ef99f142b2bc'          ##### UUID oder Pfad einer Bild-Datei
            tempalte: 'content_element/cokiban_replacement_youtube'                          ##### Optional - Angabe des zu verwendenden Templates, ohne Angabe "content_element/cokiban_replacement" verwendet

```

Link zum Cookiebanner / Inserttag
---------------------------------

[](#link-zum-cookiebanner--inserttag)

Um einen Link zu erzeugen der das Cookiebanner öffnet gibt es zwei Inserttags:

```
{{cokiban::button}} -> Zeige Cookiebanner!
{{cokiban}}         -> Zeige Cookiebanner!

```

und:

```
{{cokiban_open::cssClass}} ->
{{cokiban_open}}           ->
{{cokiban_close}}          ->

```

###  Health Score

51

—

FairBetter than 95% of packages

Maintenance95

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~24 days

Recently: every ~5 days

Total

65

Last Release

60d ago

Major Versions

2.0.3 → 3.0.02024-02-14

2.1.0 → 3.3.52025-03-26

2.1.1 → 3.3.62025-03-28

2.1.2 → 3.3.92025-07-02

2.1.3 → 3.6.12025-10-02

PHP version history (2 changes)1.0.0PHP &gt;=7.2

2.0.0PHP &gt;=8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/52fba781c251d0a4d80e95afe0d960315fd889c74a109f50d73bb914e4eb1d94?d=identicon)[tdoescher](/maintainers/tdoescher)

---

Top Contributors

[![tdoescher](https://avatars.githubusercontent.com/u/3490810?v=4)](https://github.com/tdoescher "tdoescher (172 commits)")

### Embed Badge

![Health badge](/badges/tdoescher-cokiban-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/tdoescher-cokiban-bundle/health.svg)](https://phpackages.com/packages/tdoescher-cokiban-bundle)
```

###  Alternatives

[inspiredminds/contao-wowjs

Integrates WOW.js for Contao content elements and form fields.

1813.0k](/packages/inspiredminds-contao-wowjs)[numero2/contao-storelocator

Contao Plugin for managing stores (or in common address data) and providing a frontend-search based on geo data

121.5k](/packages/numero2-contao-storelocator)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
