diff --git a/core/lib/Drupal/Core/Controller/ControllerBase.php b/core/lib/Drupal/Core/Controller/ControllerBase.php index 7eb368a..e08f88e 100644 --- a/core/lib/Drupal/Core/Controller/ControllerBase.php +++ b/core/lib/Drupal/Core/Controller/ControllerBase.php @@ -110,6 +110,11 @@ protected $formBuilder; /** + * @var + */ + protected $themeHandler; + + /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { diff --git a/core/lib/Drupal/Core/Extension/ThemeHandler.php b/core/lib/Drupal/Core/Extension/ThemeHandler.php index 82ebad9..96990d2 100644 --- a/core/lib/Drupal/Core/Extension/ThemeHandler.php +++ b/core/lib/Drupal/Core/Extension/ThemeHandler.php @@ -443,6 +443,14 @@ protected function doGetBaseThemes(array $themes, $theme, $used_themes = array() } /** + * {@inheritdoc} + */ + public function getName($theme) { + $themes = $this->listInfo(); + return String::checkPlain($themes[$theme]->info['name']); + } + + /** * Returns a system listing info object. * * @return \Drupal\Core\SystemListingInfo diff --git a/core/lib/Drupal/Core/Extension/ThemeHandlerInterface.php b/core/lib/Drupal/Core/Extension/ThemeHandlerInterface.php index eef3381..7e1ddd4 100644 --- a/core/lib/Drupal/Core/Extension/ThemeHandlerInterface.php +++ b/core/lib/Drupal/Core/Extension/ThemeHandlerInterface.php @@ -105,4 +105,15 @@ public function rebuildThemeData(); */ public function getBaseThemes(array $themes, $theme); + /** + * Gets the human readable name of a given theme. + * + * @param string $theme + * The machine name of the theme which title should be shown. + * + * @return string + * Returns the human readable name of the theme. + */ + public function getName($theme); + } diff --git a/core/modules/action/action.routing.yml b/core/modules/action/action.routing.yml index 09e1433..535830a 100644 --- a/core/modules/action/action.routing.yml +++ b/core/modules/action/action.routing.yml @@ -10,6 +10,7 @@ action.admin_add: path: '/admin/config/system/actions/add/{action_id}' defaults: _entity_form: 'action.add' + _title: 'Add' requirements: _permission: 'administer actions' @@ -17,6 +18,7 @@ action.admin_configure: path: '/admin/config/system/actions/configure/{action}' defaults: _entity_form: 'action.edit' + _title: 'Edit' requirements: _permission: 'administer actions' @@ -24,6 +26,7 @@ action.delete: path: '/admin/config/system/actions/configure/{action}/delete' defaults: _entity_form: 'action.delete' + _title: 'Delete' requirements: _permission: 'administer actions' diff --git a/core/modules/block/block.routing.yml b/core/modules/block/block.routing.yml index e7bbf22..bd7b5d3 100644 --- a/core/modules/block/block.routing.yml +++ b/core/modules/block/block.routing.yml @@ -2,6 +2,7 @@ block.admin_demo: path: '/admin/structure/block/demo/{theme}' defaults: _content: '\Drupal\block\Controller\BlockController::demo' + _title_callback: 'theme_handler:getName' requirements: _access_theme: 'TRUE' _permission: 'administer blocks' @@ -18,6 +19,7 @@ block.admin_edit: path: '/admin/structure/block/manage/{block}' defaults: _entity_form: 'block.default' + _title: 'Configure block' requirements: _entity_access: 'block.update' @@ -33,6 +35,7 @@ block.admin_display_theme: path: 'admin/structure/block/list/{theme}' defaults: _content: '\Drupal\block\Controller\BlockListController::listing' + _title_callback: 'theme_handler:getName' requirements: _access_theme: 'TRUE' _permission: 'administer blocks' diff --git a/core/modules/block/custom_block/custom_block.routing.yml b/core/modules/block/custom_block/custom_block.routing.yml index 622d08d..ba5b9ea 100644 --- a/core/modules/block/custom_block/custom_block.routing.yml +++ b/core/modules/block/custom_block/custom_block.routing.yml @@ -33,6 +33,7 @@ custom_block.edit: path: '/block/{custom_block}' defaults: _entity_form: 'custom_block.edit' + _title: 'Edit' requirements: _entity_access: 'custom_block.update' @@ -40,6 +41,7 @@ custom_block.delete: path: '/block/{custom_block}/delete' defaults: _entity_form: 'custom_block.delete' + _title: 'Title' requirements: _entity_access: 'custom_block.delete' @@ -47,6 +49,7 @@ custom_block.type_add: path: '/admin/structure/block/custom-blocks/types/add' defaults: _entity_form: 'custom_block_type.add' + _title: 'Add' requirements: _permission: 'administer blocks' @@ -54,6 +57,7 @@ custom_block.type_edit: path: '/admin/structure/block/custom-blocks/manage/{custom_block_type}' defaults: _entity_form: 'custom_block_type.edit' + _title: 'Edit' requirements: _entity_access: 'custom_block_type.update' diff --git a/core/modules/block/lib/Drupal/block/Controller/BlockController.php b/core/modules/block/lib/Drupal/block/Controller/BlockController.php index f2ebb41..1acddb3 100644 --- a/core/modules/block/lib/Drupal/block/Controller/BlockController.php +++ b/core/modules/block/lib/Drupal/block/Controller/BlockController.php @@ -47,4 +47,18 @@ public function demo($theme) { ); } + /** + * Get the title. + * + * @param string $theme + * The configured theme. + * + * @return string + * The human readable name of the theme. + */ + public function getTitle($theme) { + $themes = $this->themeHandler->listInfo(); + return String::checkPlain($themes[$theme]->info['name']); + } + } diff --git a/core/modules/editor/editor.routing.yml b/core/modules/editor/editor.routing.yml index 2a753f5..d379456 100644 --- a/core/modules/editor/editor.routing.yml +++ b/core/modules/editor/editor.routing.yml @@ -19,6 +19,7 @@ editor.image_dialog: path: '/editor/dialog/image/{filter_format}' defaults: _form: '\Drupal\editor\Form\EditorImageDialog' + _title: 'Upload image' requirements: _entity_access: 'filter_format.view' @@ -26,5 +27,6 @@ editor.link_dialog: path: '/editor/dialog/link/{filter_format}' defaults: _form: '\Drupal\editor\Form\EditorLinkDialog' + _title: 'Add link' requirements: _entity_access: 'filter_format.view' diff --git a/core/modules/filter/filter.routing.yml b/core/modules/filter/filter.routing.yml index 6dd8138..7ef9f43 100644 --- a/core/modules/filter/filter.routing.yml +++ b/core/modules/filter/filter.routing.yml @@ -35,6 +35,7 @@ filter.format_edit: path: '/admin/config/content/formats/manage/{filter_format}' defaults: _entity_form: filter_format.edit + _title_callback: '\Drupal\filter\Controller\FilterController::getLabel' requirements: _permission: 'administer filters' diff --git a/core/modules/filter/lib/Drupal/filter/Controller/FilterController.php b/core/modules/filter/lib/Drupal/filter/Controller/FilterController.php index ae8bc01..fe4d94f 100644 --- a/core/modules/filter/lib/Drupal/filter/Controller/FilterController.php +++ b/core/modules/filter/lib/Drupal/filter/Controller/FilterController.php @@ -37,4 +37,17 @@ function filterTips(FilterFormatInterface $filter_format = NULL) { return $build; } + /** + * Gets the label of a filter format. + * + * @param \Drupal\filter\FilterFormatInterface $filter_format + * The filter format. + * + * @return string + * The label of the filter format. + */ + public function getLabel(FilterFormatInterface $filter_format) { + return $filter_format->label(); + } + } diff --git a/core/modules/language/language.routing.yml b/core/modules/language/language.routing.yml index cda5754..d3ad61c 100644 --- a/core/modules/language/language.routing.yml +++ b/core/modules/language/language.routing.yml @@ -2,6 +2,7 @@ language.negotiation_url: path: '/admin/config/regional/language/detection/url' defaults: _form: 'Drupal\language\Form\NegotiationUrlForm' + _title: 'Configure URL language negotiation' requirements: _permission: 'administer languages' @@ -9,6 +10,7 @@ language.negotiation_session: path: '/admin/config/regional/language/detection/session' defaults: _form: 'Drupal\language\Form\NegotiationSessionForm' + _title: 'Configure session language negotiation' requirements: _permission: 'administer languages' @@ -16,6 +18,7 @@ language.negotiation_selected: path: '/admin/config/regional/language/detection/selected' defaults: _form: 'Drupal\language\Form\NegotiationSelectedForm' + _title: 'Configure selection language negotiation' requirements: _permission: 'administer languages' @@ -71,6 +74,7 @@ language.negotiation_browser_delete: path: '/admin/config/regional/language/detection/browser/delete/{browser_langcode}' defaults: _form: '\Drupal\language\Form\NegotiationBrowserDeleteForm' + _title: 'Delete' requirements: _permission: 'administer languages' diff --git a/core/modules/node/node.routing.yml b/core/modules/node/node.routing.yml index b16080c..761662a 100644 --- a/core/modules/node/node.routing.yml +++ b/core/modules/node/node.routing.yml @@ -51,6 +51,7 @@ node.delete_confirm: path: '/node/{node}/delete' defaults: _entity_form: 'node.delete' + _title: 'Delete' requirements: _entity_access: 'node.delete' diff --git a/core/modules/search/search.routing.yml b/core/modules/search/search.routing.yml index 8cdec79..f53ccb8 100644 --- a/core/modules/search/search.routing.yml +++ b/core/modules/search/search.routing.yml @@ -57,6 +57,7 @@ search.delete: path: '/admin/config/search/settings/manage/{search_page}/delete' defaults: _entity_form: 'search_page.delete' + _title: 'Delete' requirements: _entity_access: 'search_page.delete' diff --git a/core/modules/shortcut/shortcut.routing.yml b/core/modules/shortcut/shortcut.routing.yml index 9ec8d64..22dd0d1 100644 --- a/core/modules/shortcut/shortcut.routing.yml +++ b/core/modules/shortcut/shortcut.routing.yml @@ -50,6 +50,7 @@ shortcut.link_add: path: '/admin/config/user-interface/shortcut/manage/{shortcut_set}/add-link' defaults: _content: '\Drupal\shortcut\Controller\ShortcutController::addForm' + _title: 'Add link' requirements: _entity_create_access: 'shortcut:{shortcut_set}' @@ -57,6 +58,7 @@ shortcut.link_edit: path: '/admin/config/user-interface/shortcut/link/{shortcut}' defaults: _entity_form: 'shortcut.default' + _title: 'Edit' requirements: _entity_access: 'shortcut.update' @@ -64,6 +66,7 @@ shortcut.link_delete: path: '/admin/config/user-interface/shortcut/link/{shortcut}/delete' defaults: _entity_form: 'shortcut.delete' + _title: 'Delete' requirements: _entity_access: 'shortcut.delete' diff --git a/core/modules/system/lib/Drupal/system/Tests/Menu/BreadcrumbTest.php b/core/modules/system/lib/Drupal/system/Tests/Menu/BreadcrumbTest.php index 2ad1ab4..c6ff2f0 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Menu/BreadcrumbTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Menu/BreadcrumbTest.php @@ -137,7 +137,7 @@ function testBreadCrumbs() { // @todo Remove this part once we have a _title_callback, see // https://drupal.org/node/2076085. $trail += array( - "admin/config/content/formats/manage/$format_id" => Unicode::ucfirst(Unicode::strtolower($format->name)), + "admin/config/content/formats/manage/$format_id" => $format->label(), ); $this->assertBreadcrumb("admin/config/content/formats/manage/$format_id/disable", $trail); diff --git a/core/modules/system/system.routing.yml b/core/modules/system/system.routing.yml index 9be827e..652d912 100644 --- a/core/modules/system/system.routing.yml +++ b/core/modules/system/system.routing.yml @@ -337,6 +337,7 @@ system.theme_settings_theme: path: '/admin/appearance/settings/{theme}' defaults: _form: '\Drupal\system\Form\ThemeSettingsForm' + _title_callback: 'theme_handler:getName' requirements: _permission: 'administer themes' @@ -351,6 +352,7 @@ system.modules_uninstall: path: '/admin/modules/uninstall' defaults: _form: 'Drupal\system\Form\ModulesUninstallForm' + _title: 'Uninstall' requirements: _permission: 'administer modules' diff --git a/core/modules/taxonomy/taxonomy.routing.yml b/core/modules/taxonomy/taxonomy.routing.yml index 63b374d..4839c35 100644 --- a/core/modules/taxonomy/taxonomy.routing.yml +++ b/core/modules/taxonomy/taxonomy.routing.yml @@ -58,6 +58,7 @@ taxonomy.vocabulary_reset: path: '/admin/structure/taxonomy/manage/{taxonomy_vocabulary}/reset' defaults: _entity_form: 'taxonomy_vocabulary.reset' + _title: 'Reset' requirements: _permission: 'administer taxonomy' diff --git a/core/modules/user/user.routing.yml b/core/modules/user/user.routing.yml index f59aabc..2ad06a8 100644 --- a/core/modules/user/user.routing.yml +++ b/core/modules/user/user.routing.yml @@ -103,6 +103,7 @@ user.role_edit: path: '/admin/people/roles/manage/{user_role}' defaults: _entity_form: user_role.default + _title: 'Edit role' requirements: _entity_access: user_role.update @@ -110,7 +111,7 @@ user.role_delete: path: '/admin/people/roles/manage/{user_role}/delete' defaults: _entity_form: user_role.delete - _title: 'Edit role' + _title: 'Delete role' requirements: _entity_access: user_role.delete diff --git a/core/modules/views_ui/views_ui.routing.yml b/core/modules/views_ui/views_ui.routing.yml index ee6ad6c..d6b7ac1 100644 --- a/core/modules/views_ui/views_ui.routing.yml +++ b/core/modules/views_ui/views_ui.routing.yml @@ -126,6 +126,7 @@ views_ui.break_lock: path: '/admin/structure/views/view/{view}/break-lock' defaults: _entity_form: 'view.break_lock' + _title: 'Break lock' requirements: _permission: 'administer views'