fullpagejs-1.0.0-beta2/fullpagejs.module

fullpagejs.module
<?php

/**
 * @file
 * Contains fullpagejs.module.
 */

use Drupal\Core\Routing\RouteMatchInterface;

/**
 * Implements hook_page_attachments().
 */
function fullpagejs_page_attachments(array &$attachments) {
  // Check if is admin route.
  $is_admin = \Drupal::service('router.admin_context')->isAdminRoute();

  // Get current node.
  $node = \Drupal::request()->attributes->get('node');

  // Get settings from fullpagejs config.
  $settings = \Drupal::config('fullpagejs.settings');

  // Get all content types saved on fullpagejs config.
  $content_types =  $settings->get('drupalContentTypes');

  if(!$is_admin && $node && $content_types) {

    // Get node content type.
    $node_type = strval($node->getType());
    if($node_type === $content_types[$node_type]) {

      $attachments['#attached']['library'][] = 'fullpagejs/fullpagejs';
      $attachments['#attached']['drupalSettings']['fullpagejs']['licenseKey'] = $settings->get('licenseKey') ? $settings->get('licenseKey') : null;
      $attachments['#attached']['drupalSettings']['fullpagejs']['fullPageSelector'] = $settings->get('fullPageSelector') ? $settings->get('fullPageSelector') : '#fullpage';
      $attachments['#attached']['drupalSettings']['fullpagejs']['sectionSelector'] = $settings->get('sectionSelector') ? $settings->get('sectionSelector') : '.section';
      $attachments['#attached']['drupalSettings']['fullpagejs']['slideSelector'] = $settings->get('slideSelector') ? $settings->get('slideSelector') : '.slide';
      $attachments['#attached']['drupalSettings']['fullpagejs']['controlArrows'] = $settings->get('controlArrows') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['verticalCentered'] = $settings->get('verticalCentered') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['scrollingSpeed'] = $settings->get('scrollingSpeed') ? intval($settings->get('scrollingSpeed')) : 700;
      switch($settings->get('sectionsColor')) {
        case 'none':
        case '':
          $sectionsColor = 'none';
          break;
        default:
          $sectionsColor = explode(', ', $settings->get('sectionsColor'));
      }
      $attachments['#attached']['drupalSettings']['fullpagejs']['sectionsColor'] = $sectionsColor;
      $attachments['#attached']['drupalSettings']['fullpagejs']['anchors'] = $settings->get('anchors') ? explode(', ', $settings->get('anchors')) : [];
      $attachments['#attached']['drupalSettings']['fullpagejs']['lockAnchors'] = $settings->get('lockAnchors') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['easing'] = $settings->get('easing') ? $settings->get('easing') : 'easeInOutCubic';
      $attachments['#attached']['drupalSettings']['fullpagejs']['easingcss3'] = $settings->get('easingcss3') ? $settings->get('easingcss3') : 'ease';
      $attachments['#attached']['drupalSettings']['fullpagejs']['loopTop'] = $settings->get('loopTop') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['loopBottom'] = $settings->get('loopBottom') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['loopHorizontal'] = $settings->get('loopHorizontal') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['css3'] = $settings->get('css3') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['autoScrolling'] = $settings->get('autoScrolling') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['fitToSection'] = $settings->get('fitToSection') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['fitToSectionDelay'] = $settings->get('fitToSectionDelay') ? intval($settings->get('fitToSectionDelay')) : 1000;
      $attachments['#attached']['drupalSettings']['fullpagejs']['scrollBar'] = $settings->get('scrollBar') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['paddingTop'] = $settings->get('paddingTop') ? $settings->get('paddingTop') : 0;
      $attachments['#attached']['drupalSettings']['fullpagejs']['paddingBottom'] = $settings->get('paddingBottom') ? $settings->get('paddingBottom') : 0;
      $attachments['#attached']['drupalSettings']['fullpagejs']['fixedElements'] = $settings->get('fixedElements') ? $settings->get('fixedElements') : null;
      $attachments['#attached']['drupalSettings']['fullpagejs']['normalScrollElements'] = $settings->get('normalScrollElements') ? $settings->get('normalScrollElements') : null;
      switch($settings->get('bigSectionsDestination')) {
        case 'top':
          $bigSectionsDestination = 'top';
          break;
        case 'bottom':
          $bigSectionsDestination = 'bottom';
          break;
        default:
          $bigSectionsDestination = null;
      }
      $attachments['#attached']['drupalSettings']['fullpagejs']['bigSectionsDestination'] = $bigSectionsDestination;
      $attachments['#attached']['drupalSettings']['fullpagejs']['keyboardScrolling'] = $settings->get('keyboardScrolling') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['touchSensitivity'] = $settings->get('touchSensitivity') ? intval($settings->get('touchSensitivity')) : 5;
      $attachments['#attached']['drupalSettings']['fullpagejs']['continuousVertical'] = $settings->get('continuousVertical') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['animateAnchor'] = $settings->get('animateAnchor') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['recordHistory'] = $settings->get('recordHistory') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['menu'] = $settings->get('menu') ? $settings->get('menu') : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['navigation'] = $settings->get('navigation') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['navigationPosition'] = $settings->get('navigationPosition') ? $settings->get('navigationPosition') : 'none';
      $attachments['#attached']['drupalSettings']['fullpagejs']['navigationTooltips'] = $settings->get('navigationTooltips') ? explode(', ', $settings->get('navigationTooltips')) : [];
      $attachments['#attached']['drupalSettings']['fullpagejs']['showActiveTooltip'] = $settings->get('showActiveTooltip') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['slidesNavigation'] = $settings->get('slidesNavigation') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['slidesNavPosition'] = $settings->get('slidesNavPosition') ? $settings->get('slidesNavPosition') : 'bottom';
      $attachments['#attached']['drupalSettings']['fullpagejs']['lazyLoading'] = $settings->get('lazyLoading') ? true : false;
      switch($settings->get('cards')) {
        case 'true':
          $cards = true;
          break;
        case 'sections':
          $cards = 'sections';
          break;
        case 'slides':
          $cards = 'slides';
          break;
        default:
          $cards = false;
      }
      $attachments['#attached']['drupalSettings']['fullpagejs']['cards'] = $cards;
      $attachments['#attached']['drupalSettings']['fullpagejs']['cardsKey'] = $settings->get('cardsKey') ? $settings->get('cardsKey') : '';
      $attachments['#attached']['drupalSettings']['fullpagejs']['cardsPerspective'] = $settings->get('cardsPerspective') ? intval($settings->get('cardsPerspective')) : 100;
      $attachments['#attached']['drupalSettings']['fullpagejs']['cardsFadeContent'] = $settings->get('cardsFadeContent') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['cardsFadeBackground'] = $settings->get('cardsFadeBackground') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['parallax'] = $settings->get('parallax') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['parallaxKey'] = $settings->get('parallaxKey') ? $settings->get('parallaxKey') : '';
      $attachments['#attached']['drupalSettings']['fullpagejs']['parallaxType'] = $settings->get('parallaxType') ? $settings->get('parallaxType') : 'reveal';
      $attachments['#attached']['drupalSettings']['fullpagejs']['parallaxPercentage'] = $settings->get('parallaxPercentage') ? intval($settings->get('parallaxPercentage')) : 62;
      $attachments['#attached']['drupalSettings']['fullpagejs']['parallaxProperty'] = $settings->get('parallaxProperty') ? $settings->get('parallaxProperty') : 'translate';
      $attachments['#attached']['drupalSettings']['fullpagejs']['scrollOverflow'] = $settings->get('scrollOverflow') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['scrollOverflowReset'] = $settings->get('scrollOverflowReset') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['scrollOverflowResetKey'] = $settings->get('scrollOverflowResetKey') ? $settings->get('scrollOverflowResetKey') : '';
      switch($settings->get('dragAndMove')) {
        case 'true':
          $dragAndMove = true;
          break;
        case 'vertical':
          $dragAndMove = 'vertical';
          break;
        case 'horizontal':
          $dragAndMove = 'horizontal';
          break;
        case 'fingersonly':
          $dragAndMove = 'fingersonly';
          break;
          case 'mouseonly':
            $dragAndMove = 'mouseonly';
            break;
        default:
          $dragAndMove = false;
      }
      $attachments['#attached']['drupalSettings']['fullpagejs']['dragAndMove'] = $dragAndMove;
      $attachments['#attached']['drupalSettings']['fullpagejs']['dragAndMoveKey'] = $settings->get('dragAndMoveKey') ? $settings->get('dragAndMoveKey') : '';
      $attachments['#attached']['drupalSettings']['fullpagejs']['offsetSections'] = $settings->get('offsetSections') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['offsetSectionsKey'] = $settings->get('offsetSectionsKey') ? $settings->get('offsetSectionsKey') : '';
      switch($settings->get('fadingEffect')) {
        case 'true':
          $fadingEffect = true;
          break;
        case 'sections':
          $fadingEffect = 'sections';
          break;
        case 'slides':
          $fadingEffect = 'slides';
          break;
        default:
          $fadingEffect = false;
      }
      $attachments['#attached']['drupalSettings']['fullpagejs']['fadingEffect'] = $fadingEffect;
      $attachments['#attached']['drupalSettings']['fullpagejs']['fadingEffectKey'] = $settings->get('fadingEffectKey') ? $settings->get('fadingEffectKey') : '';
      $attachments['#attached']['drupalSettings']['fullpagejs']['responsiveWidth'] = $settings->get('responsiveWidth') ? intval($settings->get('responsiveWidth')) : 0;
      $attachments['#attached']['drupalSettings']['fullpagejs']['responsiveHeight'] = $settings->get('responsiveHeight') ? intval($settings->get('responsiveHeight')) : 0;
      $attachments['#attached']['drupalSettings']['fullpagejs']['responsiveSlides'] = $settings->get('responsiveSlides') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['responsiveSlidesKey'] = $settings->get('responsiveSlidesKey') ? $settings->get('responsiveSlidesKey') : '';
      $attachments['#attached']['drupalSettings']['fullpagejs']['continuousHorizontal'] = $settings->get('continuousHorizontal') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['continuousHorizontalKey'] = $settings->get('continuousHorizontalKey') ? $settings->get('continuousHorizontalKey') : '';
      switch($settings->get('interlockedSlides')) {
        case 'true':
          $interlockedSlides = true;
          break;
        case 'false':
          $interlockedSlides = false;
          break;
        default:
          $interlockedSlides = array_map('intval', explode(',', $settings->get('interlockedSlides')));
      }
      $attachments['#attached']['drupalSettings']['fullpagejs']['interlockedSlides'] = $interlockedSlides;
      $attachments['#attached']['drupalSettings']['fullpagejs']['interlockedSlidesKey'] = $settings->get('interlockedSlidesKey') ? $settings->get('interlockedSlidesKey') : '';
      $attachments['#attached']['drupalSettings']['fullpagejs']['scrollHorizontally'] = $settings->get('scrollHorizontally') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['scrollHorizontallyKey'] = $settings->get('scrollHorizontallyKey') ? $settings->get('scrollHorizontallyKey') : '';
      $attachments['#attached']['drupalSettings']['fullpagejs']['resetSliders'] = $settings->get('resetSliders') ? true : false;
      $attachments['#attached']['drupalSettings']['fullpagejs']['resetSlidersKey'] = $settings->get('resetSlidersKey') ? $settings->get('resetSlidersKey') : '';
    }
  }
}

/**
 * Implements hook_help().
 */
function fullpagejs_help($route_name, RouteMatchInterface $route_match) {
  switch ($route_name) {
    // Main module help for the fullpagejs module.
    case 'help.page.fullpagejs':
      $output = '';
      $output .= '<h3>' . t('About') . '</h3>';
      $output .= '<p>' . t('This module implements fullPage.js JavaScript plugin:') . ' <a href="https://github.com/alvarotrigo/fullPage.js/" target="_blank">https://github.com/alvarotrigo/fullPage.js/</a></p>';
      $output .= '<p>' . t('See the README.txt file in the module folder to know how to add the fullPage.js plugins extensions in your project.') . '</p>';
      return $output;

    default:
  }
}

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

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