Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
novicell/dds_cookieinfo / dds_cookieinfo.module
Size: Mime:
<?php

use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Template\Attribute;

/**
 * Implements hook_help().
 */
function dds_cookieinfo_help($route_name, RouteMatchInterface $route_match) {
  switch ($route_name) {
    // Main module help for the dds_icons module.
    case 'help.page.dds_cookieinfo':
      $output = '';
      $output .= '<h3>' . t('About') . '</h3>';
      $output .= '<p>' . t('Add a cookieinfo box at the bottom of the page.') . '</p>';
      return $output;

    default:
  }
}

/**
 * Implement hook_theme
 * @param $existing
 * @param $type
 * @param $theme
 * @param $path
 * @return array
 */
function dds_cookieinfo_theme($existing, $type, $theme, $path) {
  return array(
    'dds_cookieinfo' => array(
      'variables' => array(
        'title' => NULL,
        'body' => NULL,
        'open' => NULL,
        'close' => NULL,
        'section_attributes' => []
      )
    )
  );
}


/**
 * @param array $page_bottom
 */
function dds_cookieinfo_page_bottom(array &$page_bottom) {

  // Get current theme
  $theme = \Drupal::theme()->getActiveTheme()->getName();

  // Get system theme settings
  $config = \Drupal::config('system.theme');

  if ($theme != $config->get('admin')) {

    /** @var \Drupal\site_settings\SiteSettingsLoader $site_settings_loader */
    $site_settings_loader = \Drupal::service('site_settings.loader');
    $site_settings = $site_settings_loader->loadByFieldset('site_settings');
    $section_attributes = new Attribute();

    if (!empty($cookieinfo = $site_settings['cookieinfo'])) {
      $page_bottom['dds_cookieinfo'] = [
        '#theme' => 'dds_cookieinfo',
        '#title' => $cookieinfo['field_cookie_header'],
        '#body' => $cookieinfo['field_cookie_body'],
        '#open' => $cookieinfo['field_cookie_open'],
        '#close' => $cookieinfo['field_cookie_close'],
        '#section_attributes' => $section_attributes,
        '#attached' => [
          'library' => 'dds_cookieinfo/dds_cookieinfo',
          'drupalSettings' => ['cookieinfo' => ['cookie_behavior' => isset($cookieinfo['field_cookie_show_once']) && $cookieinfo['field_cookie_show_once'] == 1 ? 'display_once' : 'display_until_accepted']] //display_once
        ],
        '#cache' => [
          'tags' => ['site_settings_set:Site settings']
        ]
      ];
    }
  }
}