Joomla rozsireni (package = plugin + komponenta) pro GDPR cookie consent banner s admin dashboardem a podporou Google Consent Mode v2.
| Joomla | PHP | Aktualni verze |
|---|---|---|
| 4.x, 5.x, 6.x | 8.1+ | 1.0.4 |
1. Pozadavky
- Joomla 4.x, 5.x nebo 6.x
- PHP 8.1 nebo novejsi
- MySQL 5.7+ / MariaDB 10.3+
2. Instalace
Ziskani instalacniho balicku
Stahnete ZIP soubor pkg_semacookieconsent-X.Y.Z.zip ze SemaHub (semakin.cz).
Postup instalace
- Prihlaste se do administrace Joomla.
- Prejdete do System > Install > Extensions.
- Nahrajte ZIP soubor
pkg_semacookieconsent-X.Y.Z.zip. - Joomla nainstaluje oba dily najednou:
- Plugin:
plg_system_semacookieconsent(System – Sema Cookie Consent) - Komponenta:
com_semacookieconsent(Sema Cookie Consent – admin dashboard a log)
- Plugin:
- Plugin se automaticky povoli po instalaci (diky
pkg_script.php).
Upgrade: Stejny postup jako instalace. Joomla pouzije
method="upgrade"a zachova data v tabulce#__semacookieconsent_consents.
Migrace: Pokud na webu existuje stara tabulka
#__cookie_consents(z predchozi implementace), instalacni skript automaticky prenese data do nove tabulky.
3. Aktivace pluginu
Plugin se automaticky povoli pri instalaci. Pokud je z nejakeho duvodu vypnuty:
- System > Manage > Plugins
- Vyhledejte
semacookieconsentneboCookie Consent. - Kliknete na nazev pluginu a nastavte Status = Enabled.
Po povoleni se na frontendu webu ihned objevi cookie consent banner (pokud navstevnik jeste neudelil souhlas).
4. Zakladni nastaveni
Otevrete nastaveni pluginu: System > Plugins > klik na nazev pluginu.
Nastaveni je rozdeleno do 6 karet (tabu):
| Karta | Obsah |
|---|---|
| Obecne | Pozice banneru, URL zasad cookies, expirace souhlasu, lista pro znovuotevreni |
| Texty | Vsechny texty v banneru (nadpis, popis, tlacitka, nazvy kategorii) |
| Barvy | Barva pozadi, textu, nadpisu, akcentu (tlacitka) a aktivniho prepinace |
| Kategorie | Povoleni/zakazani analytickych a marketingovych kategorii, cookies k mazani |
| Google Consent Mode | Povoleni GCM v2, cekani na aktualizaci, region |
| Pokrocile | Logovani souhlasu, rate limit, anonymizace IP, vyloucene stranky |
Karta Obecne
| Parametr | Vychozi | Popis |
|---|---|---|
| Pozice banneru | Dole | Banner se zobrazi dole (bottom) nebo nahore (top) na strance. |
| URL zasad cookies | /pouziti-cookies | Relativni nebo absolutni URL stranky se zasadami pouzivani cookies. |
| Expirace souhlasu (dny) | 365 | Po kolika dnech souhlas expiruje a banner se znovu zobrazi. Rozsah: 1–730. |
| Zobrazit listu pro znovuotevreni | Ano | Po udeleni/odmitneni souhlasu se zobrazi mala lista (s ikonou cookie), ktera umozni souhlas znovu upravit. |
5. Texty banneru
Karta Texty umoznuje upravit vsechny texty zobrazene v banneru. Kazde pole ma vychozi hodnotu z jazykoveho souboru (CZ nebo EN podle jazyka webu).
| Parametr | Vychozi (CZ) | Popis |
|---|---|---|
| Nadpis | Nastaveni cookies | Nadpis v banneru. |
| Popis | (dynamicky dle kategorii) | Hlavni text banneru. Pokud nevyplnite, text se automaticky prizpusobi povolenym kategoriam (viz nize). |
| Tlacitko Prijmout vse | Prijmout vse | Text na tlacitku pro prijeti vsech cookies. |
| Tlacitko Odmitnout vse | Odmitnout vse | Text na tlacitku pro odmitnuti vsech volitelnych cookies. |
| Tlacitko Nastaveni | Nastaveni | Text na tlacitku pro otevreni detailu s kategoriemi. |
| Tlacitko Ulozit | Ulozit nastaveni | Text na tlacitku pro ulozeni vlastniho vyberu kategorii. |
| Nazev nezbytnych | Nezbytne cookies | Nazev kategorie nezbytnych cookies. |
| Popis nezbytnych | Nutne pro spravne fungovani webu. Nelze vypnout. | Popis kategorie nezbytnych cookies. |
| Nazev statistickych | Statisticke cookies | Nazev kategorie statistickych cookies. |
| Popis statistickych | Pomahaji nam pochopit, jak navstevnici pouzivaji web (Google Analytics). | Popis kategorie statistickych cookies. |
| Nazev marketingovych | Marketingove cookies | Nazev kategorie marketingovych cookies. |
| Popis marketingovych | Pouzivaji se pro cilenou reklamu a retargeting (Google Ads). | Popis kategorie marketingovych cookies. |
| Text odkazu na zasady | Zasady pouzivani cookies | Text odkazu na stranku se zasadami cookies. |
| Text listy pro znovuotevreni | Nastaveni cookies | Text na liste pro znovuotevreni banneru. |
Dynamicky popis banneru
Pokud pole Popis nechate prazdne (nebo ponechate vychozi hodnotu), plugin automaticky zvoli text podle povolenych kategorii:
| Povolene kategorie | Text |
|---|---|
| Statisticke + Marketingove | „...Statisticke a marketingove cookies pouzivame pouze s vasim souhlasem...“ |
| Pouze Statisticke | „...Statisticke cookies pouzivame pouze s vasim souhlasem...“ |
| Pouze Marketingove | „...Marketingove cookies pouzivame pouze s vasim souhlasem...“ |
| Zadne (jen nezbytne) | „Tento web pouziva pouze nezbytne cookies nutne pro fungovani webu.“ |
Pokud vyplnite vlastni text, ma vzdy prednost pred dynamickou logikou.
6. Barvy
Karta Barvy umoznuje prizpusobit vzhled banneru barvam webu. Barvy se aplikuji pres CSS custom properties.
| Parametr | Vychozi | CSS property | Popis |
|---|---|---|---|
| Barva pozadi | #1e2533 | --scc-bg | Pozadi banneru. |
| Barva textu | #ccd0d8 | --scc-text | Barva hlavniho textu. |
| Barva nadpisu | #ffffff | --scc-heading | Barva nadpisu. |
| Barva akcentu (tlacitka) | #e67e22 | --scc-accent | Barva tlacitek a zvyraznenych prvku. Hover stav se automaticky ztmavi. |
| Barva aktivniho prepinace | #27ae60 | --scc-toggle | Barva prepinace pri zapnute kategorii. |
Pokud pouzivate vlastni CSS sablonu, muzete barvy prepsat primo v CSS pomoci promennych
--scc-bg,--scc-textatd.
7. Kategorie cookies
Karta Kategorie urcuje, ktere volitelne kategorie se v banneru zobrazuji.
| Parametr | Vychozi | Popis |
|---|---|---|
| Povolit kategorii Statisticke | Ano | Zobrazi kategorii „Statisticke cookies“ v banneru. |
| Povolit kategorii Marketingove | Ano | Zobrazi kategorii „Marketingove cookies“ v banneru. |
| Statisticke cookies k mazani | _ga,_gid,_gat | Carkou oddelene nazvy cookies, ktere se smazou pri odmitnuti statistickych. |
| Marketingove cookies k mazani | _gcl_au,_fbp,_fbc | Carkou oddelene nazvy cookies, ktere se smazou pri odmitnuti marketingovych. |
Jak mazani cookies funguje
Kdyz navstevnik odmitne kategorii (nebo ji vypne v nastaveni), JavaScript automaticky smaze vsechny cookies uvedene v prislusnem seznamu. Mazani probiha pro aktualni domenu i s teckou na zacatku (.example.cz).
Kategorie Nezbytne
Kategorie „Nezbytne cookies“ je vzdy zapnuta a nelze ji vypnout (prepinac je disabled). To odpovida GDPR – nezbytne cookies nevyzaduji souhlas.
Tip: Pokud web nepouziva zadne tracking sluzby, muzete obe volitelne kategorie vypnout. Banner pak zobrazi pouze informaci o nezbytnych cookies.
8. Google Consent Mode v2
Karta Google Consent Mode umoznuje integraci s Google Consent Mode v2 (GCM).
| Parametr | Vychozi | Popis |
|---|---|---|
| Povolit Google Consent Mode v2 | Ne | Zapne vkladani skriptu consent-mode.js do <head>. |
| Cekani na aktualizaci (ms) | 500 | Hodnota wait_for_update pro GCM – jak dlouho Google ceka na aktualizaci souhlasu. Rozsah: 0–10000. |
| Region (volitelne) | (prazdne) | Carkou oddelene ISO 3166 kody regionu (napr. CZ,SK,DE). Prazdne = vsechny regiony. |
Jak GCM funguje
- Skript
consent-mode.jsse vlozi synchronne do<head>(bezdefer/async). - Musi se nacist PRED jakymkoli
gtag.jsnebo Google Tag Managerem. - Pri nacitani stranky precte existujici souhlas z
localStoragea nastavigtag('consent', 'default', ...). - Kdyz navstevnik zmeni souhlas v banneru, JavaScript zavola
gtag('consent', 'update', ...).
GCM consent typy
| GCM typ | Kategorie v banneru | Ucel |
|---|---|---|
analytics_storage | Statisticke | Povoleni analytickych cookies (GA4). |
ad_storage | Marketingove | Povoleni reklabnich cookies (Google Ads). |
ad_user_data | Marketingove | Povoleni odesilani uzivatelskych dat pro reklamu. |
ad_personalization | Marketingove | Povoleni personalizovane reklamy. |
functionality_storage | – | Vzdy granted (funkcionalni cookies). |
security_storage | – | Vzdy granted (bezpecnostni cookies). |
personalization_storage | – | Vzdy denied (personalizace neni pouzita). |
Dulezite: Pokud na webu nepouzivate Google Analytics, Google Ads ani Google Tag Manager, nemusite GCM zapinat. GCM je relevantni pouze pro weby s Google tracking sluzbackami.
9. Pokrocile nastaveni
Karta Pokrocile obsahuje nastaveni pro logovani souhlasu a dalsi technicke parametry.
| Parametr | Vychozi | Popis |
|---|---|---|
| Povolit logovani souhlasu | Ano | Zaznamenava kazdy souhlas/odmitnuti do databaze (GDPR audit log). |
| Rate limit (sekundy) | 5 | Minimalni interval mezi dvema logy souhlasu ze stejne session. Ochrana proti zneuziti. Rozsah: 0–60. |
| Anonymizovat IP adresu | Ne | IPv4: nuluje posledni oktet (napr. 192.168.1.0). IPv6: nuluje poslednich 80 bitu. |
| Vyloucene menu polozky | (prazdne) | Carkou oddelena ID menu polozek Joomla, kde se banner nezobrazi. |
Logovani souhlasu
Kdyz je logovani zapnute, kazda akce navstevnika („Prijmout vse“ / „Odmitnout vse“ / „Ulozit nastaveni“) odesle AJAX pozadavek na server, ktery zaznamena:
- UUID souhlasu (generovany na klientu, ulozeny v
localStorage) - IP adresu (volitelne anonymizovanou)
- User-Agent
- Joomla user ID (pokud je prihlaseny)
- Stav kazde kategorie (nezbytne/statisticke/marketingove)
- Typ akce (
accept_all,reject_all,custom) - Datum a cas
Zaznamy se ukladaji do tabulky #__semacookieconsent_consents.
GDPR pozadavek: Clanky 7 a 13 GDPR vyzaduji prokazatelnost souhlasu. Log souhlasu je zakonnym dukazem, ze navstevnik souhlas udelil ci odmitnul. Doporucujeme ponechat logovani zapnute.
10. Administrace – Dashboard
Po instalaci se v administraci objevi nova polozka v bocnim menu: Components > Sema Cookie Consent.
Dashboard
Zobrazeni Dashboard ukazuje prehled souhlasu za poslednich 30 dni:
| Karta | Popis |
|---|---|
| Celkem (30 dni) | Celkovy pocet interakci s bannerem za poslednich 30 dni. |
| Prijato | Pocet „Prijmout vse“ (zelene). Vcetne procentualniho podilu. |
| Odmitnuto | Pocet „Odmitnout vse“ (cervene). Vcetne procentualniho podilu. |
| Vlastni | Pocet „Ulozit nastaveni“ s vlastnim vyberem (modre). Vcetne procentualniho podilu. |
| Mira souhlasu | Procento navstevniku, kteri souhlasili se statistickymi cookies (accept_all + custom s analytics). Zelena ≥ 50%, cervena < 50%. |
| Celkem za celou dobu | Celkovy pocet interakci od instalace pluginu. |
| Denni trend | Tabulka s dennim poctem interakci za poslednich 30 dni. Vizualni sloupcovy graf. |
11. Administrace – Log souhlasu
Zobrazeni Log souhlasu ukazuje podrobny seznam vsech zaznamenanych souhlasu.
Sloupce tabulky
| Sloupec | Popis |
|---|---|
| ID | Poradove cislo zaznamu. |
| ID souhlasu | UUID v4 generovany na klientu (unikatni identifikator souhlasu). |
| IP adresa | IP adresa navstevnika (pripadne anonymizovana). |
| Nezbytne | Zelena fajfka / sede X. Nezbytne jsou vzdy zapnute. |
| Statisticke | Zelena fajfka (souhlas) / sede X (odmitnuty). |
| Marketingove | Zelena fajfka (souhlas) / sede X (odmitnuty). |
| Akce | Typ akce: accept_all (zeleny stitek), reject_all (cerveny), custom (modry). |
| Datum | Datum a cas zaznamenani souhlasu. |
Filtrovani
| Filtr | Popis |
|---|---|
| Filtr dle akce | Zobrazit pouze Accept All / Reject All / Custom. |
| Datum od | Filtrovani od zadaneho data. |
| Datum do | Filtrovani do zadaneho data. |
| Hledat | Fulltextove hledani v consent ID nebo IP adrese. |
Razeni
Kliknutim na zahlavi sloupcu ID nebo Datum zmenite smer razeni.
12. CSV export
- V zobrazeni Log souhlasu kliknete na tlacitko „Export CSV“ v panelu nastroju.
- Stahne se CSV soubor se vsemi zaznamy (respektuje aktualni filtry akce a data).
- Kodovani: UTF-8 s BOM (pro spravne zobrazeni v Excelu).
- Oddelovac: strednik (
;). - Nazev souboru:
cookie-consents-RRRR-MM-DD.csv.
CSV obsahuje sloupce: ID, Consent ID, IP Address, User Agent, User ID, Necessary, Analytics, Marketing, Action, Created At.
13. Integrace se Semakin SST pluginem
Pokud na webu pouzivate Semakin Server-side Tracking plugin, Sema Cookie Consent s nim automaticky spolupracuje:
Consent bridge
- JavaScript banneru ulozi souhlas do
localStorage(klicscc_cookie_consent). - SST plugin cte tento klic a mapuje na tri urovne:
- L0 (anonymous) – zadny souhlas, pouze nezbytne
- L1 (analytics) – souhlas se statistickymi cookies
- L2 (marketing) – souhlas s marketingovymi cookies
- SST plugin nastavi cookie
semakin_sst_cl(hodnoty 0/1/2) pro consent bridge mezi JS a PHP. - PHP cte cookie a podle urovne souhlasu povoluje/zakazuje server-side tracking.
Cookies generovane pluginy Semakin
Nezbytne (vzdy):
| Cookie | Expirace | Popis |
|---|---|---|
cookieconsent_status | 365 dni | Stav souhlasu (allow/deny) pro server-side kontrolu. |
semakin_sst_cl | 24 h | Consent bridge (localStorage → PHP). Pouze pokud je SST plugin. |
Statisticke (po souhlasu L1):
| Cookie | Expirace | Popis |
|---|---|---|
semakin_sst_cid | 2 roky | GA4 client_id fallback (server-side). Pouze pokud je SST plugin. |
Marketingove (po souhlasu L2):
| Cookie | Expirace | Popis |
|---|---|---|
semakin_sst_gclid | 90 dni | Google Ads click ID. Pouze pokud je SST plugin + Google Ads. |
semakin_sst_heureka_optout | 2 h | Heureka opt-out. Pouze pokud je SST plugin + Heureka. |
hg_ocm_id | 30 dni | Heureka OCM atribuce (nastavuje Heureka SDK). |
14. Odinstalace
Postup
- System > Manage > Extensions
- Vyhledejte
Sema Cookie Consent. - Odinstalujte package
pkg_semacookieconsent.
Co se smaze
- Plugin
plg_system_semacookieconsent(PHP, JS, CSS, jazykove soubory) - Komponenta
com_semacookieconsent(admin soubory, sablony) - Media soubory (
media/plg_system_semacookieconsent/,media/com_semacookieconsent/)
Co se smaze z databaze
- Tabulka
#__semacookieconsent_consents(vsechny zaznamy o souhlasech)
Upozorneni: Na rozdil od nekterych jinych Sema rozsireni tato tabulka se pri odinstalaci SMAZE (definovano v
uninstall.mysql.sql). Pokud potrebujete zaznamy o souhlasech zachovat, provedte pred odinstalaci CSV export.
15. Reseni problemu
Banner se nezobrazuje
- Overite, ze plugin je povoleny (Status = Enabled).
- Zkontrolujte, zda aktualni stranka neni v seznamu Vyloucenych menu polozek.
- Overite, ze navstevnik jeste neudelil souhlas (smazte
scc_cookie_consentv localStorage prohlizece acookieconsent_statusv cookies). - Zkontrolujte konzoli prohlizece (F12) na JavaScript chyby.
- Overite, ze na strance neni jiny plugin, ktery blokuje
onAfterRender.
Banner se zobrazuje, ale chybi CSS (nevypada spravne)
- Overite, ze soubor existuje:
{root}/media/plg_system_semacookieconsent/css/semacookieconsent.css. - Pokud soubor chybi, plugin neni spravne nainstalovan – preinstalovejte.
- Zkontrolujte, zda jiny plugin neodstranuje CSS z
<head>.
Google Consent Mode nefunguje
- Overite, ze Povolit Google Consent Mode v2 je zapnuto v nastaveni pluginu.
- Zkontrolujte zdrojovy kod stranky (Ctrl+U) –
consent-mode.jsmusi byt v<head>PRED jakymkoligtag.jsnebo GTM skriptem. - Zkontrolujte konzoli prohlizece –
dataLayermusi obsahovatconsentudalost sdefaulthodnotami.
Log souhlasu je prazdny
- Overite, ze Povolit logovani souhlasu je zapnuto.
- Zkontrolujte, zda navstevnik skutecne klikl na tlacitko v banneru (obnoveni stranky bez interakce nezaloguje nic).
- Zkontrolujte konzoli prohlizece na chyby AJAX pozadavku na
com_ajax. - Overite, ze tabulka
#__semacookieconsent_consentsexistuje v databazi.
Po upgradu se banner chova divne
- Navstevnik musi provest hard refresh (Ctrl+Shift+R) pro nacteni novych JS/CSS souboru.
- Starsi souhlas v localStorage muze mit jinou strukturu – smazani
scc_cookie_consentv localStorage a obnoveni stranky problem vyresi.
Dashboard ukazuje nulove hodnoty
- Dashboard zobrazuje data za poslednich 30 dni. Pokud v tomto obdobi nebyly zadne interakce, je to ocekavane.
- Overite, ze logovani souhlasu je zapnute.
Banner se zobrazuje na strance, kde nemel
- Pridejte Joomla menu item ID do pole Vyloucene menu polozky v nastaveni pluginu.
- ID menu polozky naleznete v Menus > [nazev menu] – sloupec ID.
Jak banner funguje (z pohledu navstevnika)
- Navstevnik prijde na web a zobrazi se cookie consent banner.
- Ma tri moznosti:
- Prijmout vse – zapne vsechny volitelne kategorie, banner se skryje.
- Odmitnout vse – odmitne vsechny volitelne kategorie, banner se skryje.
- Nastaveni – rozbali detail s kategoriemi a prepinaci.
- V detailu muze navstevnik zapnout/vypnout jednotlive kategorie (Statisticke, Marketingove) a kliknout na Ulozit nastaveni.
- Po udeleni/odmitneni souhlasu se zobrazi mala lista (s ikonou cookie) pro znovuotevreni banneru.
- Kliknutim na listu se banner znovu otevre s predvyplnenymi hodnotami.
- Souhlas je ulozeny v localStorage prohlizece a expiruje po nastavenem poctu dnu (vychozi 365).
Ulozeni souhlasu
- localStorage: Klic
scc_cookie_consentobsahuje JSON s detailnim stavem vsech kategorii a casovym razitkem. - localStorage: Klic
scc_consent_idobsahuje UUID v4 pro identifikaci souhlasu v logu. - Cookie:
cookieconsent_statuss hodnotouallownebodenypro server-side kontrolu.
Kontrolni seznam pro spusteni
- Plugin nainstalovan a povolen
- URL zasad cookies nastavena a stranka existuje
- Barvy prizpusobeny designu webu
- Kategorie nastaveny podle pouzivanych sluzeb (GA4, Google Ads, Facebook atd.)
- Cookies k mazani odpovidaji skutecne pouzitym cookies na webu
- Google Consent Mode zapnut (pokud pouzivate Google sluzby)
- Logovani souhlasu zapnuto
- Anonymizace IP zapnuta (doporuceno pro GDPR)
- Stranka se zasadami cookies (
/pouziti-cookies) je kompletni a aktualni - Stranka ochrany osobnich udaju odkazuje na stranku cookies
- Testovaci souhlas udelen a zaznam se objevi v Logu souhlasu
- Dashboard ukazuje spravna data