Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Toolbar.php
Go to the documentation of this file.
1 <?php
8 
10 
11 class Toolbar implements ToolbarInterface
12 {
16  public function pushButtons(
17  \Magento\Framework\View\Element\AbstractBlock $context,
18  \Magento\Backend\Block\Widget\Button\ButtonList $buttonList
19  ) {
20  foreach ($buttonList->getItems() as $buttons) {
22  foreach ($buttons as $item) {
23  $containerName = $context->getNameInLayout() . '-' . $item->getButtonKey();
24 
25  $container = $this->createContainer($context->getLayout(), $containerName, $item);
26 
27  if ($item->hasData('name')) {
28  $item->setData('element_name', $item->getName());
29  }
30 
31  if ($container) {
32  $container->setContext($context);
33  $toolbar = $this->getToolbar($context, $item->getRegion());
34  $toolbar->setChild($item->getButtonKey(), $container);
35  }
36  }
37  }
38  }
39 
48  protected function createContainer(LayoutInterface $layout, $containerName, $buttonItem)
49  {
50  $container = $layout->createBlock(
51  \Magento\Backend\Block\Widget\Button\Toolbar\Container::class,
52  $containerName,
53  ['data' => ['button_item' => $buttonItem]]
54  );
55  return $container;
56  }
57 
65  protected function getToolbar(\Magento\Framework\View\Element\AbstractBlock $context, $region)
66  {
67  $parent = null;
68  $layout = $context->getLayout();
69  if (!$region || $region == 'header' || $region == 'footer') {
70  $parent = $context;
71  } elseif ($region == 'toolbar') {
72  $parent = $layout->getBlock('page.actions.toolbar');
73  } else {
74  $parent = $layout->getBlock($region);
75  }
76 
77  if ($parent) {
78  return $parent;
79  }
80  return $context;
81  }
82 }
createContainer(LayoutInterface $layout, $containerName, $buttonItem)
Definition: Toolbar.php:48
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
getToolbar(\Magento\Framework\View\Element\AbstractBlock $context, $region)
Definition: Toolbar.php:65
createBlock($type, $name='', array $arguments=[])
pushButtons(\Magento\Framework\View\Element\AbstractBlock $context, \Magento\Backend\Block\Widget\Button\ButtonList $buttonList)