code16/cookie-consent

There is no license information available for the latest version (v2.0.0-alpha.3) of this package.

Cookie consent bar & manage modal

v2.0.0-alpha.3 2021-08-12 17:17 UTC

README

Setup

composer require code16/cookie-consent

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

Default

In your blade layout

<head>
    {{-- ... --}}
    @cookies
        <script>
          {{-- some injected cookies --}}
        </script>
    @endcookies
</head>

<body>
    {{-- end of the body --}}
    @include('cookieConsent::index')
</body>

With category

To let the user manage multiple cookie categories (e.g. analytics, socials) Add the category key to the @cookies directive

<head>
    {{-- ... --}}

    @cookies('analytics')
        <script>
          {{-- some analytics script --}}
        </script>
    @endcookies
</head>

Also you must declare the cookie category in config/cookie-consent.php as follow

[
    'cookie_categories' => [
        'system' => [
            'required' => true,
        ],
        'analytics' => [],
    ]
];

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' => [
        '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:

    @section('content')
        <a href="#manage-cookies">Open manage cookies modal</a>
    @endsection

Intercept accept POST request

If you need to add some custom logic when cookies are accepted (meaning: either when the used clicked on OK in the Bar or after setting his choices on the Modal), you can define a Middleware in the cookie-consent-middleware config key, which will be executed on the POST request.

Example:

    // in config/cookie-consent.php
    return [
        // ...
        'middleware' => 'cookie-consent.accepted'
    ];