better_exposed_filters-8.x-4.x-dev/tests/modules/bef_test/bef_test.install

tests/modules/bef_test/bef_test.install
<?php

/**
 * @file
 * Provides install hooks for the BEF Test module.
 */

/**
 * Adds terms to the hierarchical "location" vocabulary.
 *
 * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
 *   Thrown if the entity type doesn't exist.
 * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
 *   Thrown if the storage handler couldn't be loaded.
 * @throws \Drupal\Core\Entity\EntityStorageException
 *   In case of failures an exception is thrown.
 */
function bef_test_install() {
  // Set up an example hierarchical terms in the "Location" vocab.
  $locations = [
    'United States' => [
      'California' => [
        'San Francisco',
        'San Diego',
        'Santa Barbara',
      ],
      'Oregon' => [
        'Portland',
        'Eugene',
      ],
      'Washington' => [
        'Seattle',
        'Spokane',
        'Walla Walla',
      ],
    ],
    'Canada' => [
      'British Columbia' => [
        'Vancouver',
        'Victoria',
        'Whistler',
      ],
      'Alberta' => [
        'Calgary',
        'Edmonton',
        'Lake Louise',
      ],
    ],
    'Mexico' => [],
  ];
  foreach ($locations as $country => $states) {
    $country_tid = _bef_test_add_term($country);
    if ($country_tid && !empty($states)) {
      foreach ($states as $state => $cities) {
        $state_tid = _bef_test_add_term($state, $country_tid);
        if ($state_tid && !empty($cities)) {
          foreach ($cities as $city) {
            _bef_test_add_term($city, $state_tid);
          }
        }
      }
    }
  }
}

/**
 * Adds a new term to the bef_test-location vocabulary.
 *
 * If a TID is specified in $parent, the new term is added as a child of that
 * term.
 *
 * @param string $name
 *   The name of the new term.
 * @param int $parent
 *   The (optional) TID of the parent term.
 *
 * @return int
 *   TID of the newly created term.
 *
 * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
 *   Thrown if the entity type doesn't exist.
 * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
 *   Thrown if the storage handler couldn't be loaded.
 * @throws \Drupal\Core\Entity\EntityStorageException
 *   In case of failures an exception is thrown.
 */
function _bef_test_add_term($name, $parent = 0) {
  $term = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->create([
    'vid' => 'bef_test_location',
    'name' => $name,
    'parent' => [$parent],
  ]);
  $term->save();
  return $term->id();
}

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

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