Detailed description for adding cookies
(everything mentioned here is based on the project Dřevojas.cz and cykloanimal.cz)
- Detection - Detect modal type (remodal/bootstrap modal) if set, it must be set here. Find out what all the translations and settings will need to be handled somehow (go through the messages and find the ones where the scripts are located) accordingly decide where to get the data from (for remodal from drevojas and for bootstrap modal from cycloanimal)
- Cloning - Clone files (relative path from root folder):
resources/js/cookieSettings.js; app/utils/CookieSettings.phpapp/model/CookieStatistics.phpresources/(less or scss)/front/components/cookies.lessapp/presenters/Front/templates/Homepage/partials/cookies.latte
- Adding texts - add a line to app/router/RouterFactory.php that contains "Homepage:cookieStatisticCreate".
Add@import "./components/cookies";toresources/less/front/app.less
Add the entireactionCookieStatisticCreatefunction toapp/presenters/Front/HomepagePresenter.php.
Add thehandleUpdateCookiesfunction toapp/presenters/Front/BasePresenter.phpand add the linescookieVariant,cookieSettingsandtemplate->loadedCookiesto thebeforeRenderfunction.
V basePresenteru ještě přidámeinject $cookieStatisticsainject $iRequest.
Inconfig.neonadd service: -App\Model\CookieStatistics.
Inapp/model/Setting.phpwe can override (after comparing if possible) theconfigandtranslationfunctions.
Inwebpack.mix.jsweb add
and compile.combine('resources/js/cookieSettings.js', 'www/assets/front/top.js')
and ingulpfile.jswe add
and compile.scripts([ 'cookieSettings.js', ], 'www/assets/js/top.js')
To@layout.lattefor front we add{default $cookieVariant = 'modal'} <script> var cookieVariant = '{$cookieVariant|noescape}' var user_id = {$user->getId()} var lang = {$lang_id} var updateCookiesLink = {link updateCookies!} </script> <script src="{$template->elixir('assets/js/top.js')}"></script> - Edit - in
cookieSettings.jsset constMODAL_TYPEto one of the modals we found in the first step (Always specify a variable instead of text for universality
inbeforeRenderwe set incookieVariantwhether it is A/B testing (we addcookieRandomizerfunction) or whether we add a bar or modal (we add using the appropriate variables fromCookiesSettings.php)
in the Admin folder intemplates/partials(it may be latte) find thetinymce.jsfile and add the text,a[onclick|href|title|class|target|rel]to all propertiesextended_valid_elements - Database - copy the translations with section "cookies" and add table "cookie_statistics"
Translations:
With section
INSERT INTO `settings_translation` (`id`, `lang`, `name`, `section`, `value`, `type`) VALUES ('COOKIE_BOX_ANALYTICS_FUNCTIONS', 1, 'Cookie - box - analytické funkce', 'Cookie', 'Analytické cookies', 'input'), ('COOKIE_BOX_ANALYTICS_FUNCTIONS_LEAD', 1, 'Cookie - box - analytické funkce - text', 'Cookie', 'Pomáhají sledovat počet návštěvníků a také z jakého zdroje provoz pochází, což nám umožňuje zlepšovat výkon stránky. Můžeme s nimi určovat, které stránky jsou nejoblíbenější a které nejsou oblíbené, a také sledovat, jakým způsobem se návštěvníci na webu pohybují. Používáme pouze agregované údaje, ze kterých nepoznáme vaši identitu. Pokud používáme cookies třetích stran, může náš partner tyto informace propojit s jinými údaji, které o vás má třeba proto, že využíváte jejich služby. Pokud soubory cookie nepovolíte, nebudeme vědět, kdy jste navštívili naši stránku.', 'textarea'), ('COOKIE_BOX_BTN_NECESSARY_COOKIES', 1, 'Cookie - box - tlačítko - nezbytné cookies', 'Cookie', 'Pouze nezbytné cookies', 'input'), ('COOKIE_BOX_COMPANY_TEXT', 1, 'Cookie - box - společnost text', 'Cookie', ' ', 'textarea'), ('COOKIE_BOX_CONTROL_HEADING', 1, 'Cookie - box - řízení - nadpis', 'Cookie', 'Řízení předvoleb poskytování souhlasu', 'input'), ('COOKIE_BOX_FUNCS_AND_PREFS', 1, 'Cookie - box - funkce', 'Cookie', 'Funkční cookies', 'input'), ('COOKIE_BOX_FUNCS_AND_PREFS_LEAD', 1, 'Cookie - box - funkce - text', 'Cookie', 'Funkční cookies pomáhají naší stránce poskytnout vám pohodlnější zážitek z návštěvy. Můžeme je nastavovat my nebo poskytovatelé třetí strany, jejichž služby na stránkách používáme. Pokud soubory cookie nepovolíte, je možné, že některé nebo všechny tyto služby nebudou fungovat správně.', 'textarea'), ('COOKIE_BOX_MANAGE', 1, 'Cookie - box - spravovat', 'Cookie', 'Spravovat cookies', 'input'), ('COOKIE_BOX_NECESSARY_COOKIES', 1, 'Cookie - box - nezbytné cookies', 'Cookie', 'Nezbytné cookies', 'input'), ('COOKIE_BOX_NECESSARY_COOKIES_LEAD', 1, 'Cookie - box - nezbytné cookies - text', 'Cookie', 'Tyto cookies musíme uložit do vašeho prohlížeče, aby se vám naše stránka zobrazila správně a správně fungovala. Nezbytná cookies jsou vždy povolena.', 'textarea'), ('COOKIE_BOX_PERSONALIZED', 1, 'Cookie - box - personalizované nabídky', 'Cookie', 'Reklamní cookies', 'input'), ('COOKIE_BOX_PERSONALIZED_LEAD', 1, 'Cookie - box - personalizované nabídky - text', 'Cookie', 'Tyto soubory cookies mohou na naší stránce nastavovat partneři z reklamy. Mohou je používat na vytváření profilů o vašich zájmech a podle nich vám zobrazovat reklamy i na jiných stránkách. Neukládají ale vaše osobní informace přímo, nýbrž přes jedinečné identifikátory prohlížeče a internetového zařízení. Pokud je nepovolíte, bude se vám zobrazovat na stránkách méně cílená propagace.', 'textarea'), ('COOKIE_BOX_PRIVACY_CENTRE', 1, 'Cookie - box - centrum soukromí', 'Cookie', 'Nástroj pro výběr cookies', 'input'), ('COOKIE_BOX_PRIVACY_CENTRE_ALLOW_ALL', 1, 'Cookie - box - povolit vše', 'Cookie', 'Povolit vše', 'input'), ('COOKIE_BOX_PRIVACY_CENTRE_TEXT', 1, 'Cookie - box - centrum soukromí - text', 'Cookie', 'Při návštěvě naší webové stránky ukládáme do vašeho prohlížeče informace související s vaší návštěvou, většinou ve formě souborů cookie. Jde zejména o informace o vašich preferencích, zařízení, nebo o tom, co jste si prohlíželi. Zpravidla nesbíráme informace o vaší identitě. Informace z cookies používáme k tomu, abychom náš web vyladili k vaší spokojenosti, k vytváření relevantních marketingových kampaní a sdílení obsahu na sociálních sítích. Zde si můžete zvolit, jaké soubory cookies můžeme do vašeho prohlížeče uložit. <a href=\"/cs/m-673-zasady-zpracovani-souboru-cookies\">Podrobné informace</a>', 'textarea'), ('COOKIE_BOX_VALUE_PRIVACY_HEADING', 1, 'Cookie - box - nadpis - soukromí', 'Cookie', 'Vážíme si vašeho soukromí', 'input'), ('COOKIE_BOX_VALUE_PRIVACY_TEXT', 1, 'Cookie - box - text - soukromí', 'Cookie', 'K analýze návštěvnosti a funkcí webu, ukládání vašeho nastavení a personalizaci obsahu a reklam využíváme cookies. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy, kteří mohou být ze zemí mimo EU. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby. <a href=\"/cs/m-673-zasady-zpracovani-souboru-cookies\">Podrobné informace</a>', 'textarea'), ('COOKIE_TEXT', 1, 'Cookie - text', 'Cookie', 'Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. <button class=\"btn btn-xs\">V pořádku</button> <a href=\"//www.google.com/intl/cs/policies/technologies/cookies/\">Další informace</a>', 'textarea'), ('JS_COOKIE_BOX_ACCEPT', 1, 'Cookie - box - přijmout vše', 'Cookie', 'Přijmout', 'input'), ('JS_COOKIE_BOX_ACCEPT_ALL', 1, 'Cookie - box - přijmout vše', 'Cookie', 'Přijmout vše', 'input');
Without section
INSERT INTO `settings_translation` (`id`, `lang`, `name`, `value`, `type`) VALUES ('COOKIE_BOX_ANALYTICS_FUNCTIONS', 1, 'Cookie - box - analytické funkce', 'Analytické cookies', 'input'), ('COOKIE_BOX_ANALYTICS_FUNCTIONS_LEAD', 1, 'Cookie - box - analytické funkce - text', 'Pomáhají sledovat počet návštěvníků a také z jakého zdroje provoz pochází, což nám umožňuje zlepšovat výkon stránky. Můžeme s nimi určovat, které stránky jsou nejoblíbenější a které nejsou oblíbené, a také sledovat, jakým způsobem se návštěvníci na webu pohybují. Používáme pouze agregované údaje, ze kterých nepoznáme vaši identitu. Pokud používáme cookies třetích stran, může náš partner tyto informace propojit s jinými údaji, které o vás má třeba proto, že využíváte jejich služby. Pokud soubory cookie nepovolíte, nebudeme vědět, kdy jste navštívili naši stránku.', 'textarea'), ('COOKIE_BOX_BTN_NECESSARY_COOKIES', 1, 'Cookie - box - tlačítko - nezbytné cookies', 'Pouze nezbytné cookies', 'input'), ('COOKIE_BOX_COMPANY_TEXT', 1, 'Cookie - box - společnost text', ' ', 'textarea'), ('COOKIE_BOX_CONTROL_HEADING', 1, 'Cookie - box - řízení - nadpis', 'Řízení předvoleb poskytování souhlasu', 'input'), ('COOKIE_BOX_FUNCS_AND_PREFS', 1, 'Cookie - box - funkce', 'Funkční cookies', 'input'), ('COOKIE_BOX_FUNCS_AND_PREFS_LEAD', 1, 'Cookie - box - funkce - text', 'Funkční cookies pomáhají naší stránce poskytnout vám pohodlnější zážitek z návštěvy. Můžeme je nastavovat my nebo poskytovatelé třetí strany, jejichž služby na stránkách používáme. Pokud soubory cookie nepovolíte, je možné, že některé nebo všechny tyto služby nebudou fungovat správně.', 'textarea'), ('COOKIE_BOX_MANAGE', 1, 'Cookie - box - spravovat', 'Spravovat cookies', 'input'), ('COOKIE_BOX_NECESSARY_COOKIES', 1, 'Cookie - box - nezbytné cookies', 'Nezbytné cookies', 'input'), ('COOKIE_BOX_NECESSARY_COOKIES_LEAD', 1, 'Cookie - box - nezbytné cookies - text', 'Tyto cookies musíme uložit do vašeho prohlížeče, aby se vám naše stránka zobrazila správně a správně fungovala. Nezbytná cookies jsou vždy povolena.', 'textarea'), ('COOKIE_BOX_PERSONALIZED', 1, 'Cookie - box - personalizované nabídky', 'Reklamní cookies', 'input'), ('COOKIE_BOX_PERSONALIZED_LEAD', 1, 'Cookie - box - personalizované nabídky - text', 'Tyto soubory cookies mohou na naší stránce nastavovat partneři z reklamy. Mohou je používat na vytváření profilů o vašich zájmech a podle nich vám zobrazovat reklamy i na jiných stránkách. Neukládají ale vaše osobní informace přímo, nýbrž přes jedinečné identifikátory prohlížeče a internetového zařízení. Pokud je nepovolíte, bude se vám zobrazovat na stránkách méně cílená propagace.', 'textarea'), ('COOKIE_BOX_PRIVACY_CENTRE', 1, 'Cookie - box - centrum soukromí', 'Nástroj pro výběr cookies', 'input'), ('COOKIE_BOX_PRIVACY_CENTRE_ALLOW_ALL', 1, 'Cookie - box - povolit vše', 'Povolit vše', 'input'), ('COOKIE_BOX_PRIVACY_CENTRE_TEXT', 1, 'Cookie - box - centrum soukromí - text', 'Při návštěvě naší webové stránky ukládáme do vašeho prohlížeče informace související s vaší návštěvou, většinou ve formě souborů cookie. Jde zejména o informace o vašich preferencích, zařízení, nebo o tom, co jste si prohlíželi. Zpravidla nesbíráme informace o vaší identitě. Informace z cookies používáme k tomu, abychom náš web vyladili k vaší spokojenosti, k vytváření relevantních marketingových kampaní a sdílení obsahu na sociálních sítích. Zde si můžete zvolit, jaké soubory cookies můžeme do vašeho prohlížeče uložit. <a href=\"/cs/m-673-zasady-zpracovani-souboru-cookies\">Podrobné informace</a>', 'textarea'), ('COOKIE_BOX_VALUE_PRIVACY_HEADING', 1, 'Cookie - box - nadpis - soukromí', 'Vážíme si vašeho soukromí', 'input'), ('COOKIE_BOX_VALUE_PRIVACY_TEXT', 1, 'Cookie - box - text - soukromí', 'K analýze návštěvnosti a funkcí webu, ukládání vašeho nastavení a personalizaci obsahu a reklam využíváme cookies. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy, kteří mohou být ze zemí mimo EU. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby. <a href=\"/cs/m-673-zasady-zpracovani-souboru-cookies\">Podrobné informace</a>', 'textarea'), ('COOKIE_TEXT', 1, 'Cookie - text', 'Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. <button class=\"btn btn-xs\">V pořádku</button> <a href=\"//www.google.com/intl/cs/policies/technologies/cookies/\">Další informace</a>', 'textarea'), ('JS_COOKIE_BOX_ACCEPT', 1, 'Cookie - box - přijmout vše', 'Přijmout', 'input'), ('JS_COOKIE_BOX_ACCEPT_ALL', 1, 'Cookie - box - přijmout vše', 'Přijmout vše', 'input');Database creation
SET NAMES utf8; SET time_zone = '+00:00'; SET foreign_key_checks = 0; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; DROP TABLE IF EXISTS `cookie_statistics`; CREATE TABLE `cookie_statistics` ( `user_id` int(11) DEFAULT NULL, `lang` int(11) NOT NULL DEFAULT 1, `variant` varchar(255) COLLATE utf8_czech_ci NOT NULL, `datetime` datetime NOT NULL DEFAULT current_timestamp(), `change` int(1) NOT NULL DEFAULT 0, `set_values` varchar(255) COLLATE utf8_czech_ci DEFAULT '', `all_set` int(11) NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;