Includes: Component, Plugin
ConsentLab
A lightweight cookie consent manager for Joomla. GDPR and ePrivacy compliant consent banners with granular category toggles, server-side script blocking, and a consent log — without a SaaS subscription.
Create a free account to download and access support. Register or log in.
About this Extension
ConsentLab is a lightweight cookie consent manager for Joomla 5 & 6. Display a fully compliant GDPR/ePrivacy consent banner with granular category toggles, block scripts until consent is granted, and log every decision server-side. No SaaS subscription, no bloat.
Key Features:
- Cookie Categories — manage cookie categories in the admin with a pre-seeded set: Strictly Necessary, Analytics, Marketing, and Preferences. Add, edit, or remove categories as needed.
- Consent Banner — system plugin injects a consent banner on every frontend page. Choose from five positions: bottom bar, top bar, corner left, corner right, or centre modal.
- Script Blocking — tag third-party scripts with a
data-consentlabattribute and the extension blocks them until the visitor consents to that category. Server-side type-attribute swapping ensures scripts never execute prematurely. - Granular Toggles — visitors choose exactly which categories to accept. Required categories (e.g. Strictly Necessary) are locked on and clearly indicated.
- Consent Logging — every consent decision is logged server-side via AJAX with timestamp, categories accepted, and anonymised IP. Export to CSV or purge old entries from the admin.
- Consent Versioning — bump the consent version number to automatically re-prompt all visitors when your cookie policy changes.
- Shortcode — use
{consentlab manage}in any article or custom HTML module to render a “Manage Cookie Preferences” link. - JavaScript API — public API on
window.ConsentLabwith methods to show preferences, check consent, and revoke consent programmatically. - Style Options — configure banner colours, button colours, toggle colour, and border radius from the admin. All applied via CSS custom properties for easy template-level overrides.
- Accessible — focus trap in the banner, ARIA roles and labels, full keyboard navigation, and
prefers-reduced-motionsupport. - Lightweight — 5.7 KB gzipped frontend footprint (CSS + JS). Vanilla CSS and JavaScript with zero third-party dependencies.
How It Works:
- Install the package and the consent banner appears on your site immediately.
- Review the pre-seeded cookie categories in Components → ConsentLab → Cookie Categories.
- Tag any third-party scripts with
data-consentlab="category-alias"to block them until consent is given. - Configure banner position, text, privacy policy link, and style options to match your site.
- Monitor consent decisions in the Consent Log and export as needed for compliance records.
Package Includes:
com_consentlab— admin component with cookie categories CRUD, consent log, and configuration optionsplg_system_consentlab— system plugin for banner injection and script blockingplg_content_consentlab— content plugin for the{consentlab manage}shortcode
Built on Joomla’s native MVC architecture. No external dependencies, no SaaS subscription.
Releases
Added update server support. The extension will now notify you of new versions via Joomla's built-in update manager.
Initial release of ConsentLab, a lightweight cookie consent manager for Joomla 5 and 6. GDPR and ePrivacy compliant consent banners with granular category toggles, server-side script blocking, and a full consent log.
Changelog
- Cookie categories CRUD with pre-seeded set: Strictly Necessary, Analytics, Marketing, Preferences
- System plugin injects consent banner on every frontend page
- Five banner positions: bottom bar, top bar, corner left, corner right, centre modal
- Granular category toggles with required/locked categories
- Server-side script blocking via data-consentlab attribute and type-attribute swapping
- Client-side script activation on consent grant
- Consent stored in first-party cookie with JSON payload
- Server-side consent logging via AJAX with anonymised IP
- Consent log admin view with CSV export and purge
- Consent version bumping to re-prompt all visitors on policy changes
- Content plugin for {consentlab manage} shortcode
- Public JavaScript API: ConsentLab.showPreferences(), .hasConsent(), .getConsent(), .revokeConsent()
- Configurable banner position, title, description, and privacy policy URL
- Show/hide reject all button and category details toggle
- Consent expiry and log retention day settings
- IP anonymisation option
- Style options: banner colours, button colours, toggle colour, border radius
- CSS custom properties for template-level style overrides
- Accessible: focus trap, ARIA roles, keyboard navigation, prefers-reduced-motion
- 5.7 KB gzipped frontend footprint (CSS + JS)
- Vanilla CSS and JavaScript with zero third-party dependencies
- Joomla 5 and 6 compatible