| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Hooks provided by the toolbar module.
 
-  */
 
- use Drupal\Core\Url;
 
- /**
 
-  * @addtogroup hooks
 
-  * @{
 
-  */
 
- /**
 
-  * Add items to the toolbar menu.
 
-  *
 
-  * The toolbar is a container for administrative and site-global interactive
 
-  * components.
 
-  *
 
-  * The toolbar provides a common styling for items denoted by the
 
-  * .toolbar-tab class.
 
-  *
 
-  * The toolbar provides a construct called a 'tray'. The tray is a container
 
-  * for content. The tray may be associated with a toggle in the administration
 
-  * bar. The toggle shows or hides the tray and is optimized for small and
 
-  * large screens. To create this association, hook_toolbar() returns one or
 
-  * more render elements of type 'toolbar_item', containing the toggle and tray
 
-  * elements in its 'tab' and 'tray' properties.
 
-  *
 
-  * The following properties are available:
 
-  *   - 'tab': A renderable array.
 
-  *   - 'tray': Optional. A renderable array.
 
-  *   - '#weight': Optional. Integer weight used for sorting toolbar items in
 
-  *     administration bar area.
 
-  *
 
-  * This hook is invoked in Toolbar::preRenderToolbar().
 
-  *
 
-  * @return
 
-  *   An array of toolbar items, keyed by unique identifiers such as 'home' or
 
-  *   'administration', or the short name of the module implementing the hook.
 
-  *   The corresponding value is a render element of type 'toolbar_item'.
 
-  *
 
-  * @see \Drupal\toolbar\Element\Toolbar::preRenderToolbar()
 
-  * @ingroup toolbar_tabs
 
-  */
 
- function hook_toolbar() {
 
-   $items = [];
 
-   // Add a search field to the toolbar. The search field employs no toolbar
 
-   // module theming functions.
 
-   $items['global_search'] = [
 
-     '#type' => 'toolbar_item',
 
-     'tab' => [
 
-       '#type' => 'search',
 
-       '#attributes' => [
 
-         'placeholder' => t('Search the site'),
 
-         'class' => ['search-global'],
 
-       ],
 
-     ],
 
-     '#weight' => 200,
 
-     // Custom CSS, JS or a library can be associated with the toolbar item.
 
-     '#attached' => [
 
-       'library' => [
 
-         'search/global',
 
-       ],
 
-     ],
 
-   ];
 
-   // The 'Home' tab is a simple link, which is wrapped in markup associated
 
-   // with a visual tab styling.
 
-   $items['home'] = [
 
-     '#type' => 'toolbar_item',
 
-     'tab' => [
 
-       '#type' => 'link',
 
-       '#title' => t('Home'),
 
-       '#url' => Url::fromRoute('<front>'),
 
-       '#options' => [
 
-         'attributes' => [
 
-           'title' => t('Home page'),
 
-           'class' => ['toolbar-icon', 'toolbar-icon-home'],
 
-         ],
 
-       ],
 
-     ],
 
-     '#weight' => -20,
 
-   ];
 
-   // A tray may be associated with a tab.
 
-   //
 
-   // When the tab is activated, the tray will become visible, either in a
 
-   // horizontal or vertical orientation on the screen.
 
-   //
 
-   // The tray should contain a renderable array. An optional #heading property
 
-   // can be passed. This text is written to a heading tag in the tray as a
 
-   // landmark for accessibility.
 
-   $items['commerce'] = [
 
-     '#type' => 'toolbar_item',
 
-     'tab' => [
 
-       '#type' => 'link',
 
-       '#title' => t('Shopping cart'),
 
-       '#url' => Url::fromRoute('cart'),
 
-       '#options' => [
 
-         'attributes' => [
 
-           'title' => t('Shopping cart'),
 
-         ],
 
-       ],
 
-     ],
 
-     'tray' => [
 
-       '#heading' => t('Shopping cart actions'),
 
-       'shopping_cart' => [
 
-         '#theme' => 'item_list',
 
-         '#items' => [/* An item list renderable array */],
 
-       ],
 
-     ],
 
-     '#weight' => 150,
 
-   ];
 
-   // The tray can be used to render arbitrary content.
 
-   //
 
-   // A renderable array passed to the 'tray' property will be rendered outside
 
-   // the administration bar but within the containing toolbar element.
 
-   //
 
-   // If the default behavior and styling of a toolbar tray is not desired, one
 
-   // can render content to the toolbar element and apply custom theming and
 
-   // behaviors.
 
-   $items['user_messages'] = [
 
-     // Include the toolbar_tab_wrapper to style the link like a toolbar tab.
 
-     // Exclude the theme wrapper if custom styling is desired.
 
-     '#type' => 'toolbar_item',
 
-     'tab' => [
 
-       '#type' => 'link',
 
-       '#theme' => 'user_message_toolbar_tab',
 
-       '#theme_wrappers' => [],
 
-       '#title' => t('Messages'),
 
-       '#url' => Url::fromRoute('user.message'),
 
-       '#options' => [
 
-         'attributes' => [
 
-           'title' => t('Messages'),
 
-         ],
 
-       ],
 
-     ],
 
-     'tray' => [
 
-       '#heading' => t('User messages'),
 
-       'messages' => [/* renderable content */],
 
-     ],
 
-     '#weight' => 125,
 
-   ];
 
-   return $items;
 
- }
 
- /**
 
-  * Alter the toolbar menu after hook_toolbar() is invoked.
 
-  *
 
-  * This hook is invoked by Toolbar::preRenderToolbar() immediately after
 
-  * hook_toolbar(). The toolbar definitions are passed in by reference. Each
 
-  * element of the $items array is one item returned by a module from
 
-  * hook_toolbar(). Additional items may be added, or existing items altered.
 
-  *
 
-  * @param $items
 
-  *   Associative array of toolbar menu definitions returned from hook_toolbar().
 
-  */
 
- function hook_toolbar_alter(&$items) {
 
-   // Move the User tab to the right.
 
-   $items['commerce']['#weight'] = 5;
 
- }
 
- /**
 
-  * @} End of "addtogroup hooks".
 
-  */
 
 
  |