You are here

public static function Blazy::containerAttributes in Blazy 8.2

Same name and namespace in other branches
  1. 8 src/Blazy.php \Drupal\blazy\Blazy::containerAttributes()
  2. 7 src/Blazy.php \Drupal\blazy\Blazy::containerAttributes()

Provides container attributes for .blazy container: .field, .view, etc.

4 calls to Blazy::containerAttributes()
Blazy::preprocessField in src/Blazy.php
Overrides variables for field.html.twig templates.
BlazyGrid::attributes in src/BlazyGrid.php
Provides reusable container attributes.
BlazyViews::preprocessViewsView in src/BlazyViews.php
Implements hook_preprocess_views_view().
BlazyViews::viewsPreRender in src/BlazyViews.php
Implements hook_views_pre_render().

File

src/Blazy.php, line 298

Class

Blazy
Provides common blazy utility static methods.

Namespace

Drupal\blazy

Code

public static function containerAttributes(array &$attributes, array $settings = []) {
  $settings += [
    'namespace' => 'blazy',
  ];
  $classes = empty($attributes['class']) ? [] : $attributes['class'];
  $attributes['data-blazy'] = empty($settings['blazy_data']) ? '' : Json::encode($settings['blazy_data']);

  // Provides data-LIGHTBOX-gallery to not conflict with original modules.
  if (!empty($settings['media_switch']) && $settings['media_switch'] != 'content') {
    $switch = str_replace('_', '-', $settings['media_switch']);
    $attributes['data-' . $switch . '-gallery'] = TRUE;
    $classes[] = 'blazy--' . $switch;
  }

  // Provides contextual classes relevant to the container: .field, or .view.
  // Sniffs for Views to allow block__no_wrapper, views__no_wrapper, etc.
  foreach ([
    'field',
    'view',
  ] as $key) {
    if (!empty($settings[$key . '_name'])) {
      $name = str_replace('_', '-', $settings[$key . '_name']);
      $name = $key == 'view' ? 'view--' . $name : $name;
      $classes[] = $settings['namespace'] . '--' . $key;
      $classes[] = $settings['namespace'] . '--' . $name;
      if (!empty($settings['current_view_mode'])) {
        $view_mode = str_replace('_', '-', $settings['current_view_mode']);
        $classes[] = $settings['namespace'] . '--' . $name . '--' . $view_mode;
      }
    }
  }
  $attributes['class'] = array_merge([
    'blazy',
  ], $classes);
}