Admin toolbar and config sync
This commit is contained in:
parent
0e15467384
commit
53d6173a5f
27 changed files with 1803 additions and 1 deletions
|
@ -0,0 +1,45 @@
|
|||
---SUMMARY---
|
||||
|
||||
Admin Toolbar Extra Tools provides menu links to administration pages or actions
|
||||
(eg. Flushing caches) that are not generated by Drupal core. It adds menu items
|
||||
that are not generated by Drupal core. For example there are no menu items for
|
||||
each content type by default or menu links to Manage fields on each entity types.
|
||||
That's the purpose of Admin Toolbar Extra Tools to add them.
|
||||
|
||||
For a full description visit project page:
|
||||
https://www.drupal.org/project/admin_toolbar
|
||||
|
||||
Bug reports, feature suggestions and latest developments:
|
||||
http://drupal.org/project/issues/admin_toolbar
|
||||
|
||||
|
||||
---REQUIREMENTS---
|
||||
|
||||
*Admin Toolbar.
|
||||
|
||||
|
||||
---INSTALLATION---
|
||||
|
||||
Install as usual.
|
||||
|
||||
Place the entirety of this directory in the /modules folder of your Drupal
|
||||
installation. Navigate to Administer > Extend. Check the 'Enabled' box next
|
||||
'Admin toolbar Extra Tools' and then click the 'Save Configuration' button at
|
||||
the bottom.
|
||||
|
||||
For help regarding installation, visit:
|
||||
https://www.drupal.org/documentation/install/modules-themes/modules-8
|
||||
|
||||
|
||||
---CONTACT---
|
||||
|
||||
Current Maintainers:
|
||||
*Wilfrid Roze (eme) - https://www.drupal.org/u/eme
|
||||
*Mohamed Anis Taktak (matio89) - https://www.drupal.org/u/matio89
|
||||
|
||||
|
||||
This project has been sponsored by:
|
||||
*emerya
|
||||
Founded in 2009, emerya is a human-sized company, dedicated to the design and
|
||||
implementation of web interfaces.
|
||||
Visit: http://http://emerya.fr/ for more information.
|
|
@ -0,0 +1,13 @@
|
|||
name: Admin Toolbar Extra Tools
|
||||
# core: 8.x
|
||||
description: Adds menu links to the Admin Toolbar.
|
||||
package: Administration
|
||||
type: module
|
||||
dependencies:
|
||||
- admin_toolbar
|
||||
|
||||
# Information added by Drupal.org packaging script on 2016-12-01
|
||||
version: '8.x-1.18'
|
||||
core: '8.x'
|
||||
project: 'admin_toolbar'
|
||||
datestamp: 1480614186
|
|
@ -0,0 +1,4 @@
|
|||
toolbar.icon:
|
||||
css:
|
||||
theme:
|
||||
css/tools.css: {}
|
|
@ -0,0 +1,91 @@
|
|||
admin_toolbar_tools.help:
|
||||
title: 'Tools'
|
||||
route_name: <front>
|
||||
menu_name: admin
|
||||
parent: system.admin
|
||||
weight: -100
|
||||
|
||||
system.admin_index:
|
||||
title: 'Index'
|
||||
route_name: system.admin_index
|
||||
menu_name: admin
|
||||
parent: admin_toolbar_tools.help
|
||||
weight: -100
|
||||
|
||||
system.run_cron:
|
||||
title: 'Run cron'
|
||||
route_name: admin_toolbar.run.cron
|
||||
menu_name: admin
|
||||
parent: admin_toolbar_tools.help
|
||||
weight: -8
|
||||
|
||||
system.db_update:
|
||||
title: 'Run updates'
|
||||
route_name: system.db_update
|
||||
menu_name: admin
|
||||
parent: admin_toolbar_tools.help
|
||||
weight: -6
|
||||
|
||||
system.modules_uninstall:
|
||||
title: 'Uninstall module'
|
||||
route_name: system.modules_uninstall
|
||||
menu_name: admin
|
||||
parent: system.modules_list
|
||||
|
||||
admin_toolbar_tools.flush:
|
||||
title: 'Flush all caches'
|
||||
route_name: admin_toolbar_tools.flush
|
||||
weight: -9
|
||||
parent: admin_toolbar_tools.help
|
||||
menu_name: admin
|
||||
|
||||
admin_toolbar_tools.cssjs:
|
||||
title: 'Flush CSS and Javascript'
|
||||
route_name: admin_toolbar_tools.cssjs
|
||||
parent: admin_toolbar_tools.flush
|
||||
menu_name: admin
|
||||
|
||||
admin_toolbar_tools.plugin:
|
||||
title: 'Flush plugins cache'
|
||||
route_name: admin_toolbar_tools.plugin
|
||||
parent: admin_toolbar_tools.flush
|
||||
menu_name: admin
|
||||
|
||||
admin_toolbar_tools.flush_static:
|
||||
title: 'Flush static cache'
|
||||
route_name: admin_toolbar_tools.flush_static
|
||||
parent: admin_toolbar_tools.flush
|
||||
menu_name: admin
|
||||
|
||||
admin_toolbar_tools.flush_menu:
|
||||
title: 'Flush routing and links cache'
|
||||
route_name: admin_toolbar_tools.flush_menu
|
||||
parent: admin_toolbar_tools.flush
|
||||
menu_name: admin
|
||||
|
||||
admin_toolbar_tools.flush_rendercache:
|
||||
title: 'Flush render cache'
|
||||
route_name: admin_toolbar_tools.flush_rendercache
|
||||
parent: admin_toolbar_tools.flush
|
||||
menu_name: admin
|
||||
|
||||
admin_toolbar_tools.drupalorg:
|
||||
title: 'Drupal.org'
|
||||
weight: -5
|
||||
route_name: admin_toolbar_tools.drupalorg
|
||||
parent: admin_toolbar_tools.help
|
||||
menu_name: admin
|
||||
|
||||
admin_toolbar_tools.listchanges:
|
||||
title: 'Change records for Drupal core'
|
||||
weight: -6
|
||||
route_name: admin_toolbar_tools.listchanges
|
||||
parent: admin_toolbar_tools.drupalorg
|
||||
menu_name: admin
|
||||
|
||||
admin_toolbar_tools.doc:
|
||||
title: 'D8 API documentation'
|
||||
weight: -5
|
||||
route_name: admin_toolbar_tools.doc
|
||||
parent: admin_toolbar_tools.drupalorg
|
||||
menu_name: admin
|
|
@ -0,0 +1,521 @@
|
|||
<?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) {
|
||||
// Normally, the edit form for the bundle would be its root link.
|
||||
$content_entity_bundle_root = NULL;
|
||||
if (in_array('entity.' . $content_entity_bundle . '.overview_form', $routes)) {
|
||||
// Some bundles have an overview/list form that make a better root link.
|
||||
$content_entity_bundle_root = 'entity.' . $content_entity_bundle . '.overview_form.' . $machine_name;
|
||||
$links[$content_entity_bundle_root] = array(
|
||||
'title' => $bundle->label(),
|
||||
'route_name' => 'entity.' . $content_entity_bundle . '.overview_form',
|
||||
'menu_name' => 'admin',
|
||||
'parent' => 'entity.' . $content_entity_bundle . '.collection',
|
||||
'route_parameters' => array($content_entity_bundle => $machine_name),
|
||||
);
|
||||
}
|
||||
if (in_array('entity.' . $content_entity_bundle . '.edit_form', $routes)) {
|
||||
$key = 'entity.' . $content_entity_bundle . '.edit_form.' . $machine_name;
|
||||
$links[$key] = 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 (empty($content_entity_bundle_root)) {
|
||||
$content_entity_bundle_root = $key;
|
||||
}
|
||||
else {
|
||||
$links[$key]['parent'] = $content_entity_bundle_root;
|
||||
$links[$key]['title'] = t('Edit');
|
||||
}
|
||||
}
|
||||
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' => $content_entity_bundle_root,
|
||||
'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' => $content_entity_bundle_root,
|
||||
'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' => $content_entity_bundle_root,
|
||||
'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' => $content_entity_bundle_root,
|
||||
'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' => $content_entity_bundle_root,
|
||||
'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;
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
admin_toolbar_tools.flush:
|
||||
path: '/admin/flush'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::flushAll'
|
||||
_title: 'Flush all caches'
|
||||
requirements:
|
||||
_permission: 'administer site configuration'
|
||||
_csrf_token: 'TRUE'
|
||||
admin_toolbar_tools.cssjs:
|
||||
path: '/admin/flush/cssjs'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::flush_js_css'
|
||||
_title: 'Flush Css and Javascript'
|
||||
requirements:
|
||||
_permission: 'administer site configuration'
|
||||
_csrf_token: 'TRUE'
|
||||
admin_toolbar_tools.plugin:
|
||||
path: '/admin/flush/plugin'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::flush_plugins'
|
||||
_title: 'Plugin'
|
||||
requirements:
|
||||
_permission: 'administer site configuration'
|
||||
_csrf_token: 'TRUE'
|
||||
admin_toolbar_tools.flush_static:
|
||||
path: '/admin/flush/static-caches'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::flush_static'
|
||||
_title: 'Static caches'
|
||||
requirements:
|
||||
_permission: 'administer site configuration'
|
||||
_csrf_token: 'TRUE'
|
||||
admin_toolbar_tools.flush_menu:
|
||||
path: '/admin/flush/menu'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::flush_menu'
|
||||
_title: 'Menu'
|
||||
requirements:
|
||||
_permission: 'administer site configuration'
|
||||
_csrf_token: 'TRUE'
|
||||
admin_toolbar_tools.flush_rendercache:
|
||||
path: '/admin/flush/rendercache'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::cacheRender'
|
||||
_title: 'Render cache'
|
||||
requirements:
|
||||
_permission: 'administer site configuration'
|
||||
_csrf_token: 'TRUE'
|
||||
admin_toolbar_tools.drupalorg:
|
||||
path: '/admin/drupal8'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::drupal_org'
|
||||
_title: 'Drupal'
|
||||
requirements:
|
||||
_permission: 'access administration pages'
|
||||
_csrf_token: 'TRUE'
|
||||
admin_toolbar_tools.listchanges:
|
||||
path: '/admin/drupal/list-changes'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::list_changes'
|
||||
_title: 'List changes'
|
||||
requirements:
|
||||
_permission: 'access administration pages'
|
||||
_csrf_token: 'TRUE'
|
||||
admin_toolbar_tools.doc:
|
||||
path: '/admin/drupal/documentation'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::documentation'
|
||||
_title: 'Documentation D8'
|
||||
requirements:
|
||||
_permission: 'access administration pages'
|
||||
_csrf_token: 'TRUE'
|
||||
admin_development:
|
||||
path: '/admin/development'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::development'
|
||||
_title: 'Development'
|
||||
requirements:
|
||||
_permission: 'administer site configuration'
|
||||
_csrf_token: 'TRUE'
|
||||
admin_toolbar.run.cron:
|
||||
path: '/run-cron'
|
||||
defaults:
|
||||
_controller: '\Drupal\admin_toolbar_tools\Controller\ToolbarController::runCron'
|
||||
_title: 'Run cron'
|
||||
requirements:
|
||||
_permission: 'administer site configuration'
|
||||
_csrf_token: 'TRUE'
|
|
@ -0,0 +1,16 @@
|
|||
.toolbar-icon-admin-toolbar-tools-help {
|
||||
text-indent: -9999px;
|
||||
}
|
||||
|
||||
.toolbar-icon-admin-toolbar-tools-help:before {
|
||||
background-image: url(../misc/icons/ffffff/d8-item.svg);
|
||||
padding-bottom: 0;
|
||||
padding-left: 4px;
|
||||
padding-right: 8px;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
.toolbar-icon-admin-toolbar-tools-help:active:before,
|
||||
.toolbar-icon-admin-toolbar-tools-help.active:before {
|
||||
background-image: url(../misc/icons/ffffff/d8-item.svg);
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMinYMin" viewBox="0 0 611 646"><path fill="#2ba9e0" d="M 161.14248,607.07981 C 135.931,577.51327 120.7662,539.33875 120.7662,497.60876 c 0,-87.01545 66.15644,-158.68624 151.648,-168.60413 -14.59612,-20.95856 -23.31588,-46.40824 -23.31588,-73.72922 0,-71.85792 58.95316,-129.86822 131.7442,-129.86822 6.06592,0 11.94228,0.37426 17.62908,1.12278 C 355.44148,89.85249 312.41136,52.61362 278.48012,12.00641 295.73008,190.15417 114.1316,125.40719 46.8378,289.70733 1.91208,399.73977 42.47792,535.78328 161.14248,607.07981 Z m 143.1178,-351.8044 c 0,41.72999 34.31036,75.41339 76.39268,75.41339 42.08232,0 76.58224,-33.87053 76.58224,-75.41339 0,-41.72999 -34.31036,-75.41339 -76.39268,-75.41339 -42.08232,0 -76.58224,33.6834 -76.58224,75.41339 z m 112.97776,124.81571 c 29.57136,30.50219 47.76912,71.85792 47.76912,117.51764 0,57.82317 -29.19224,108.72253 -73.73884,139.41185 82.4586,-25.07542 150.7002,-86.26693 181.21936,-160.37041 42.27188,-102.54724 2.8434,-179.6448 -63.12348,-249.63142 2.08516,8.98224 3.22252,18.52587 3.22252,28.0695 -0.18956,59.50734 -40.37628,109.47105 -95.34868,125.00284 z m -124.35136,18.90013 c -55.16196,0 -99.89812,44.16268 -99.89812,98.61751 0,54.45483 44.73616,98.61751 99.89812,98.61751 55.16196,0 99.89812,-44.16268 99.89812,-98.61751 0,-54.45483 -44.73616,-98.61751 -99.89812,-98.61751 z" /></svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,156 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\admin_toolbar_tools\Controller;
|
||||
|
||||
use Drupal\Core\Cache\CacheBackendInterface;
|
||||
use Drupal\Core\Controller\ControllerBase;
|
||||
use Drupal\Core\CronInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Drupal\Core\Menu\ContextualLinkManager;
|
||||
use Drupal\Core\Menu\LocalActionManager;
|
||||
use Drupal\Core\Menu\LocalTaskManager;
|
||||
use Drupal\Core\Menu\MenuLinkManager;
|
||||
|
||||
/**
|
||||
* Class ToolbarController
|
||||
* @package Drupal\admin_toolbar_tools\Controller
|
||||
*/
|
||||
class ToolbarController extends ControllerBase {
|
||||
|
||||
/**
|
||||
* The cron service.
|
||||
*
|
||||
* @var $cron \Drupal\Core\CronInterface
|
||||
*/
|
||||
protected $cron;
|
||||
protected $menuLinkManager;
|
||||
protected $contextualLinkManager;
|
||||
protected $localTaskLinkManager;
|
||||
protected $localActionLinkManager;
|
||||
protected $cacheRender;
|
||||
|
||||
/**
|
||||
* Constructs a CronController object.
|
||||
*
|
||||
* @param \Drupal\Core\CronInterface $cron
|
||||
* The cron service.
|
||||
*/
|
||||
public function __construct(CronInterface $cron,
|
||||
MenuLinkManager $menuLinkManager,
|
||||
ContextualLinkManager $contextualLinkManager,
|
||||
LocalTaskManager $localTaskLinkManager,
|
||||
LocalActionManager $localActionLinkManager,
|
||||
CacheBackendInterface $cacheRender) {
|
||||
$this->cron = $cron;
|
||||
$this->menuLinkManager = $menuLinkManager;
|
||||
$this->contextualLinkManager = $contextualLinkManager;
|
||||
$this->localTaskLinkManager = $localTaskLinkManager;
|
||||
$this->localActionLinkManager = $localActionLinkManager;
|
||||
$this->cacheRender = $cacheRender;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static function create(ContainerInterface $container) {
|
||||
return new static(
|
||||
$container->get('cron'),
|
||||
$container->get('plugin.manager.menu.link'),
|
||||
$container->get('plugin.manager.menu.contextual_link'),
|
||||
$container->get('plugin.manager.menu.local_task'),
|
||||
$container->get('plugin.manager.menu.local_action'),
|
||||
$container->get('cache.render')
|
||||
);
|
||||
}
|
||||
|
||||
// Reload the previous page.
|
||||
public function reload_page() {
|
||||
$request = \Drupal::request();
|
||||
if($request->server->get('HTTP_REFERER')) {
|
||||
return $request->server->get('HTTP_REFERER');
|
||||
}
|
||||
else{
|
||||
return '/';
|
||||
}
|
||||
}
|
||||
|
||||
// Flushes all caches.
|
||||
public function flushAll() {
|
||||
drupal_flush_all_caches();
|
||||
drupal_set_message($this->t('All caches cleared.'));
|
||||
return new RedirectResponse($this->reload_page());
|
||||
}
|
||||
|
||||
// Flushes css and javascript caches.
|
||||
public function flush_js_css() {
|
||||
\Drupal::state()
|
||||
->set('system.css_js_query_string', base_convert(REQUEST_TIME, 10, 36));
|
||||
drupal_set_message($this->t('CSS and JavaScript cache cleared.'));
|
||||
return new RedirectResponse($this->reload_page());
|
||||
}
|
||||
|
||||
// Flushes plugins caches.
|
||||
public function flush_plugins() {
|
||||
\Drupal::service('plugin.cache_clearer')->clearCachedDefinitions();
|
||||
drupal_set_message($this->t('Plugins cache cleared.'));
|
||||
return new RedirectResponse($this->reload_page());
|
||||
}
|
||||
|
||||
// Resets all static caches.
|
||||
public function flush_static() {
|
||||
drupal_static_reset();
|
||||
drupal_set_message($this->t('Static cache cleared.'));
|
||||
return new RedirectResponse($this->reload_page());
|
||||
}
|
||||
|
||||
// Clears all cached menu data.
|
||||
public function flush_menu() {
|
||||
menu_cache_clear_all();
|
||||
$this->menuLinkManager->rebuild();
|
||||
$this->contextualLinkManager->clearCachedDefinitions();
|
||||
$this->localTaskLinkManager->clearCachedDefinitions();
|
||||
$this->localActionLinkManager->clearCachedDefinitions();
|
||||
drupal_set_message($this->t('Routing and links cache cleared.'));
|
||||
return new RedirectResponse($this->reload_page());
|
||||
}
|
||||
|
||||
// Links to drupal.org home page.
|
||||
public function drupal_org() {
|
||||
$response = new RedirectResponse("https://www.drupal.org");
|
||||
$response->send();
|
||||
return $response;
|
||||
}
|
||||
|
||||
// Displays the administration link Development.
|
||||
public function development() {
|
||||
return new RedirectResponse('/admin/structure/menu/');
|
||||
}
|
||||
|
||||
// Access to Drupal 8 changes (list changes of the different versions of drupal core).
|
||||
public function list_changes() {
|
||||
$response = new RedirectResponse("https://www.drupal.org/list-changes");
|
||||
$response->send();
|
||||
return $response;
|
||||
}
|
||||
|
||||
// Adds a link to the Drupal 8 documentation.
|
||||
public function documentation() {
|
||||
$response = new RedirectResponse("https://api.drupal.org/api/drupal/8");
|
||||
$response->send();
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function runCron() {
|
||||
$this->cron->run();
|
||||
drupal_set_message($this->t('Cron ran successfully.'));
|
||||
return new RedirectResponse($this->reload_page());
|
||||
}
|
||||
|
||||
public function cacheRender() {
|
||||
$this->cacheRender->invalidateAll();
|
||||
drupal_set_message($this->t('Render cache cleared.'));
|
||||
return new RedirectResponse($this->reload_page());
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\admin_toolbar_tools\Tests;
|
||||
|
||||
use Drupal\simpletest\WebTestBase;
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the existence of Admin Toolbar tools new links.
|
||||
*
|
||||
* @group admin_toolbar
|
||||
*/
|
||||
class AdminToolbarToolsAlterTest extends WebTestBase {
|
||||
|
||||
/**
|
||||
* Modules to enable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $modules = ['toolbar', 'admin_toolbar', 'admin_toolbar_tools'];
|
||||
|
||||
/**
|
||||
* A test user with permission to access the administrative toolbar.
|
||||
*
|
||||
* @var \Drupal\user\UserInterface
|
||||
*/
|
||||
protected $adminUser;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
// Create and log in an administrative user.
|
||||
$this->adminUser = $this->drupalCreateUser([
|
||||
'access toolbar',
|
||||
'access administration pages',
|
||||
]);
|
||||
$this->drupalLogin($this->adminUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for a the hover of sub menus.
|
||||
*/
|
||||
function testAdminToolbarTools() {
|
||||
// Assert that special menu items are present in the HTML.
|
||||
$this->assertRaw('class="toolbar-icon toolbar-icon-admin-toolbar-tools-flush"');
|
||||
}
|
||||
}
|
Reference in a new issue