splide-1.0.x-dev/splide.module

splide.module
<?php

/**
 * @file
 * Splide slider integration, the vanilla JavaScript Slider.
 */

use Drupal\splide\SplideDefault;

/**
 * Provides a convenient shortcut for procedural hooks.
 *
 * @param string $key
 *   Identifier of the service.
 *
 * @return \Drupal\splide\SplideManagerInterface
 *   |\Drupal\splide\SplideSkinManagerInterface
 *   The required Splide class instance.
 */
// @codingStandardsIgnoreStart
function splide($key = 'manager') {
  static $manager;
  static $skin_manager;

  if (!isset($manager)) {
    $manager = \Drupal::service('splide.manager');
    $skin_manager = \Drupal::service('splide.skin_manager');
  }

  switch ($key) {
    case 'skin':
      return $skin_manager;

    default:
      return $manager;
  }
}
// @codingStandardsIgnoreEnd

/**
 * Implements hook_theme().
 */
function splide_theme() {
  $themes = [];
  foreach (['splide', 'slide', 'minimal', 'wrapper'] as $item) {
    $key = $item == 'splide' ? $item : 'splide_' . $item;
    $themes[$key] = [
      'render element' => 'element',
      'file' => 'templates/splide.theme.inc',
    ];
  }
  return $themes;
}

/**
 * Implements hook_library_info_build().
 */
function splide_library_info_build() {
  /* @phpstan-ignore-next-line */
  return splide('skin')->libraryInfoBuild();
}

/**
 * Implements hook_config_schema_info_alter().
 */
function splide_config_schema_info_alter(array &$definitions) {
  splide()->configSchemaInfoAlter($definitions, 'splide_base', SplideDefault::extendedSettings());
}

/**
 * Implements hook_library_info_alter().
 */
function splide_library_info_alter(&$libraries, $extension) {
  if ($extension === 'splide') {
    /* @phpstan-ignore-next-line */
    splide('skin')->libraryInfoAlter($libraries, $extension);
  }
}

/**
 * Implements hook_page_attachments().
 */
function splide_page_attachments(array &$attachments) {
  $sitewide = splide()->config('sitewide', 'splide.settings') ?: 0;

  if ($sitewide > 0) {
    if (!\Drupal::service('router.admin_context')->isAdminRoute()) {
      $data = splide()->attach([
        '_unload' => $sitewide == 2 || $sitewide == 3,
        '_vanilla' => $sitewide == 2,
      ]);
      $attachments['#attached'] = splide()->merge($data, $attachments, '#attached');
    }
  }
}

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

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