{"id":15481677,"url":"https://github.com/pringuin/dataprivacybundle","last_synced_at":"2026-01-26T21:19:55.760Z","repository":{"id":48707512,"uuid":"225346214","full_name":"pringuin/dataprivacybundle","owner":"pringuin","description":"Dataprivacy Bundle for Pimcore","archived":false,"fork":false,"pushed_at":"2025-11-14T16:53:25.000Z","size":532,"stargazers_count":12,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-21T18:49:59.725Z","etag":null,"topics":["composer","consent","cookie","dataprivacy-bundle","pimcore","tracker","twig"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pringuin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-12-02T10:21:33.000Z","updated_at":"2026-01-20T17:01:01.000Z","dependencies_parsed_at":"2023-12-20T14:29:17.983Z","dependency_job_id":"d386638d-8745-453e-b3fa-a841943a711c","html_url":"https://github.com/pringuin/dataprivacybundle","commit_stats":{"total_commits":27,"total_committers":5,"mean_commits":5.4,"dds":0.2222222222222222,"last_synced_commit":"304ff9f76bdfc3fc1de4df809dae3e659d414b55"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/pringuin/dataprivacybundle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pringuin%2Fdataprivacybundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pringuin%2Fdataprivacybundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pringuin%2Fdataprivacybundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pringuin%2Fdataprivacybundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pringuin","download_url":"https://codeload.github.com/pringuin/dataprivacybundle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pringuin%2Fdataprivacybundle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28788368,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:13:08.818Z","status":"ssl_error","status_checked_at":"2026-01-26T21:13:08.448Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer","consent","cookie","dataprivacy-bundle","pimcore","tracker","twig"],"created_at":"2024-10-02T05:05:28.534Z","updated_at":"2026-01-26T21:19:55.743Z","avatar_url":"https://github.com/pringuin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dataprivacy Bundle for Pimcore\nAdd dataprivacy features (GDPR / DSGVO) to Pimcore\n\nVersion 2.x can be used for Pimcore 11\nUse Version 1.x ([branch pimcore-x](https://github.com/pringuin/dataprivacybundle/tree/pimcore-x)) for Pimcore X\nUse Version 0.X ([branch pimcore-6](https://github.com/pringuin/dataprivacybundle/tree/pimcore-6)) for Pimcore 5/6\n\n## Features\n* Does support multiple domains (using Pimcore sites)\n* Easy installation in pimcore projects (drop-in-solution)\n* Admin interface to configure trackers and tools\n* Frontend with cookie and tracking consent features\n\n![Backend Interface](docs/img/localized_admin_interface.png)\n\n## Dependencies\nThis bundle does include the [tarteaucitron.js](https://github.com/AmauriC/tarteaucitron.js) script in the `pringuin/DataprivacyBundle/Resources/public/js/tarteaucitron` folder.\n\n## Installation\n\n### Composer Installation\n1. Add code below to your `composer.json` or install it via command line\n\n```json\n\"require\": {\n\"pringuin/dataprivacybundle\" : \"^2.0\"\n}\n```\n\n### Add the bundle\nAdd the bundle to your Kernel in src/Kernel.php like this:\n```php\npublic function registerBundlesToCollection(BundleCollection $collection): void\n{\n$collection-\u003eaddBundle(new pringuinDataprivacyBundle(), 70);\n}\n```\nYou might also need to add it to pimcores config/bundles.php:\n```php\n    \\pringuin\\DataprivacyBundle\\pringuinDataprivacyBundle::class =\u003e ['all' =\u003e true],\n```\n\n### Install the assets\nAfter you have installed the Dataprivacy Bundle via composer:\n- Execute: `$ bin/console assets:install`\n\n### Configure trackers, tools and services\nThe backend configuration should now be available. below the search in your pimcore admin backend.\nYou can set your tracking IDs (for example your UA-XXXXXXXX-X) there.\nThis will generate files in the folder `PIMCOREINSTALLATION/config/pringuin_dataprivacy`.\nThe file for the default site will be `siteconfig_default.yml`\nThe next sites will follow the pimcore IDs and look like `siteconfig_1.yml`, `siteconfig_2.yml`.\nYou can also change these files directly using your favorite IDE. They can be archived using git.\n\n### Installation into your template\nTo include the cookie consent into your frontend layout, you can use the following twig code. Simply insert it into your template (e.g. layout.html.twig) before the closing body Tag:\n```twig\n{{ render(controller('pringuin\\\\DataprivacyBundle\\\\Controller\\\\DefaultController::defaultAction', [])) }}\n```\nHint: You can always override this template by implementing your own template in the folder `PIMCOREINSTALLATION/app/Resources/pringuinDataprivacyBundle/views/default/default.html.twig`\n\n![Default Frontend Interface](docs/img/frontend_locale_cookie_consent.png)\n\n### Adaption of button colors\nYou can always use your own css to override the default css of tarteaucitron. If you'd like to keep the default css but have all buttons in the same color (as required by TTDSG for example), you can use the following CSS:\n```css\nhtml body #tarteaucitronRoot #tarteaucitron .tarteaucitronAllow, html body #tarteaucitronRoot #tarteaucitron .tarteaucitronDeny,\nhtml body #tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronAllow, html body #tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronDeny, html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,\n#tarteaucitronAlertBig #tarteaucitronCloseAlert, #tarteaucitronAlertBig #tarteaucitronPersonalize, .tarteaucitronCTAButton, #tarteaucitron #tarteaucitronPrivacyUrl, #tarteaucitron #tarteaucitronPrivacyUrlDialog, #tarteaucitronRoot .tarteaucitronDeny {\n    background: black !important;\n    color: white !important;\n}\n```\n\n## Supported Tackers and Tools\nThis package does currently ship with the following trackers/tools integrations:\n- Crazy Egg\n- eKomi\n- eTracker\n- Facebook Pixel\n- Google Analytics (supporting different implementations)\n- Google Adwords Remarketing\n- Google Fonts\n- Google Tag Manager\n- Hubspot\n- Matomo (formerly Piwik)\n- Mautic\n- Zopim\n- YouTube\n- Vimeo\n- Dailymotion\n\nNote that you'll take care of the implementation of your video brick to make YouTube, Vimeo and Daily Motion work.\n\nSample code by [breakone](https://github.com/breakone):\n```twig\n{% set autoplay = autoplay.isChecked() ? true : false %}\n{% set loop = loop.isChecked() ? true : false %}\n{% set mute = muted.isChecked ? true: false %}\n\n{% set video = pimcore_video('video') %}\n\n{% if video.getVideoType == 'youtube' %}\n  \u003cdiv class=\"pimcore_tag_video pimcore_editable_video \"\u003e\n    \u003cdiv class=\"youtube_player\" videoID=\"{{ video.id }}\" width=\"{{ width }}\" height=\"auto\" theme=\"dark\" rel=\"0\" controls=\"1\" showinfo=\"0\" autoplay=\"{{ autoplay }}\" mute=\"{{ mute }}\" srcdoc=\"srcdoc\" loop=\"{{ loop }}\" loading=\"0\"\u003e\u003c/div\u003e\n  \u003c/div\u003e\n{% elseif video.getVideoType == 'vimeo' %}\n  \u003cdiv class=\"pimcore_tag_video pimcore_editable_video \"\u003e\n    \u003cdiv class=\"vimeo_player\" videoID=\"{{ video.id }}\" width=\"{{ width }}\" height=\"auto\" autoplay=\"{{ autoplay }}\" mute=\"{{ mute }}\" loop=\"{{ loop }}\"\u003e\u003c/div\u003e\n  \u003c/div\u003e\n{% elseif video.getVideoType == 'dailymotion' %}\n  \u003cdiv class=\"pimcore_tag_video pimcore_editable_video \"\u003e\n    \u003cdiv class=\"dailymotion_player\" videoID=\"{{ video.id }}\" width=\"{{ width }}\" height=\"auto\" showinfo=\"0\" autoplay=\"{{ autoplay }}\" embedType=\"video\"\u003e\u003c/div\u003e\n  \u003c/div\u003e\n{% else %}\n  {{ video|raw }}\n{% endif %}\n```\n\n\n### Add your own tracker or tool consent\nIf a tracker or tool is missing, please check if the tool is integrated into [tarteaucitron.js](https://github.com/AmauriC/tarteaucitron.js) first.\nYou can do this using the source code or the official [tarteaucitron.js website](https://opt-out.ferank.eu/en/install/) using the installation guide.\n\nIf the tracker or tool **is not** included into the tarteaucitron.js package, please integrate it there first (they accept pull requests).\nAlternatively you can directly include your custom service using this example code from tarteaucitron.js:\n```js\ntarteaucitron.services.mycustomservice = {\n    \"key\": \"mycustomservice\",\n    \"type\": \"social|analytic|ads|video|support\",\n    \"name\": \"MyCustomService\",\n    \"needConsent\": true,\n    \"cookies\": ['cookie', 'cookie2'],\n    \"readmoreLink\": \"/custom_read_more\", // If you want to change readmore link\n    \"js\": function () {\n        \"use strict\";\n        // When user allow cookie\n    },\n    \"fallback\": function () {\n        \"use strict\";\n        // when use deny cookie\n    }\n};\n(tarteaucitron.job = tarteaucitron.job || []).push('mycustomservice');\n```\n\nTo get a tracker or tool which **is** included in the tarteaucitron.js package into this bundle, you'll have to do the following steps:\n#### Add it to the default configuration\nThe default configuration is the base for all site specific configurations. Changes to the default configuration will also change your configuration files for the sites.\nThe default configuration is located at Resources/var/defaultconfiguration.yml\n\n#### Add the view output\nThe necessary code for the templates can be found in the [tarteaucitron.js installation instructions](https://opt-out.ferank.eu/en/install/) easily.\nSimply select Free manual installation and scroll down to the next step. Search for your service to get the installation code, typically looking like this:\n```html\n\u003cscript type=\"text/javascript\"\u003e\n    tarteaucitron.user.etracker = 'data-secure-code';\n    (tarteaucitron.job = tarteaucitron.job || []).push('etracker');\n\u003c/script\u003e\n```\nAdd it to the other codes in the `Resources/views/default/default.html.twig` file and replace dynamic parameters like the data-secude-code above with twig values as shown in the currently implemented trackers and tools.\n\n\n#### Add a translation\nFinally add a backend translation entry in the file `Resources/translations/admin.en.yml` and/or `admin.de.yml`\nThe key will be the same you used in the `defaultconfiguration.yml`.\nYou can also append a `_helptext` to the key to insert a custom helptext for editors.\n\n#### Final step\nTest your implementation and please create a pull request in this repository so everybody can now use your newly implemented service, tracker or tool.\nThanks!\n\n## Updating\n\n### Updating from 1.0 to 2.0\n\n2.0 is the first release for Pimcore 11. Simply adapt your composer.json and run composer update as usually.\n\nExecute: `$ bin/console assets:install` if it's not run by composer\n\nYou might also need to save your configuration again.\n\n### Updating from 0.5 to 1.0\n\n1.0 is the first release for Pimcore X. Simply adapt your composer.json and run composer update as usually. \n\nSince pimcore removed the pimcore_action from the twig template, you'll have to adjust your template installation.\n\nBefore:\n\n```twig\n{{ pimcore_action('default', 'default', 'pringuinDataprivacyBundle', {}) }}\n```\n\nNow:\n\n```twig\n{{ render(controller('pringuin\\\\DataprivacyBundle\\\\Controller\\\\DefaultController::defaultAction', [])) }}\n```\n\nYou might also need to save your configuration again.\n\n### Updating from 0.4 to 0.5\n\nTo update to 0.5 simply adapt your composer.json and run composer update as usually.\nDepending on your installation you might need to run the command\n`php bin/console assets:install web`\nto install the new tarteaucitron.js version (1.9.5 is now included) if you installed as hard copy.\nThis release does also add a new defaultconfiguration setting. You might need to save your configuration again.\n\n### Updating from initial version, 0.1, 0.2 or 0.3 to 0.4\n\nTo update from the first release or version 0.1/0.2 to 0.3 simply adapt your composer.json and run composer update as usually.\nDepending on your installation you might need to run the command\n`php bin/console assets:install web`\nto install the new tarteaucitron.js version (1.8.4 is now included) if you installed as hard copy.\n\n## Contributing\nWhile we consider this bundle stable and ready for productive use, we'd be very happy if you'd support us and the whole pimcore community by improving this bundle with pull requests. This is our first public pimcore bundle so constructive feedback would be very welcome as well!\n\n## Copyright and license\nCopyright: [PRinguin GbR](https://pringuin.de)  \nFor licensing details please visit [LICENSE.md](LICENSE.md)  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpringuin%2Fdataprivacybundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpringuin%2Fdataprivacybundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpringuin%2Fdataprivacybundle/lists"}