You are here

function tacjs_page_attachments in TacJS 8.2

Same name and namespace in other branches
  1. 8.6 tacjs.module \tacjs_page_attachments()
  2. 8 tacjs.module \tacjs_page_attachments()
  3. 8.3 tacjs.module \tacjs_page_attachments()
  4. 8.4 tacjs.module \tacjs_page_attachments()
  5. 8.5 tacjs.module \tacjs_page_attachments()

Implements hook_page_attachments().

File

./tacjs.module, line 12
The module file.

Code

function tacjs_page_attachments(&$page) {
  $config = Drupal::config('tacjs.settings');
  $js_settings = [
    'texts' => $config
      ->get('texts'),
  ];
  $page['#attached']['drupalSettings']['tacjs'] = $js_settings;

  // to not display the banner in back office pages
  if (!Drupal::service('router.admin_context')
    ->isAdminRoute()) {

    /*  Initial JS.  */
    $config = \Drupal::getContainer()
      ->get('config.factory')
      ->getEditable('tacjs.admin_settings_form');
    $page['#attached']['library'][] = 'tacjs/tarteaucitron';
    $services_tacjs = \Drupal::service('tacjs.settings')
      ->getFieldsSelects('module');
    $page['#attached']['drupalSettings']['options_tacjs'] = \Drupal::service('tacjs.settings')
      ->getOptionsTacjs();

    // @var  $social_networks.
    if (!empty($services_tacjs['social_networks'])) {
      $social_networks = $services_tacjs['social_networks'];
      foreach ($social_networks as $k => $item) {
        $page['#attached']['library'][] = 'tacjs/tac' . $item['name'];
        $page['#attached']['drupalSettings'][$k]['value'] = !empty($config
          ->get($item['value'])) ? $config
          ->get($item['value']) : '';
      }
    }

    // @var  $apis.
    if (!empty($services_tacjs['apis'])) {
      $apis = $services_tacjs['apis'];
      foreach ($apis as $k => $item) {
        $page['#attached']['library'][] = 'tacjs/tac' . $item['name'];
        $page['#attached']['drupalSettings'][$item['value']]['value'] = !empty($config
          ->get($item['value'])) ? $config
          ->get($item['value']) : '';
      }
    }

    // @var  $comment.
    if (!empty($services_tacjs['comment'])) {
      $comment = $services_tacjs['comment'];
      foreach ($comment as $k => $item) {
        $page['#attached']['library'][] = 'tacjs/tac' . $item['name'];
        $page['#attached']['drupalSettings'][$item['value']]['value'] = !empty($config
          ->get($item['value'])) ? $config
          ->get($item['value']) : '';
      }
    }

    // @var $mesure_audience .
    if (!empty($services_tacjs['mesure_audience'])) {
      $mesure_audience = $services_tacjs['mesure_audience'];
      foreach ($mesure_audience as $k => $item) {
        $page['#attached']['library'][] = 'tacjs/tac' . $item['name'];
        $page['#attached']['drupalSettings'][$item['value']]['value'] = !empty($config
          ->get($item['value'])) ? $config
          ->get($item['value']) : '';
        if (isset($item['value_'])) {
          $page['#attached']['drupalSettings'][$item['value_']]['value'] = !empty($config
            ->get($item['value_'])) ? $config
            ->get($item['value_']) : '';
        }
      }
    }

    // @var $support .
    if (!empty($services_tacjs['support'])) {
      $support = $services_tacjs['support'];
      foreach ($support as $k => $item) {
        $page['#attached']['library'][] = 'tacjs/tac' . $item['name'];
        $page['#attached']['drupalSettings'][$item['value']]['value'] = !empty($config
          ->get($item['value'])) ? $config
          ->get($item['value']) : '';
      }
    }

    // @var  $video .
    $videos = $config
      ->get('type_video');
    if (!empty($videos)) {
      foreach ($videos as $k => $vid) {
        $page['#attached']['library'][] = 'tacjs/tac' . $vid;
      }
    }

    // @var  $regie_pub .
    $regie_pub = $services_tacjs['regie_pub'];
    if (!empty($regie_pub)) {
      foreach ($regie_pub['options'] as $k => $value) {
        $page['#attached']['library'][] = 'tacjs/tac' . $value;
      }
      unset($regie_pub['options']);
      if (!empty($regie_pub)) {
        foreach ($regie_pub as $k => $item) {
          $page['#attached']['library'][] = 'tacjs/tac' . $item['name'];
          $page['#attached']['drupalSettings'][$item['value']]['value'] = !empty($config
            ->get($item['value'])) ? $config
            ->get($item['value']) : '';
        }
      }
    }
  }
}