Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0 / 0 |
|
100.00% |
0 / 0 |
CRAP | |
0.00% |
0 / 77 |
|
| hook_toolbar | |
0.00% |
0 / 1 |
0 | |
0.00% |
0 / 75 |
|||
| hook_toolbar_alter | |
0.00% |
0 / 1 |
0 | |
0.00% |
0 / 2 |
|||
| <?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_pre_render(). | |
| * | |
| * @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 toolbar_pre_render() | |
| * @ingroup toolbar_tabs | |
| */ | |
| function hook_toolbar() { | |
| $items = array(); | |
| // Add a search field to the toolbar. The search field employs no toolbar | |
| // module theming functions. | |
| $items['global_search'] = array( | |
| '#type' => 'toolbar_item', | |
| 'tab' => array( | |
| '#type' => 'search', | |
| '#attributes' => array( | |
| 'placeholder' => t('Search the site'), | |
| 'class' => array('search-global'), | |
| ), | |
| ), | |
| '#weight' => 200, | |
| // Custom CSS, JS or a library can be associated with the toolbar item. | |
| '#attached' => array( | |
| 'library' => array( | |
| 'search/global', | |
| ), | |
| ), | |
| ); | |
| // The 'Home' tab is a simple link, which is wrapped in markup associated | |
| // with a visual tab styling. | |
| $items['home'] = array( | |
| '#type' => 'toolbar_item', | |
| 'tab' => array( | |
| '#type' => 'link', | |
| '#title' => t('Home'), | |
| '#url' => Url::fromRoute('<front>'), | |
| '#options' => array( | |
| 'attributes' => array( | |
| 'title' => t('Home page'), | |
| 'class' => array('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'] = array( | |
| '#type' => 'toolbar_item', | |
| 'tab' => array( | |
| '#type' => 'link', | |
| '#title' => t('Shopping cart'), | |
| '#url' => Url::fromRoute('cart'), | |
| '#options' => array( | |
| 'attributes' => array( | |
| 'title' => t('Shopping cart'), | |
| ), | |
| ), | |
| ), | |
| 'tray' => array( | |
| '#heading' => t('Shopping cart actions'), | |
| 'shopping_cart' => array( | |
| '#theme' => 'item_list', | |
| '#items' => array( /* 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'] = array( | |
| // 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' => array( | |
| '#type' => 'link', | |
| '#theme' => 'user_message_toolbar_tab', | |
| '#theme_wrappers' => array(), | |
| '#title' => t('Messages'), | |
| '#url' => Url::fromRoute('user.message'), | |
| '#options' => array( | |
| 'attributes' => array( | |
| 'title' => t('Messages'), | |
| ), | |
| ), | |
| ), | |
| 'tray' => array( | |
| '#heading' => t('User messages'), | |
| 'messages' => array(/* renderable content */), | |
| ), | |
| '#weight' => 125, | |
| ); | |
| return $items; | |
| } | |
| /** | |
| * Alter the toolbar menu after hook_toolbar() is invoked. | |
| * | |
| * This hook is invoked by toolbar_view() 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". | |
| */ |