Exemplo n.º 1
0
 /**
  * Add order information into GA block to render on checkout success pages
  *
  * @param EventObserver $observer
  * @return void
  */
 public function setGoogleAnalyticsOnOrderSuccessPageView(EventObserver $observer)
 {
     $orderIds = $observer->getEvent()->getOrderIds();
     if (empty($orderIds) || !is_array($orderIds)) {
         return;
     }
     $block = $this->_layout->getBlock('google_analytics');
     if ($block) {
         $block->setOrderIds($orderIds);
     }
 }
 /**
  * Add order information into GA block to render on checkout success pages
  *
  * @param EventObserver $observer
  * @return void
  */
 public function execute(EventObserver $observer)
 {
     $orderIds = $observer->getEvent()->getOrderIds();
     if (empty($orderIds) || !is_array($orderIds)) {
         return;
     }
     $block = $this->_layout->getBlock('magepal_gtm_datalayer');
     if ($block) {
         $block->setOrderIds($orderIds);
     }
 }
Exemplo n.º 3
0
 /**
  * Get template for button in order review page if HSS method was selected
  *
  * @param string $name template name
  * @param string $block buttons block name
  * @return string
  */
 public function getReviewButtonTemplate($name, $block)
 {
     $quote = $this->_checkoutSession->getQuote();
     if ($quote) {
         $payment = $quote->getPayment();
         if ($payment && in_array($payment->getMethod(), $this->_hssMethods)) {
             return $name;
         }
     }
     $blockObject = $this->_layout->getBlock($block);
     if ($blockObject) {
         return $blockObject->getTemplate();
     }
     return '';
 }
Exemplo n.º 4
0
 /**
  * Return button parent block
  *
  * @param \Magento\Framework\View\Element\AbstractBlock $context
  * @param string $region
  * @return \Magento\Backend\Block\Template
  */
 protected function getToolbar(\Magento\Framework\View\Element\AbstractBlock $context, $region)
 {
     $parent = null;
     if (!$region || $region == 'header' || $region == 'footer') {
         $parent = $context;
     } elseif ($region == 'toolbar') {
         $parent = $this->layout->getBlock('page.actions.toolbar');
     } else {
         $parent = $this->layout->getBlock($region);
     }
     if ($parent) {
         return $parent;
     }
     return $context;
 }
 public function testGridContainsMassactionColumn()
 {
     $this->_layout->getBlock('admin.test.grid')->toHtml();
     $gridMassactionColumn = $this->_layout->getBlock('admin.test.grid')->getColumnSet()->getChildBlock('massaction');
     $this->assertNotNull($gridMassactionColumn, 'Massaction column does not exist in the grid column set');
     $this->assertInstanceOf('Magento\\Backend\\Block\\Widget\\Grid\\Column', $gridMassactionColumn, 'Massaction column is not an instance of \\Magento\\Backend\\Block\\Widget\\Column');
 }
Exemplo n.º 6
0
 /**
  * @magentoAppIsolation enabled
  * @magentoAppArea frontend
  */
 public function testInitProductLayout()
 {
     $uniqid = uniqid();
     /** @var $product \Magento\Catalog\Model\Product */
     $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Product');
     $product->setTypeId(\Magento\Catalog\Model\Product\Type::DEFAULT_TYPE)->setId(99)->setUrlKey($uniqid);
     /** @var $objectManager \Magento\TestFramework\ObjectManager */
     $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
     $objectManager->get('Magento\\Framework\\Registry')->register('product', $product);
     $this->_helper->initProductLayout($product, $this->_controller);
     $rootBlock = $this->_layout->getBlock('root');
     $this->assertInstanceOf('Magento\\Theme\\Block\\Html', $rootBlock);
     $this->assertContains("product-{$uniqid}", $rootBlock->getBodyClass());
     $handles = $this->_layout->getUpdate()->getHandles();
     $this->assertContains('catalog_product_view_type_simple', $handles);
 }
Exemplo n.º 7
0
 /**
  * Retrieve block html
  *
  * @param   string $name
  * @return  string
  */
 public function getBlockHtml($name)
 {
     $block = $this->_layout->getBlock($name);
     if ($block) {
         return $block->toHtml();
     }
     return '';
 }
 /**
  * Get UI Element View
  *
  * @param string $uiElementName
  * @return UiComponentInterface
  * @throws \InvalidArgumentException
  */
 public function getUiElementView($uiElementName)
 {
     /** @var UiComponentInterface $view */
     $view = $this->layout->getBlock($uiElementName);
     if (!$view instanceof UiComponentInterface) {
         throw new \InvalidArgumentException(sprintf('UI Element "%s" must implement \\Magento\\Framework\\View\\Element\\UiComponentInterface', $uiElementName));
     }
     return $view;
 }
Exemplo n.º 9
0
 /**
  * Return HTML block with product price
  *
  * @param \Magento\Catalog\Model\Product $product
  * @return string
  */
 public function getProductPriceHtml(\Magento\Catalog\Model\Product $product)
 {
     $price = '';
     /** @var \Magento\Framework\Pricing\Render $priceRender */
     $priceRender = $this->layout->getBlock('product.price.render.default');
     if (!$priceRender) {
         $priceRender = $this->layout->createBlock('Magento\\Framework\\Pricing\\Render', 'product.price.render.default', ['data' => ['price_render_handle' => 'catalog_product_prices']]);
     }
     if ($priceRender) {
         $price = $priceRender->render('wishlist_configured_price', $product, ['zone' => \Magento\Framework\Pricing\Render::ZONE_ITEM_LIST]);
     }
     return $price;
 }
Exemplo n.º 10
0
 /**
  * Run all methods declared in persistent configuration
  *
  * @return $this
  */
 public function fire()
 {
     foreach ($this->collectInstancesToEmulate() as $type => $elements) {
         if (!is_array($elements)) {
             continue;
         }
         foreach ($elements as $info) {
             switch ($type) {
                 case 'blocks':
                     $this->fireOne($info, $this->_layout->getBlock($info['name_in_layout']));
                     break;
             }
         }
     }
     return $this;
 }
Exemplo n.º 11
0
 /**
  * Retrieve current applied page layout
  *
  * @return \Magento\Framework\Object|boolean
  */
 public function getCurrentPageLayout()
 {
     if ($this->_layout->getBlock('root') && $this->_layout->getBlock('root')->getLayoutCode()) {
         return $this->_config->getPageLayout($this->_layout->getBlock('root')->getLayoutCode());
     }
     // All loaded handles
     $handles = $this->_layout->getUpdate()->getHandles();
     // Handles used in page layouts
     $pageLayoutHandles = $this->_config->getPageLayoutHandles();
     // Applied page layout handles
     $appliedHandles = array_intersect($handles, $pageLayoutHandles);
     if (empty($appliedHandles)) {
         return false;
     }
     $currentHandle = array_pop($appliedHandles);
     $layoutCode = array_search($currentHandle, $pageLayoutHandles, true);
     return $this->_config->getPageLayout($layoutCode);
 }
Exemplo n.º 12
0
 public function testGetJs()
 {
     $expected = uniqid();
     $this->_layout->getBlock('child')->setJs($expected);
     $this->assertEquals($expected, $this->_block->getJs());
 }
Exemplo n.º 13
0
 /**
  * Emulate 'account links' block with persistent data
  *
  * @return void
  */
 protected function _applyAccountLinksPersistentData()
 {
     if (!$this->_layout->getBlock('header.additional')) {
         $this->_layout->addBlock('Magento\\Persistent\\Block\\Header\\Additional', 'header.additional');
     }
 }
Exemplo n.º 14
0
 /**
  * Obtain block object
  *
  * @param string $name
  * @return \Magento\Framework\View\Element\AbstractBlock
  */
 public function getBlock($name)
 {
     return $this->layout->getBlock($name);
 }
Exemplo n.º 15
0
 /**
  * @param string $nameElement
  * @param LayoutInterface $layout
  *
  * @return null|string
  */
 protected function _getElementPath(LayoutInterface $layout, $nameElement)
 {
     $parentName = $layout->getParentName($nameElement);
     if (!$parentName) {
         return null;
     }
     $parentBlock = $layout->getBlock($parentName);
     $pathName = $parentBlock ? $parentName : "[{$parentName}]";
     $path = isset($parentName) && $parentName !== false ? $this->_getElementPath($layout, $parentName) : null;
     return isset($path) ? $path . " / " . $pathName : $pathName;
 }