You are here

protected function BlazyStyleBaseTrait::buildSettings in Blazy 7

Same name and namespace in other branches
  1. 8.2 src/Dejavu/BlazyStyleBaseTrait.php \Drupal\blazy\Dejavu\BlazyStyleBaseTrait::buildSettings()
  2. 8 src/Dejavu/BlazyStyleBaseTrait.php \Drupal\blazy\Dejavu\BlazyStyleBaseTrait::buildSettings()

Provides commons settings for the style plugins.

1 call to BlazyStyleBaseTrait::buildSettings()
BlazyViews::render in src/Plugin/views/style/BlazyViews.php
Overrides StylePluginBase::render().

File

src/Dejavu/BlazyStyleBaseTrait.php, line 45

Class

BlazyStyleBaseTrait
A Trait common for optional views style plugins.

Namespace

Drupal\blazy\Dejavu

Code

protected function buildSettings() {
  global $language;
  $langcode = isset($language->language) ? $language->language : LANGUAGE_NONE;
  $view = $this->view;
  $count = count($view->result);
  $settings = $this->options;
  $view_name = $view->name;
  $view_mode = $view->current_display;
  $instance = str_replace('_', '-', "{$view_name}-{$view_mode}");
  $plugin_id = $view->plugin_name;
  $id = empty($settings['id']) ? '' : $settings['id'];
  $id = Blazy::getHtmlId("{$plugin_id}-views-{$instance}", $id);
  $settings += [
    'cache_metadata' => [
      'keys' => [
        $id,
        $view_mode,
        $count,
        $langcode,
      ],
    ],
  ] + BlazyDefault::lazySettings();

  // Prepare needed settings to work with.
  $settings['check_blazy'] = TRUE;
  $settings['id'] = $id;
  $settings['count'] = $count;
  $settings['current_view_mode'] = $view_mode;
  $settings['instance_id'] = $instance;
  $settings['multiple'] = TRUE;
  $settings['plugin_id'] = $plugin_id;
  $settings['use_ajax'] = $view->use_ajax;
  $settings['view_name'] = $view_name;
  $settings['view_display'] = $view->style_plugin->display->display_plugin;
  $settings['_views'] = TRUE;
  if (!empty($this->htmlSettings)) {
    $settings = NestedArray::mergeDeep($settings, $this->htmlSettings);
  }
  drupal_alter('blazy_settings_views', $settings, $view);
  return $settings;
}