|
@@ -0,0 +1,500 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+/**
|
|
|
+ * @file
|
|
|
+ * Provides extra menu links for the core drupal toolbar.
|
|
|
+ */
|
|
|
+
|
|
|
+use Drupal\Core\Routing\RouteMatchInterface;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implements hook_toolbar().
|
|
|
+ */
|
|
|
+function admin_toolbar_tools_toolbar() {
|
|
|
+ $items = array();
|
|
|
+ $items['admin_toolbar_tools'] = array(
|
|
|
+ '#type' => 'toolbar_item',
|
|
|
+ 'tab' => array(
|
|
|
+ '#type' => 'link',
|
|
|
+ '#attributes' => array(
|
|
|
+ 'class' => array('toolbar-icon', 'toolbar-icon-admin-toolbar-tools-help'),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ '#attached' => array('library' => array('admin_toolbar_tools/toolbar.icon'),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+
|
|
|
+ return $items;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implements hook_help().
|
|
|
+ */
|
|
|
+function admin_toolbar_tools_help($route_name, RouteMatchInterface $route_match) {
|
|
|
+ switch ($route_name) {
|
|
|
+ case 'help.page.admin_toolbar_tools':
|
|
|
+ $output = '';
|
|
|
+ $output .= '<p>' . t('The Admin Toolbar Extra Tools module comes packaged with the <a href="https://www.drupal.org/project/admin_toolbar"> Admin Toolbar</a> module and adds functionality to it. The additional functionality is accessed thru extra links on the main administration <a href="https://www.drupal.org/project/toolbar">Toolbar</a>. Some links to Admin Toolbar Extra Tools administration pages are located at the bottom of this page. For more information, see the <a href="https://www.drupal.org/node/2713693">online documentation for Admin Toolbar</a>') . '</p>';
|
|
|
+ $output .= '<h3>' . t('Uses') . '</h3>';
|
|
|
+ $output .= '<p>' . t('To use Admin Toolbar Extra Tools just install it like any other module. There is no other configuration required. The Admin Toolbar functionality can be further extended by installing complimentary modules. See <a href="https://www.drupal.org/project/admin_toolbar">Admin Toolbar</a> for a complete listing of these complimentary modules.') . '</p>';
|
|
|
+
|
|
|
+ return $output;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implements hook_menu_links_discovered_alter().
|
|
|
+ */
|
|
|
+function admin_toolbar_tools_menu_links_discovered_alter(&$links) {
|
|
|
+ $moduleHandler = \Drupal::moduleHandler();
|
|
|
+ $entityTypeManager = \Drupal::entityTypeManager();
|
|
|
+ $routeProvider = \Drupal::service('router.route_provider');
|
|
|
+ $routes = array();
|
|
|
+ foreach ($routeProvider->getAllRoutes() as $route_name => $route) {
|
|
|
+ $routes[] = $route_name;
|
|
|
+ }
|
|
|
+
|
|
|
+ $entityTypes = $entityTypeManager->getDefinitions();
|
|
|
+ $content_entities = array();
|
|
|
+ foreach ($entityTypes as $key => $entityType) {
|
|
|
+ if ($entityType->getBundleEntityType() && ($entityType->get('field_ui_base_route') != '')) {
|
|
|
+ $content_entities[$key] = array(
|
|
|
+ 'content_entity' => $key,
|
|
|
+ 'content_entity_bundle' => $entityType->getBundleEntityType(),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Adds common links to entities.
|
|
|
+ foreach ($content_entities as $module_name => $entities) {
|
|
|
+ $content_entity_bundle = $entities['content_entity_bundle'];
|
|
|
+ $content_entity = $entities['content_entity'];
|
|
|
+ foreach ($entityTypeManager->getStorage($content_entity_bundle)->loadMultiple() as $machine_name => $bundle) {
|
|
|
+ if (in_array('entity.' . $content_entity_bundle . '.edit_form', $routes)) {
|
|
|
+ $links['entity.' . $content_entity_bundle . '.edit_form.' . $machine_name] = array(
|
|
|
+ 'title' => $bundle->label(),
|
|
|
+ 'route_name' => 'entity.' . $content_entity_bundle . '.edit_form',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.' . $content_entity_bundle . '.collection',
|
|
|
+ 'route_parameters' => array($content_entity_bundle => $machine_name),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if ($moduleHandler->moduleExists('field_ui')) {
|
|
|
+ if (in_array('entity.' . $content_entity . '.field_ui_fields', $routes)) {
|
|
|
+ $links['entity.' . $content_entity . '.field_ui_fields' . $machine_name] = array(
|
|
|
+ 'title' => t('Manage fields'),
|
|
|
+ 'route_name' => 'entity.' . $content_entity . '.field_ui_fields',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.' . $content_entity_bundle . '.edit_form.' . $machine_name,
|
|
|
+ 'route_parameters' => array($content_entity_bundle => $machine_name),
|
|
|
+ 'weight' => 1,
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if (in_array('entity.entity_form_display.' . $content_entity . '.default', $routes)) {
|
|
|
+ $links['entity.entity_form_display.' . $content_entity . '.default' . $machine_name] = array(
|
|
|
+ 'title' => t('Manage form display'),
|
|
|
+ 'route_name' => 'entity.entity_form_display.' . $content_entity . '.default',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.' . $content_entity_bundle . '.edit_form.' . $machine_name,
|
|
|
+ 'route_parameters' => array($content_entity_bundle => $machine_name),
|
|
|
+ 'weight' => 2,
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if (in_array('entity.entity_view_display.' . $content_entity . '.default', $routes)) {
|
|
|
+ $links['entity.entity_view_display.' . $content_entity . '.default.' . $machine_name] = array(
|
|
|
+ 'title' => t('Manage display'),
|
|
|
+ 'route_name' => 'entity.entity_view_display.' . $content_entity . '.default',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.' . $content_entity_bundle . '.edit_form.' . $machine_name,
|
|
|
+ 'route_parameters' => array($content_entity_bundle => $machine_name),
|
|
|
+ 'weight' => 3,
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($moduleHandler->moduleExists('devel') && in_array('entity.' . $content_entity_bundle . '.devel_load', $routes)) {
|
|
|
+ $links['entity.' . $content_entity_bundle . '.devel_load.' . $machine_name] = array(
|
|
|
+ 'title' => t('Devel'),
|
|
|
+ 'route_name' => 'entity.' . $content_entity_bundle . '.devel_load',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.' . $content_entity_bundle . '.edit_form.' . $machine_name,
|
|
|
+ 'route_parameters' => array($content_entity_bundle => $machine_name),
|
|
|
+ 'weight' => 4,
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if (in_array('entity.' . $content_entity_bundle . '.delete_form', $routes)) {
|
|
|
+ $links['entity.' . $content_entity_bundle . '.delete_form.' . $machine_name] = array(
|
|
|
+ 'title' => t('Delete'),
|
|
|
+ 'route_name' => 'entity.' . $content_entity_bundle . '.delete_form',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.' . $content_entity_bundle . '.edit_form.' . $machine_name,
|
|
|
+ 'route_parameters' => array($content_entity_bundle => $machine_name),
|
|
|
+ 'weight' => 5,
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Add user links.
|
|
|
+ $links['user.admin_create'] = array(
|
|
|
+ 'title' => t('Add a new user'),
|
|
|
+ 'route_name' => 'user.admin_create',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user.collection',
|
|
|
+ );
|
|
|
+ $links['user.admin_permissions'] = array(
|
|
|
+ 'title' => t('Permissions'),
|
|
|
+ 'route_name' => 'user.admin_permissions',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user.collection',
|
|
|
+ );
|
|
|
+ $links['entity.user_role.collection'] = array(
|
|
|
+ 'title' => t('Roles'),
|
|
|
+ 'route_name' => 'entity.user_role.collection',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user.collection',
|
|
|
+ );
|
|
|
+ $links['user.role_add'] = array(
|
|
|
+ 'title' => t('Add a new role'),
|
|
|
+ 'route_name' => 'user.role_add',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user_role.collection',
|
|
|
+ 'weight' => -5,
|
|
|
+ );
|
|
|
+ if ($moduleHandler->moduleExists('field_ui')) {
|
|
|
+ $links['entity.user.field_ui_fields_'] = array(
|
|
|
+ 'title' => t('Manage fields'),
|
|
|
+ 'route_name' => 'entity.user.field_ui_fields',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user.admin_form',
|
|
|
+ );
|
|
|
+ $links['entity.entity_form_display.user.default_'] = array(
|
|
|
+ 'title' => t('Manage form display'),
|
|
|
+ 'route_name' => 'entity.entity_form_display.user.default',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user.admin_form',
|
|
|
+ );
|
|
|
+ $links['entity.entity_view_display.user.default_'] = array(
|
|
|
+ 'title' => t('Manage display'),
|
|
|
+ 'route_name' => 'entity.entity_view_display.user.default',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user.admin_form',
|
|
|
+ );
|
|
|
+ }
|
|
|
+ foreach (user_roles() as $role) {
|
|
|
+ $links['entity.user_role.edit_form.' . $role->id()] = array(
|
|
|
+ 'title' => $role->label(),
|
|
|
+ 'route_name' => 'entity.user_role.edit_form',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user_role.collection',
|
|
|
+ 'route_parameters' => array('user_role' => $role->id()),
|
|
|
+ );
|
|
|
+ $links['entity.user_role.edit_permissions_form.' . $role->id()] = array(
|
|
|
+ 'title' => t('Edit permissions'),
|
|
|
+ 'route_name' => 'entity.user_role.edit_permissions_form',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user_role.edit_form.' . $role->id(),
|
|
|
+ 'route_parameters' => array('user_role' => $role->id()),
|
|
|
+ );
|
|
|
+ $links['entity.user_role.delete_form.' . $role->id()] = array(
|
|
|
+ 'title' => t('Delete'),
|
|
|
+ 'route_name' => 'entity.user_role.delete_form',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user_role.edit_form.' . $role->id(),
|
|
|
+ 'route_parameters' => array('user_role' => $role->id()),
|
|
|
+ );
|
|
|
+ if ($moduleHandler->moduleExists('devel')) {
|
|
|
+ $links['entity.user_role.devel_load.' . $role->id()] = array(
|
|
|
+ 'title' => t('Devel'),
|
|
|
+ 'route_name' => 'entity.user_role.devel_load',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.user_role.edit_form.' . $role->id(),
|
|
|
+ 'route_parameters' => array('user_role' => $role->id()),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($moduleHandler->moduleExists('node')) {
|
|
|
+ $links['node.add_page']['parent'] = 'system.admin_content';
|
|
|
+ $links['node.type_add'] = array(
|
|
|
+ 'title' => t('Add content type'),
|
|
|
+ 'route_name' => 'node.type_add',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.node_type.collection',
|
|
|
+ 'weight' => -5
|
|
|
+ );
|
|
|
+ // Add node links for each content type.
|
|
|
+ foreach (node_type_get_names() as $machine_name => $label) {
|
|
|
+ $links['node.add.' . $machine_name] = array(
|
|
|
+ 'title' => $label,
|
|
|
+ 'route_name' => 'node.add',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'node.add_page',
|
|
|
+ 'route_parameters' => array('node_type' => $machine_name),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($moduleHandler->moduleExists('field_ui')) {
|
|
|
+ $links['field_ui.entity_form_mode_add'] = array(
|
|
|
+ 'title' => t('Add new form mode'),
|
|
|
+ 'route_name' => 'field_ui.entity_form_mode_add',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.entity_form_mode.collection',
|
|
|
+ );
|
|
|
+ $links['field_ui.entity_view_mode_add'] = array(
|
|
|
+ 'title' => t('Add new view mode'),
|
|
|
+ 'route_name' => 'field_ui.entity_view_mode_add',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.entity_view_mode.collection',
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($moduleHandler->moduleExists('taxonomy')) {
|
|
|
+ $links['entity.taxonomy_vocabulary.add_form'] = array(
|
|
|
+ 'title' => t('Add vocabulary'),
|
|
|
+ 'route_name' => 'entity.taxonomy_vocabulary.add_form',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.taxonomy_vocabulary.collection',
|
|
|
+ 'weight' => -5,
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($moduleHandler->moduleExists('menu_ui')) {
|
|
|
+ $links['entity.menu.add_form'] = array(
|
|
|
+ 'title' => t('Add menu'),
|
|
|
+ 'route_name' => 'entity.menu.add_form',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.menu.collection',
|
|
|
+ 'weight' => -50
|
|
|
+ );
|
|
|
+ // Adds links to /admin/structure/menu.
|
|
|
+ foreach (menu_ui_get_menus() as $machine_name => $label) {
|
|
|
+ $links['entity.menu.edit_form.' . $machine_name] = array(
|
|
|
+ 'title' => $label,
|
|
|
+ 'route_name' => 'entity.menu.edit_form',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.menu.collection',
|
|
|
+ 'route_parameters' => array('menu' => $machine_name),
|
|
|
+ );
|
|
|
+ $links['entity.menu.delete_form.' . $machine_name] = array(
|
|
|
+ 'title' => t('Delete'),
|
|
|
+ 'route_name' => 'entity.menu.delete_form',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.menu.edit_form.' . $machine_name,
|
|
|
+ 'route_parameters' => array('menu' => $machine_name),
|
|
|
+ );
|
|
|
+ if ($moduleHandler->moduleExists('devel')) {
|
|
|
+ $links['entity.menu.devel_load.' . $machine_name] = array(
|
|
|
+ 'title' => t('Devel'),
|
|
|
+ 'route_name' => 'entity.menu.devel_load',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.menu.edit_form.' . $machine_name,
|
|
|
+ 'route_parameters' => array('menu' => $machine_name),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ $links['entity.menu.add_link_form.' . $machine_name] = array(
|
|
|
+ 'title' => t('Add link'),
|
|
|
+ 'route_name' => 'entity.menu.add_link_form',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.menu.edit_form.' . $machine_name,
|
|
|
+ 'route_parameters' => array('menu' => $machine_name),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // If module block_content is enabled.
|
|
|
+ if ($moduleHandler->moduleExists('block_content')) {
|
|
|
+ $links['block_content.add_page'] = array(
|
|
|
+ 'title' => t('Add custom block'),
|
|
|
+ 'route_name' => 'block_content.add_page',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'block.admin_display',
|
|
|
+ 'weight' => -100
|
|
|
+ );
|
|
|
+ $links['entity.block_content.collection'] = array(
|
|
|
+ 'title' => t('Custom block library'),
|
|
|
+ 'route_name' => 'entity.block_content.collection',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'block.admin_display',
|
|
|
+ );
|
|
|
+ $links['entity.block_content_type.collection'] = array(
|
|
|
+ 'title' => t('Types'),
|
|
|
+ 'route_name' => 'entity.block_content_type.collection',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'block.admin_display',
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ // If module Contact is enabled.
|
|
|
+ if ($moduleHandler->moduleExists('contact')) {
|
|
|
+ $links['contact.form_add'] = array(
|
|
|
+ 'title' => t('Add contact form'),
|
|
|
+ 'route_name' => 'contact.form_add',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.contact_form.collection',
|
|
|
+ 'weight' => -5
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ // If module Update Manager is enabled.
|
|
|
+ if ($moduleHandler->moduleExists('update')) {
|
|
|
+ $links['update.module_update'] = array(
|
|
|
+ 'title' => t('Update'),
|
|
|
+ 'route_name' => 'update.module_update',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'system.modules_list',
|
|
|
+ );
|
|
|
+ $links['update.module_install'] = array(
|
|
|
+ 'title' => t('Install new module'),
|
|
|
+ 'route_name' => 'update.module_install',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'system.modules_list',
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ // If module Devel is enabled.
|
|
|
+ if ($moduleHandler->moduleExists('devel')) {
|
|
|
+ $links['admin_development'] = array(
|
|
|
+ 'title' => t('Development'),
|
|
|
+ 'route_name' => 'system.admin_config_development',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'admin_toolbar_tools.help',
|
|
|
+ 'weight' => '-8',
|
|
|
+ );
|
|
|
+ $links['admin_toolbar_tools.devel.admin_settings'] = array(
|
|
|
+ 'title' => t('Devel settings'),
|
|
|
+ 'route_name' => 'devel.admin_settings',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'admin_development',
|
|
|
+ 'weight' => '-1',
|
|
|
+ );
|
|
|
+ $links['admin_toolbar_tools.devel.configs_list'] = array(
|
|
|
+ 'title' => t('Config editor'),
|
|
|
+ 'route_name' => 'devel.configs_list',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'admin_development',
|
|
|
+ );
|
|
|
+ $links['admin_toolbar_tools.devel.reinstall'] = array(
|
|
|
+ 'title' => t('Reinstall modules'),
|
|
|
+ 'route_name' => 'devel.reinstall',
|
|
|
+ 'parent' => 'admin_development',
|
|
|
+ );
|
|
|
+ $links['admin_toolbar_tools.devel.menu_rebuild'] = array(
|
|
|
+ 'title' => t('Rebuild menu'),
|
|
|
+ 'route_name' => 'devel.menu_rebuild',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'admin_development',
|
|
|
+ );
|
|
|
+ $links['admin_toolbar_tools.devel.state_system_page'] = array(
|
|
|
+ 'title' => t('State editor'),
|
|
|
+ 'route_name' => 'devel.state_system_page',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'admin_development',
|
|
|
+ );
|
|
|
+ $links['admin_toolbar_tools.devel.theme_registry'] = array(
|
|
|
+ 'title' => t('Theme registry'),
|
|
|
+ 'route_name' => 'devel.theme_registry',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'admin_development',
|
|
|
+ );
|
|
|
+ $links['admin_toolbar_tools.devel.entity_info_page'] = array(
|
|
|
+ 'title' => t('Entity Info'),
|
|
|
+ 'route_name' => 'devel.entity_info_page',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'admin_development',
|
|
|
+ );
|
|
|
+ $links['admin_toolbar_tools.devel.execute_php'] = array(
|
|
|
+ 'title' => t('Execute PHP Code'),
|
|
|
+ 'route_name' => 'devel.execute_php',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'admin_development',
|
|
|
+ );
|
|
|
+ $links['admin_toolbar_tools.devel.session'] = array(
|
|
|
+ 'title' => t('Session viewer'),
|
|
|
+ 'route_name' => 'devel.session',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'admin_development',
|
|
|
+ );
|
|
|
+ $links['admin_toolbar_tools.devel.elements_page'] = array(
|
|
|
+ 'title' => t('Form API field types'),
|
|
|
+ 'route_name' => 'devel.elements_page',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'admin_development',
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ // If module Views Ui enabled.
|
|
|
+ if ($moduleHandler->moduleExists('views_ui')) {
|
|
|
+ $links['views_ui.add'] = array(
|
|
|
+ 'title' => t('Add new view'),
|
|
|
+ 'route_name' => 'views_ui.add',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'entity.view.collection',
|
|
|
+ 'weight' => -5,
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ $links['system.theme_settings_'] = array(
|
|
|
+ 'title' => t('Settings'),
|
|
|
+ 'route_name' => 'system.theme_settings',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'system.themes_page',
|
|
|
+ );
|
|
|
+
|
|
|
+ if ($moduleHandler->moduleExists('update')) {
|
|
|
+ $links['update.theme_install_'] = array(
|
|
|
+ 'title' => t('Install new theme'),
|
|
|
+ 'route_name' => 'update.theme_install',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'system.themes_page',
|
|
|
+ );
|
|
|
+ $links['update.theme_update_'] = array(
|
|
|
+ 'title' => t('Update'),
|
|
|
+ 'route_name' => 'update.theme_update',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'system.themes_page',
|
|
|
+ );
|
|
|
+ // Lists installed themes.
|
|
|
+ $installed_themes = installedThemes();
|
|
|
+ foreach ($installed_themes as $key_theme => $label_theme) {
|
|
|
+ $links['system.theme_settings_theme' . '.' . $key_theme] = array(
|
|
|
+ 'title' => t($label_theme),
|
|
|
+ 'route_name' => 'system.theme_settings_theme',
|
|
|
+ 'menu_name' => 'admin',
|
|
|
+ 'parent' => 'system.theme_settings_',
|
|
|
+ 'route_parameters' => array(
|
|
|
+ 'theme' => $key_theme,
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Return installed themes.
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+function installedThemes() {
|
|
|
+ $all_themes = \Drupal::service('theme_handler')->listInfo();
|
|
|
+ $themes_installed = array();
|
|
|
+ foreach ($all_themes as $key_theme => $theme) {
|
|
|
+ if (\Drupal::service('theme_handler')->hasUi($key_theme)) {
|
|
|
+ $themes_installed[$key_theme] = $theme->getName();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return $themes_installed;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Get all links related to entity
|
|
|
+ * @param $entity_type_id
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+function getLinks($entity_type_id) {
|
|
|
+ $entity = \Drupal::entityTypeManager()->getDefinition($entity_type_id);
|
|
|
+ // Get all links related to entity.
|
|
|
+ $links = $entity->getLinkTemplates();
|
|
|
+
|
|
|
+ return $links;
|
|
|
+}
|