code16 / cookie-consent-js
Cookie consent handled front-only
Installs: 1 777
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Language:Blade
pkg:composer/code16/cookie-consent-js
Requires
- php: >=8.0
- laravel/framework: ^11.0|^12.0
README
Setup
composer require code16/cookie-consent-js
Required: publish assets (add this in composer.json post-autoload-dump scripts)
php artisan vendor:publish --provider='Code16\CookieConsent\CookieConsentServiceProvider' --tag=assets --force
You may publish the config file:
php artisan vendor:publish --provider="Code16\CookieConsent\CookieConsentServiceProvider" --tag=config
And the lang file:
php artisan vendor:publish --provider="Code16\CookieConsent\CookieConsentServiceProvider" --tag=lang
Usage
In your blade layout
<head> {{-- ... --}} <x-cookie-consent::scripts /> <x-cookies-allowed category="analytics"> <script> {{-- some injected cookies --}} </script> </x-cookies-allowed> </head>
Also you must declare the cookie category in config/cookie-consent.php as follow
[
    'categories' => [
        'system' => [
            'required' => true,
            'services' => [
                [
                  'cookies' => []
                ]
            ]
        ],
        'analytics' => [
            'services' => [
                'google-analytics' => [
                    'cookies' => [
                        ['name' => '_ga', 'lifetime' => '2 years']
                    ]
                ]
            ]
        ],
    ]
];
Categories marked as required are cannot be opt-out by the user.
To provide explanation texts in the manage dialog, add content to the lang file:
[
    'manage_modal' => [
        'title' => 'Manage cookies',
        'description' => 'About cookies...',
        'categories' => [
            'system' => [
                'title' => 'System cookies',
                'description' => "Description text about system cookies",
            ],
            'analytics' => [
                'title' => 'Analytics cookies',
                'description' => "Description text about analytics cookies",
            ],
        ],
    ]
];
Show the manage modal from a link (e.g. cookies page)
In the page:
<a href="#manage-cookies">Open manage cookies modal</a>