_isCatalogProduct = $isCatalogProduct; $this->_orPosition = $orPosition ?: ($isCatalogProduct ? self::POSITION_BEFORE : self::POSITION_AFTER); } /** * Add shortcut button * * @param Template $block * @return void */ public function addShortcut(Template $block) { if ($block instanceof ShortcutInterface) { $this->_shortcuts[] = $block; } } /** * Dispatch shortcuts container event * @return $this */ protected function _beforeToHtml() { $this->_eventManager->dispatch( 'shortcut_buttons_container', [ 'container' => $this, 'is_catalog_product' => $this->_isCatalogProduct, 'or_position' => $this->_orPosition ] ); return $this; } /** * Render all shortcuts * * @return string */ protected function _toHtml() { /** @var ShortcutInterface $shortcut */ foreach ($this->_shortcuts as $shortcut) { $this->setChild($shortcut->getAlias(), $shortcut); } return $this->getChildHtml(); } }