navigation_plus-1.0.5/navigation_plus.install

navigation_plus.install
<?php

use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\user\Entity\User;

function _np_ensure_settings_not_null() {
  $users = User::loadMultiple();
  foreach ($users as $user) {
    $user->navigation_plus_settings->setValue([]);
    $user->save();
  }
}

/**
 * Implements hook_install().
 */
function navigation_plus_install($is_syncing) {
  _navigation_plus_add_settings_field();
  _np_ensure_settings_not_null();
}

/**
 * Implements hook_update_N().
 */
function navigation_plus_update_10000(&$sandbox) {
  _navigation_plus_add_settings_field();
}

/**
 * Ensure navigation_plus_settings is not null.
 */
function navigation_plus_update_10400(&$sandbox) {
  _np_ensure_settings_not_null();
}

function _navigation_plus_add_settings_field() {
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();

  if ($definition_update_manager->getFieldStorageDefinition('navigation_plus_settings', 'user')) {
    return;
  }

  $field_storage_definition = BaseFieldDefinition::create('map')
    ->setLabel(t('Navigation + Settings'))
    ->setDescription(t('Settings for Navigation + Edit Mode.'));

  $definition_update_manager->installFieldStorageDefinition('navigation_plus_settings', 'user', 'navigation_plus', $field_storage_definition);
}

/**
 * Implements hook_update_N().
 */
function navigation_plus_update_10001(&$sandbox) {
  _navigation_plus_add_settings_field();
}

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

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