posthog-1.0.0-alpha5/modules/posthog_cookies/posthog_cookies.module
modules/posthog_cookies/posthog_cookies.module
<?php
/**
* @file
* Contains posthog_cookies.module.
*/
use Drupal\Component\Utility\Html;
use Drupal\Core\Routing\RouteMatchInterface;
/**
* Implements hook_help().
*/
function posthog_cookies_help($route_name, RouteMatchInterface $route_match) {
switch ($route_name) {
case 'help.page.posthog_cookies':
$text = file_get_contents(__DIR__ . '/README.md');
if (!\Drupal::moduleHandler()->moduleExists('markdown')) {
return '<pre>' . Html::escape($text) . '</pre>';
}
else {
// Use the Markdown filter to render the README.
$filter_manager = \Drupal::service('plugin.manager.filter');
$settings = \Drupal::configFactory()->get('markdown.settings')->getRawData();
$config = ['settings' => $settings];
$filter = $filter_manager->createInstance('markdown', $config);
return $filter->process($text, 'en');
}
}
return NULL;
}
/**
* Implements hook_page_attachments().
*/
function posthog_cookies_page_attachments(&$page) {
$doKo = Drupal::service('cookies.knock_out')->doKnockOut();
if ($doKo) {
$page["#attached"]["library"][] = 'posthog_cookies/posthog_cookies';
}
}
/**
* Implements hook_page_attachments_alter().
*/
function posthog_cookies_page_attachments_alter(array &$attachments) {
$doKo = Drupal::service('cookies.knock_out')->doKnockOut();
if ($doKo) {
if (isset($attachments['#attached']['drupalSettings']['posthog_js'])) {
$initJson = $attachments['#attached']['drupalSettings']['posthog_js']['init_config_json'] ?? [];
$initJson['cookieless_mode'] = 'on_reject';
$attachments['#attached']['drupalSettings']['posthog_js']['init_config_json'] = $initJson;
}
}
}
