ch_cookie_consent: | |||||
theme: 'light' # light, dark | |||||
categories: # Below are the default supported categories | |||||
- 'piwik' | |||||
use_logger: true # Logs user actions to database | |||||
position: 'bottom' # top, bottom | |||||
simplified: false # When set to true the user can only deny or accept all cookies at once |
# see https://symfony.com/doc/current/reference/configuration/framework.html | # see https://symfony.com/doc/current/reference/configuration/framework.html | ||||
lc_sov: | lc_sov: | ||||
homepage_route: 'app_homepage' | |||||
homepage_route: 'app_homepage' | |||||
login_redirection: | |||||
redirect_referer: false | |||||
roles_redirection: | |||||
- { role: "ROLE_ADMIN", redirect: "app_admin_dashboard" } | |||||
- { role: "ROLE_SUPER_ADMIN", redirect: "app_admin_dashboard" } |
ch_cookie_consent: | |||||
resource: "@CHCookieConsentBundle/Resources/config/routing.yaml" |
Mailjet\MailjetSwiftMailer\SwiftMailer\MailjetTransport: '@swiftmailer.mailer.transport.mailjet' | Mailjet\MailjetSwiftMailer\SwiftMailer\MailjetTransport: '@swiftmailer.mailer.transport.mailjet' | ||||
app.form.extension.type.cookie_consent: | |||||
class: App\Form\CookieConsentTypeExtension | |||||
tags: | |||||
- { name: form.type_extension, extended_type: ConnectHolland\CookieConsentBundle\Form\CookieConsentType } | |||||
arguments: | |||||
- '@ConnectHolland\CookieConsentBundle\Cookie\CookieChecker' | |||||
- '%ch_cookie_consent.categories%' | |||||
- '%ch_cookie_consent.simplified%' | |||||
#Pour remplacer le form cookie consent | |||||
# app.form.extension.type.cookie_consent: | |||||
# class: App\Form\CookieConsent | |||||
# tags: | |||||
# - { name: form.type_extension, extended_type: ConnectHolland\CookieConsentBundle\Form\CookieConsentType } | |||||
# arguments: | |||||
# - '@ConnectHolland\CookieConsentBundle\Cookie\CookieChecker' | |||||
# - '%ch_cookie_consent.categories%' | |||||
# - '%ch_cookie_consent.simplified%' |
<?php | |||||
namespace App\Form; | |||||
use ConnectHolland\CookieConsentBundle\Cookie\CookieChecker; | |||||
use Symfony\Component\Form\AbstractTypeExtension; | |||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; | |||||
use Symfony\Component\Form\FormBuilderInterface; | |||||
use ConnectHolland\CookieConsentBundle\Form\CookieConsentType as BaseCookieConsentType; | |||||
class CookieConsentTypeExtension extends AbstractTypeExtension | |||||
{ | |||||
/** | |||||
* @var CookieChecker | |||||
*/ | |||||
protected $cookieChecker; | |||||
/** | |||||
* @var array | |||||
*/ | |||||
protected $cookieCategories; | |||||
/** | |||||
* @var bool | |||||
*/ | |||||
protected $cookieConsentSimplified; | |||||
public function __construct( | |||||
CookieChecker $cookieChecker, | |||||
array $cookieCategories = [], | |||||
bool $cookieConsentSimplified = null | |||||
) { | |||||
$this->cookieChecker = $cookieChecker; | |||||
$this->cookieCategories = $cookieCategories; | |||||
$this->cookieConsentSimplified = $cookieConsentSimplified; | |||||
} | |||||
public function buildForm(FormBuilderInterface $builder, array $options) | |||||
{ | |||||
foreach ($this->cookieCategories as $category) { | |||||
$builder->remove($category); | |||||
$data = 'true'; | |||||
if ($this->cookieChecker->isCookieConsentSavedByUser() && !$this->cookieChecker->isCategoryAllowedByUser( | |||||
$category | |||||
)) { | |||||
$data = 'false'; | |||||
} | |||||
$builder->add( | |||||
$category, | |||||
ChoiceType::class, | |||||
[ | |||||
'expanded' => true, | |||||
'multiple' => false, | |||||
'data' => $data, | |||||
'choices' => [ | |||||
['ch_cookie_consent.yes' => 'true'], | |||||
['ch_cookie_consent.no' => 'false'], | |||||
], | |||||
] | |||||
); | |||||
} | |||||
} | |||||
public static function getExtendedTypes(): iterable | |||||
{ | |||||
return [BaseCookieConsentType::class]; | |||||
} | |||||
} |