ds-8.x-3.9/tests/modules/ds_test/ds_test.module

tests/modules/ds_test/ds_test.module
<?php

/**
 * @file
 * Display Suite test module.
 */

use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Render\Element;

/**
 * Implements hook_theme_suggestions_alter().
 */
function ds_test_theme_suggestions_alter(&$suggestions, $variables, $base_theme_hook) {
  if (isset($variables['content']) && is_array($variables['content']) && isset($variables['content']['#ds_configuration']) && $base_theme_hook != 'ds_entity_view') {
    if (NULL !== \Drupal::requestStack()->getCurrentRequest()->query->get('store_suggestions')) {
      \Drupal::cache()->set('ds_test_suggestions', $suggestions);
    }
  }
}

/**
 * Helper function to return the tag name based on tid.
 */
function ds_test_get_tag_name($raw_value, $object) {
  $entity_manager = \Drupal::entityTypeManager();
  /** @var \Drupal\taxonomy\TermInterface $term */
  $term = $entity_manager->getStorage('taxonomy_term')->load($raw_value);
  return $term->label();
}

/**
 * Helper function to return advanced view mode.
 */
function ds_test_ds_views_row_render_entity($entity, $view_mode) {
  return 'Advanced display for id ' . $entity->id();
}

/**
 * Implements hook_entity_extra_field_info().
 */
function ds_test_entity_extra_field_info() {
  $extra = [];

  // Register a single field to test that
  // extra fields in the hidden region are really hidden.
  $extra['node']['article']['display']['heavy_field'] = [
    'label' => t('Heavy extra test field'),
    'weight' => 10,
  ];

  return $extra;
}

/**
 * Implements hook_entity_view().
 */
function ds_test_entity_view(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) {
  $build['ds_extras_extra_test_field'] = [
    '#markup' => 'This is an extra field made available through "Extra fields" functionality.',
    '#weight' => 10,
  ];

  // Check whether the heavy extra field is rendered or not.
  if ($entity->getEntityTypeId() == 'node' && $entity->bundle() == 'article') {
    $heavy_field = $display->getComponent('heavy_field');
    if ($heavy_field) {
      $build['heavy_field'] = [
        '#markup' => 'Heavy field',
        '#weight' => $heavy_field['weight'],
      ];
    }
  }
}

/**
 * Implements hook_layout_alter().
 */
function ds_test_layout_alter(&$layouts) {
  unset($layouts['ds_3col_stacked_equal_width']);
}

/**
 * Implements hook_ds_fields_info_alter().
 */
function ds_test_ds_fields_info_alter(&$definitions) {
  if (isset($definitions['test_field_2'])) {
    $definitions['test_field_2']['title'] = 'Field altered';
  }
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function ds_test_form_entity_view_display_edit_form_alter(&$form, FormStateInterface $form_state) {
  foreach (Element::children($form['fields']) as $key) {
    if (isset($form['fields'][$key]['settings_edit'])) {
      $settings = $form['fields'][$key]['settings_edit'];
      if (!empty($settings)) {
        $form['fields'][$key]['settings_edit']['#type'] = 'submit';
        $form['fields'][$key]['settings_edit']['#value'] = 'edit ' . $key;
      }
    }
  }
}

/**
 * Implements hook_ds_pre_render_alter().
 */
function ds_test_ds_pre_render_alter(&$layout_render_array, array $context, array &$vars) {
  /** @var EntityInterface $entity */
  $entity = $context['entity'];
  if (isset($entity->title->value) && $entity->title->value === 'Alter me!') {
    $layout_render_array['left'][] = ['#markup' => 'cool!', '#weight' => 20];
  }

  if ($entity->getEntityTypeId() == 'user') {
    $vars['attributes']['class'][] = 'entity-label-class-' . $entity->label();
  }
}

/**
 * Implements hook_install().
 */
function ds_test_install() {
  module_set_weight('ds_test', 10);
}

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

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