epub_reader_framework-2.0.0-alpha2/epub_reader_framework.module

epub_reader_framework.module
<?php

/**
 * @file
 * Contains epub_reader_framework.module.
 */

use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\node\NodeInterface;

/**
 * Implements hook_help().
 */
function epub_reader_framework_help($route_name, RouteMatchInterface $route_match) {
  switch ($route_name) {
    case 'help.page.epub_reader_framework':
      $output = '';
      $output .= '<h3>' . t('About') . '</h3>';
      $output .= '<p>' . t('Provides a chapter-based publication system for display content from E-Pub InDesign files.') . '</p>';
      return $output;

    default:
  }
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function epub_reader_framework_form_node_reader_publication_edit_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  /** @var \Drupal\epub_reader_framework\Form\ReaderPublicationFormAlter $node_form_alter */
  $node_form_alter = \Drupal::service('epub_reader_framework.reader_publication_form_alter');
  $node_form_alter->formAlter($form, $form_state, $form_id);
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function epub_reader_framework_form_node_reader_publication_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  /** @var \Drupal\epub_reader_framework\Form\ReaderPublicationFormAlter $node_form_alter */
  $node_form_alter = \Drupal::service('epub_reader_framework.reader_publication_form_alter');
  $node_form_alter->formAlter($form, $form_state, $form_id);
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function epub_reader_framework_form_node_reader_chapter_edit_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  /** @var \Drupal\epub_reader_framework\Form\ReaderChapterFormAlter $node_form_alter */
  $node_form_alter = \Drupal::service('epub_reader_framework.reader_chapter_form_alter');
  $node_form_alter->formAlter($form, $form_state, $form_id);
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function epub_reader_framework_form_node_reader_chapter_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  /** @var \Drupal\epub_reader_framework\Form\ReaderChapterFormAlter $node_form_alter */
  $node_form_alter = \Drupal::service('epub_reader_framework.reader_chapter_form_alter');
  $node_form_alter->formAlter($form, $form_state, $form_id);
}

/**
 * Implements hook_ENTITY_TYPE_insert().
 */
function epub_reader_framework_node_insert(EntityInterface $entity) {
  /** @var \Drupal\epub_reader_framework\Entity\ReaderEntityPostsave $entity_postsave */
  $entity_postsave = \Drupal::service('epub_reader_framework.reader_entity_postsave');
  $entity_postsave->entityPostsave($entity);
}

/**
 * Implements hook_ENTITY_TYPE_update().
 */
function epub_reader_framework_node_update(EntityInterface $entity) {
  /** @var \Drupal\epub_reader_framework\Entity\ReaderEntityPostsave $entity_postsave */
  $entity_postsave = \Drupal::service('epub_reader_framework.reader_entity_postsave');
  $entity_postsave->entityPostsave($entity);
}

/**
 * Implements hook_preprocess_node().
 */
function epub_reader_framework_preprocess_node(&$variables) {
  $node = $variables['node'];
  if ($node instanceof NodeInterface && in_array($node->bundle(), [
    'reader_publication',
    'reader_chapter',
  ])) {

    // Allow modification of blocks to load for the reader navigation.
    $navigation_block_id = 'reader_navigation_block';
    $previous_next_block_id = 'reader_previous_next_block';
    \Drupal::moduleHandler()->alter('epub_reader_framework_navigation_block_id', $navigation_block_id);
    \Drupal::moduleHandler()->alter('epub_reader_framework_previous_next_block_id', $previous_next_block_id);

    if ($navigation_block_id || $previous_next_block_id) {
      /** @var \Drupal\Core\Block\BlockManagerInterface $block_manager */
      $block_manager = \Drupal::service('plugin.manager.block');

      // Add the reader navigation block.
      if ($navigation_block_id) {
        $plugin_block = $block_manager->createInstance($navigation_block_id, []);
        /** @var \Drupal\Core\Access\AccessResultInterface $access_result */
        $access_result = $plugin_block->access(\Drupal::currentUser());
        if (!is_object($access_result) || !$access_result->isAllowed()) {
          $variables['reader_navigation'] = $plugin_block->build();
        }
      }

      // Add the reader previous next block.
      if ($previous_next_block_id) {
        $plugin_block = $block_manager->createInstance($previous_next_block_id, []);
        /** @var \Drupal\Core\Access\AccessResultInterface $access_result */
        $access_result = $plugin_block->access(\Drupal::currentUser());
        if (!is_object($access_result) || !$access_result->isAllowed()) {
          $variables['reader_previous_next'] = $plugin_block->build();
        }
      }
    }

    // Add the navigation ajax callback commands.
    $variables['#attached']['library'][] = 'epub_reader_framework/epub_reader_framework.history-api';
    $variables['#attached']['library'][] = 'epub_reader_framework/epub_reader_framework.commands';
    $variables['#attached']['library'][] = 'epub_reader_framework/epub_reader_framework.reader_navigation_expand';
  }
}

/**
 * Implements hook_theme().
 */
function epub_reader_framework_theme() {
  return [
    'reader_navigation' => [
      'template' => 'reader-navigation',
      'variables' => [
        'chapter_items' => [],
      ],
    ],
    'reader_previous_next' => [
      'template' => 'reader-previous-next',
      'variables' => [
        'previous' => NULL,
        'next' => NULL,
      ],
    ],
  ];
}

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

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