Semakin
Zákazník

Sema Cookie Consent for Joomla

Sema Cookie Consent for Joomla – Instalace a pouziti

Joomla rozsireni (package = plugin + komponenta) pro GDPR cookie consent banner s admin dashboardem a podporou Google Consent Mode v2.

JoomlaPHPAktualni verze
4.x, 5.x, 6.x8.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

  1. Prihlaste se do administrace Joomla.
  2. Prejdete do System > Install > Extensions.
  3. Nahrajte ZIP soubor pkg_semacookieconsent-X.Y.Z.zip.
  4. Joomla nainstaluje oba dily najednou:
    • Plugin: plg_system_semacookieconsent (System – Sema Cookie Consent)
    • Komponenta: com_semacookieconsent (Sema Cookie Consent – admin dashboard a log)
  5. 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:

  1. System > Manage > Plugins
  2. Vyhledejte semacookieconsent nebo Cookie Consent.
  3. 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):

KartaObsah
ObecnePozice banneru, URL zasad cookies, expirace souhlasu, lista pro znovuotevreni
TextyVsechny texty v banneru (nadpis, popis, tlacitka, nazvy kategorii)
BarvyBarva pozadi, textu, nadpisu, akcentu (tlacitka) a aktivniho prepinace
KategoriePovoleni/zakazani analytickych a marketingovych kategorii, cookies k mazani
Google Consent ModePovoleni GCM v2, cekani na aktualizaci, region
PokrocileLogovani souhlasu, rate limit, anonymizace IP, vyloucene stranky

Karta Obecne

ParametrVychoziPopis
Pozice banneruDoleBanner se zobrazi dole (bottom) nebo nahore (top) na strance.
URL zasad cookies/pouziti-cookiesRelativni nebo absolutni URL stranky se zasadami pouzivani cookies.
Expirace souhlasu (dny)365Po kolika dnech souhlas expiruje a banner se znovu zobrazi. Rozsah: 1–730.
Zobrazit listu pro znovuotevreniAnoPo 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).

ParametrVychozi (CZ)Popis
NadpisNastaveni cookiesNadpis v banneru.
Popis(dynamicky dle kategorii)Hlavni text banneru. Pokud nevyplnite, text se automaticky prizpusobi povolenym kategoriam (viz nize).
Tlacitko Prijmout vsePrijmout vseText na tlacitku pro prijeti vsech cookies.
Tlacitko Odmitnout vseOdmitnout vseText na tlacitku pro odmitnuti vsech volitelnych cookies.
Tlacitko NastaveniNastaveniText na tlacitku pro otevreni detailu s kategoriemi.
Tlacitko UlozitUlozit nastaveniText na tlacitku pro ulozeni vlastniho vyberu kategorii.
Nazev nezbytnychNezbytne cookiesNazev kategorie nezbytnych cookies.
Popis nezbytnychNutne pro spravne fungovani webu. Nelze vypnout.Popis kategorie nezbytnych cookies.
Nazev statistickychStatisticke cookiesNazev kategorie statistickych cookies.
Popis statistickychPomahaji nam pochopit, jak navstevnici pouzivaji web (Google Analytics).Popis kategorie statistickych cookies.
Nazev marketingovychMarketingove cookiesNazev kategorie marketingovych cookies.
Popis marketingovychPouzivaji se pro cilenou reklamu a retargeting (Google Ads).Popis kategorie marketingovych cookies.
Text odkazu na zasadyZasady pouzivani cookiesText odkazu na stranku se zasadami cookies.
Text listy pro znovuotevreniNastaveni cookiesText 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 kategorieText
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.

ParametrVychoziCSS propertyPopis
Barva pozadi#1e2533--scc-bgPozadi banneru.
Barva textu#ccd0d8--scc-textBarva hlavniho textu.
Barva nadpisu#ffffff--scc-headingBarva nadpisu.
Barva akcentu (tlacitka)#e67e22--scc-accentBarva tlacitek a zvyraznenych prvku. Hover stav se automaticky ztmavi.
Barva aktivniho prepinace#27ae60--scc-toggleBarva prepinace pri zapnute kategorii.

Pokud pouzivate vlastni CSS sablonu, muzete barvy prepsat primo v CSS pomoci promennych --scc-bg, --scc-text atd.

7. Kategorie cookies

Karta Kategorie urcuje, ktere volitelne kategorie se v banneru zobrazuji.

ParametrVychoziPopis
Povolit kategorii StatistickeAnoZobrazi kategorii „Statisticke cookies“ v banneru.
Povolit kategorii MarketingoveAnoZobrazi kategorii „Marketingove cookies“ v banneru.
Statisticke cookies k mazani_ga,_gid,_gatCarkou oddelene nazvy cookies, ktere se smazou pri odmitnuti statistickych.
Marketingove cookies k mazani_gcl_au,_fbp,_fbcCarkou 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).

ParametrVychoziPopis
Povolit Google Consent Mode v2NeZapne vkladani skriptu consent-mode.js do <head>.
Cekani na aktualizaci (ms)500Hodnota 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

  1. Skript consent-mode.js se vlozi synchronne do <head> (bez defer/async).
  2. Musi se nacist PRED jakymkoli gtag.js nebo Google Tag Managerem.
  3. Pri nacitani stranky precte existujici souhlas z localStorage a nastavi gtag('consent', 'default', ...).
  4. Kdyz navstevnik zmeni souhlas v banneru, JavaScript zavola gtag('consent', 'update', ...).

GCM consent typy

GCM typKategorie v banneruUcel
analytics_storageStatistickePovoleni analytickych cookies (GA4).
ad_storageMarketingovePovoleni reklabnich cookies (Google Ads).
ad_user_dataMarketingovePovoleni odesilani uzivatelskych dat pro reklamu.
ad_personalizationMarketingovePovoleni personalizovane reklamy.
functionality_storageVzdy granted (funkcionalni cookies).
security_storageVzdy granted (bezpecnostni cookies).
personalization_storageVzdy 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.

ParametrVychoziPopis
Povolit logovani souhlasuAnoZaznamenava kazdy souhlas/odmitnuti do databaze (GDPR audit log).
Rate limit (sekundy)5Minimalni interval mezi dvema logy souhlasu ze stejne session. Ochrana proti zneuziti. Rozsah: 0–60.
Anonymizovat IP adresuNeIPv4: 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:

KartaPopis
Celkem (30 dni)Celkovy pocet interakci s bannerem za poslednich 30 dni.
PrijatoPocet „Prijmout vse“ (zelene). Vcetne procentualniho podilu.
OdmitnutoPocet „Odmitnout vse“ (cervene). Vcetne procentualniho podilu.
VlastniPocet „Ulozit nastaveni“ s vlastnim vyberem (modre). Vcetne procentualniho podilu.
Mira souhlasuProcento navstevniku, kteri souhlasili se statistickymi cookies (accept_all + custom s analytics). Zelena ≥ 50%, cervena < 50%.
Celkem za celou dobuCelkovy pocet interakci od instalace pluginu.
Denni trendTabulka 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

SloupecPopis
IDPoradove cislo zaznamu.
ID souhlasuUUID v4 generovany na klientu (unikatni identifikator souhlasu).
IP adresaIP adresa navstevnika (pripadne anonymizovana).
NezbytneZelena fajfka / sede X. Nezbytne jsou vzdy zapnute.
StatistickeZelena fajfka (souhlas) / sede X (odmitnuty).
MarketingoveZelena fajfka (souhlas) / sede X (odmitnuty).
AkceTyp akce: accept_all (zeleny stitek), reject_all (cerveny), custom (modry).
DatumDatum a cas zaznamenani souhlasu.

Filtrovani

FiltrPopis
Filtr dle akceZobrazit pouze Accept All / Reject All / Custom.
Datum odFiltrovani od zadaneho data.
Datum doFiltrovani do zadaneho data.
HledatFulltextove hledani v consent ID nebo IP adrese.

Razeni

Kliknutim na zahlavi sloupcu ID nebo Datum zmenite smer razeni.

12. CSV export

  1. V zobrazeni Log souhlasu kliknete na tlacitko „Export CSV“ v panelu nastroju.
  2. Stahne se CSV soubor se vsemi zaznamy (respektuje aktualni filtry akce a data).
  3. Kodovani: UTF-8 s BOM (pro spravne zobrazeni v Excelu).
  4. Oddelovac: strednik (;).
  5. 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

  1. JavaScript banneru ulozi souhlas do localStorage (klic scc_cookie_consent).
  2. 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
  3. SST plugin nastavi cookie semakin_sst_cl (hodnoty 0/1/2) pro consent bridge mezi JS a PHP.
  4. PHP cte cookie a podle urovne souhlasu povoluje/zakazuje server-side tracking.

Cookies generovane pluginy Semakin

Nezbytne (vzdy):

CookieExpiracePopis
cookieconsent_status365 dniStav souhlasu (allow/deny) pro server-side kontrolu.
semakin_sst_cl24 hConsent bridge (localStorage → PHP). Pouze pokud je SST plugin.

Statisticke (po souhlasu L1):

CookieExpiracePopis
semakin_sst_cid2 rokyGA4 client_id fallback (server-side). Pouze pokud je SST plugin.

Marketingove (po souhlasu L2):

CookieExpiracePopis
semakin_sst_gclid90 dniGoogle Ads click ID. Pouze pokud je SST plugin + Google Ads.
semakin_sst_heureka_optout2 hHeureka opt-out. Pouze pokud je SST plugin + Heureka.
hg_ocm_id30 dniHeureka OCM atribuce (nastavuje Heureka SDK).

14. Odinstalace

Postup

  1. System > Manage > Extensions
  2. Vyhledejte Sema Cookie Consent.
  3. 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

  1. Overite, ze plugin je povoleny (Status = Enabled).
  2. Zkontrolujte, zda aktualni stranka neni v seznamu Vyloucenych menu polozek.
  3. Overite, ze navstevnik jeste neudelil souhlas (smazte scc_cookie_consent v localStorage prohlizece a cookieconsent_status v cookies).
  4. Zkontrolujte konzoli prohlizece (F12) na JavaScript chyby.
  5. Overite, ze na strance neni jiny plugin, ktery blokuje onAfterRender.

Banner se zobrazuje, ale chybi CSS (nevypada spravne)

  1. Overite, ze soubor existuje: {root}/media/plg_system_semacookieconsent/css/semacookieconsent.css.
  2. Pokud soubor chybi, plugin neni spravne nainstalovan – preinstalovejte.
  3. Zkontrolujte, zda jiny plugin neodstranuje CSS z <head>.

Google Consent Mode nefunguje

  1. Overite, ze Povolit Google Consent Mode v2 je zapnuto v nastaveni pluginu.
  2. Zkontrolujte zdrojovy kod stranky (Ctrl+U) – consent-mode.js musi byt v <head> PRED jakymkoli gtag.js nebo GTM skriptem.
  3. Zkontrolujte konzoli prohlizece – dataLayer musi obsahovat consent udalost s default hodnotami.

Log souhlasu je prazdny

  1. Overite, ze Povolit logovani souhlasu je zapnuto.
  2. Zkontrolujte, zda navstevnik skutecne klikl na tlacitko v banneru (obnoveni stranky bez interakce nezaloguje nic).
  3. Zkontrolujte konzoli prohlizece na chyby AJAX pozadavku na com_ajax.
  4. Overite, ze tabulka #__semacookieconsent_consents existuje 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_consent v 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)

  1. Navstevnik prijde na web a zobrazi se cookie consent banner.
  2. 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.
  3. V detailu muze navstevnik zapnout/vypnout jednotlive kategorie (Statisticke, Marketingove) a kliknout na Ulozit nastaveni.
  4. Po udeleni/odmitneni souhlasu se zobrazi mala lista (s ikonou cookie) pro znovuotevreni banneru.
  5. Kliknutim na listu se banner znovu otevre s predvyplnenymi hodnotami.
  6. Souhlas je ulozeny v localStorage prohlizece a expiruje po nastavenem poctu dnu (vychozi 365).

Ulozeni souhlasu

  • localStorage: Klic scc_cookie_consent obsahuje JSON s detailnim stavem vsech kategorii a casovym razitkem.
  • localStorage: Klic scc_consent_id obsahuje UUID v4 pro identifikaci souhlasu v logu.
  • Cookie: cookieconsent_status s hodnotou allow nebo deny pro 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

Máte zájem o spolupráci?

Ozvěte se nám a probereme Váš projekt. Rádi Vám poradíme s výběrem řešení.