admin_toolbar_content-1.0.0/admin_toolbar_content.install

admin_toolbar_content.install
<?php

/**
 * @file
 * Install, update and uninstall functions for the Admin Toolbar Content module.
 */

/**
 * Initialise the new configuration settings to their defaults.
 */
function admin_toolbar_content_update_9000() {
  $config = \Drupal::configFactory()->getEditable('admin_toolbar_content.settings');
  $config->set('recent_items', $config->get('recent_items') ?? 10);
  $config->set('hide_non_content_items', $config->get('hide_non_content_items') ?? 1);
  $config->set('show_account_link', $config->get('show_account_link') ?? '');
  $config->set('enhance_content_item', $config->get('enhance_content_item') ?? 1);
  $config->set('show_categories_item', $config->get('show_categories_item') ?? 1);
  $config->set('show_media_item', $config->get('show_media_item') ?? 1);
  $config->set('show_webforms_item', $config->get('show_webforms_item') ?? 1);
  $config->save();

  // Clear cache so admin menu can rebuild.
  \Drupal::service('plugin.manager.menu.link')->rebuild();
}

/**
 * Migrate config settings to v2.
 */
function admin_toolbar_content_update_9001() {
  $config = \Drupal::configFactory()->getEditable('admin_toolbar_content.settings');

  $data = [
    'common' => [
      'group_collections' => $config->get('group_collections') ?? '',
    ],
    'content' => [
      'enabled' => $config->get('enhance_content_item') ?? 1,
      'recent_items' => $config->get('recent_items') ?? 5,
      'recent_items_link' => $config->get('recent_items_link') ?? 'default',
      'hide_non_content_items' => $config->get('hide_non_content_items') ?? 1,
    ],
    'categories' => [
      'enabled' => $config->get('show_categories_item') ?? 1,
    ],
    'media' => [
      'enabled' => $config->get('show_media_item') ?? 1,
      'link_media_library' => 1,
    ],
    'webforms' => [
      'enabled' => $config->get('show_webforms_item') ?? 1,
    ],
    'menus' => [
      'enabled' => $config->get('show_menus_item') ?? 1,
    ],
    'drupal' => [
      'enabled' => 1,
      'account_links' => $config->get('show_account_link') ?? 'both',
    ],
  ];

  $config->setData($data);
  $config->save();

}

/**
 * Update config settings.
 */
function admin_toolbar_content_update_9002() {
  $config = \Drupal::configFactory()->getEditable('admin_toolbar_content.settings');

  // Correct the known default plugins to the new config structure.
  $data = [
    'common' => [
      'group_collections' => $config->get('common.group_collections') ?? '',
      'hide_empty_collections' => 0,
    ],
    'plugins' => [
      'content' => [
        'enabled' => (bool) $config->get('content.enabled') ?? TRUE,
        'recent_items' => [
          'number_of_items' => $config->get('content.recent_items') ?? 5,
          'hide_empty_list' => FALSE,
          'link' => $config->get('content.recent_items_link') ?? 'default',
        ],
        'hide_non_content_items' => (bool) $config->get('content.hide_non_content_items') ?? TRUE,
        'hide_content_type_items' => [
          'content_view' => 0,
          'admin_permissions' => 0,
        ],
      ],
      'categories' => [
        'enabled' => (bool) $config->get('categories.enabled') ?? TRUE,
      ],
      'media' => [
        'enabled' => (bool) $config->get('media.enabled') ?? TRUE,
        'link_media_library' => (bool) $config->get('media.link_media_library') ?? TRUE,
      ],
      'webform' => [
        'enabled' => (bool) $config->get('webforms.enabled') ?? TRUE,
      ],
      'menus' => [
        'enabled' => (bool) $config->get('menus.enabled') ?? TRUE,
      ],
      'drupal' => [
        'enabled' => (bool) $config->get('drupal.enabled') ?? TRUE,
        'account_links' => $config->get('drupal.account_links') ?? 'both',
      ],
    ],
  ];

  $raw_Data = $config->getRawData();
  $plugin_manager = \Drupal::service('admin_toolbar_content.manager');
  $plugins = $plugin_manager->getDefinitions();
  foreach ($plugins as $plugin_id => $definition) {
    if (isset($data['plugins'][$plugin_id])) {
      // Skip the default plugins, those are corrected above.
      continue;
    }
    // Custom plugins will just be copied to the new 'plugins' key.
    $data['plugins'][$plugin_id] = [];
    foreach ($raw_Data[$plugin_id] ?? [] as $key => $value) {
      $data['plugins'][$plugin_id][$key] = $value;
    }
  }

  $config->setData($data);
  $config->save();
}

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

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