cookies_addons-1.0.3/modules/cookies_addons_blocks/cookies_addons_blocks.module

modules/cookies_addons_blocks/cookies_addons_blocks.module
<?php

/**
 * @file
 * Primary module hooks for Cookies Addons Blocks module.
 *
 * @DCG
 * This file is no longer required in Drupal 8.
 * @see https://www.drupal.org/node/2217931
 */

/**
 * Implements template_preprocess_block().
 */
function cookies_addons_blocks_preprocess_block(&$variables) {
  $entityTypeManager = \Drupal::service('entity_type.manager');

  if (isset($variables['elements']['#id']) && $id = $variables['elements']['#id']) {
    if ($service = _cookies_addons_blocks_is_restricted($id)) {
      $cookiesServices = $entityTypeManager
        ->getStorage('cookies_service')
        ->loadByProperties(['status' => 1]);
      if (isset($cookiesServices[$service])) {
        $serviceLabel = $cookiesServices[$service]->label();
      }
      else {
        $serviceLabel = $service;
      }
      // Replace entire block with a placeholder.
      $variables['content'] = [
        '#type' => 'html_tag',
        '#tag' => 'div',
        '#attributes' => [
          'class' => 'cookies-addons-blocks-placeholder',
          'data-cookies-service' => $service,
          'data-service-name' => $serviceLabel,
          'data-block-id' => $id,
          'id' => $variables['elements']['#id'] . '-content',
        ],
        '#attached' => [
          'library' => 'cookies_addons_blocks/cookies-addons-blocks',
        ],
      ];
    }
  }
}

/**
 * Returns cookies service for restricted blocks.
 *
 * @param string $block_id
 *   Block ID.
 *
 * @return false|string
 *   Returns cookies service name if applicable or FALSE.
 */
function _cookies_addons_blocks_is_restricted(string $block_id) {
  if (\Drupal::request()->getMethod() === 'POST') {
    return FALSE;
  }

  $restricted_blocks = \Drupal::config('cookies_addons_blocks.settings')
    ->get('blocks');

  if ($restricted_blocks) {
    $restricted_blocks = preg_split('/\r\n|\r|\n/', $restricted_blocks);

    foreach ($restricted_blocks as $restricted_block) {
      $parts = explode('|', $restricted_block);
      if (count($parts) !== 2) {
        continue;
      }

      if ($block_id === $parts[0]) {
        return $parts[1];
      }
    }
  }

  return FALSE;
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc