code16/cookie-consent-js

There is no license information available for the latest version (v1.0.3) of this package.

Cookie consent handled front-only

v1.0.3 2024-10-08 16:31 UTC

This package is auto-updated.

Last update: 2024-11-08 16:39:30 UTC


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>