project_wiki-1.x-dev/project_wiki.module

project_wiki.module
<?php

/**
 * @file
 * Primary module hooks for Project Wiki module.
 */

use Drupal\Component\Utility\Html;
use Drupal\Core\Routing\RouteMatchInterface;

/**
 * Implements hook_theme().
 */
function project_wiki_theme() {
  return [
    'project_wiki_list' => [
      'variables' => [
        'projectWikiEntries' => [],
        'items' => [],
      ],
    ],
    'project_wiki_entry' => [
      'variables' => [
        'provider' => NULL,
        'id' => NULL,
        'langcode' => NULL,
        'category' => NULL,
        'title' => NULL,
        'content' => NULL,
        'isDeveloperContent' => NULL,
      ],
    ],
  ];
}

/**
 * Implements hook_preprocess_THEME().
 */
function project_wiki_preprocess_project_wiki_list(&$variables) {
  foreach ($variables['projectWikiEntries'] as $projectWikiValueObject) {
    $variables['items'][] = [
      '#theme' => 'project_wiki_entry',
      '#provider' => $projectWikiValueObject->getProvider(),
      '#id' => $projectWikiValueObject->getId(),
      '#langcode' => $projectWikiValueObject->getLangcode(),
      '#category' => $projectWikiValueObject->getCategory(),
      '#title' => $projectWikiValueObject->getTitle(),
      '#content' => $projectWikiValueObject->getContent(),
      '#isDeveloperContent' => $projectWikiValueObject->isDeveloperContent(),
    ];
  }
}

/**
 * Implements hook_help().
 */
function project_wiki_help($route_name, RouteMatchInterface $route_match) {
  switch ($route_name) {
    case 'help.page.project_wiki':
      $text = file_get_contents(__DIR__ . '/README.md');
      if (!\Drupal::moduleHandler()->moduleExists('markdown')) {
        return '<pre>' . Html::escape($text) . '</pre>';
      }
      else {
        // Use the Markdown filter to render the README.
        $filter_manager = \Drupal::service('plugin.manager.filter');
        $settings = \Drupal::configFactory()->get('markdown.settings')->getRawData();
        $config = ['settings' => $settings];
        $filter = $filter_manager->createInstance('markdown', $config);
        return $filter->process($text, 'en');
      }
  }
  return NULL;
}

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

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