/** * Retrieve additional html and put it at the end of element html * * @return string */ public function getAfterElementHtml() { $html = parent::getAfterElementHtml(); if ($this->getIsWysiwygEnabled()) { $disabled = $this->getDisabled() || $this->getReadonly(); $html .= $this->_layout->createBlock('Magento\\Backend\\Block\\Widget\\Button', '', array('data' => array('label' => __('WYSIWYG Editor'), 'type' => 'button', 'disabled' => $disabled, 'class' => $disabled ? 'disabled action-wysiwyg' : 'action-wysiwyg', 'onclick' => 'catalogWysiwygEditor.open(\'' . $this->_backendData->getUrl('catalog/product/wysiwyg') . '\', \'' . $this->getHtmlId() . '\')')))->toHtml(); $html .= <<<HTML <script type="text/javascript"> jQuery('#{$this->getHtmlId()}') .addClass('wysiwyg-editor') .data( 'wysiwygEditor', new tinyMceWysiwygSetup( '{$this->getHtmlId()}', { settings: { theme_advanced_buttons1 : 'bold,italic,|,justifyleft,justifycenter,justifyright,|,' + 'fontselect,fontsizeselect,|,forecolor,backcolor,|,link,unlink,image,|,bullist,numlist,|,code', theme_advanced_buttons2: null, theme_advanced_buttons3: null, theme_advanced_buttons4: null, theme_advanced_statusbar_location: null } } ).turnOn() ); </script> HTML; } return $html; }
protected function setUp() { parent::setUp(); $this->_layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\LayoutInterface'); $this->_theme = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Framework\\View\\Design\\ThemeInterface'); $this->_theme->setType(\Magento\Framework\View\Design\ThemeInterface::TYPE_VIRTUAL); $this->_block = $this->_layout->createBlock('Magento\\Theme\\Block\\Adminhtml\\System\\Design\\Theme\\Edit\\Tab\\General'); }
/** * Adds Google Experiment tab to the category edit page * * @param EventObserver $observer * @return void */ public function execute(EventObserver $observer) { if ($this->_helper->isGoogleExperimentActive()) { $block = $this->_layout->createBlock('Magento\\GoogleOptimizer\\Block\\Adminhtml\\Catalog\\Category\\Edit\\Tab\\Googleoptimizer', 'google-experiment-form'); /** @var $tabs \Magento\Catalog\Block\Adminhtml\Category\Tabs */ $tabs = $observer->getEvent()->getTabs(); $tabs->addTab('google-experiment-tab', ['label' => __('Category View Optimization'), 'content' => $block->toHtml()]); } }
protected function setUp() { $this->_payment = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\RecurringPayment\\Model\\Payment'); /** @var $objectManager \Magento\TestFramework\ObjectManager */ $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $objectManager->get('Magento\\Framework\\Registry')->register('current_recurring_payment', $this->_payment); $this->_layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\LayoutInterface'); $this->_block = $this->_layout->createBlock('Magento\\RecurringPayment\\Block\\Payment\\View', 'block'); }
/** * @SuppressWarnings(PHPMD.UnusedFormalParameter) * @param \Magento\LayeredNavigation\Block\Navigation\FilterRenderer $subject * @param \Closure $proceed * @param \Magento\Catalog\Model\Layer\Filter\FilterInterface $filter * @return mixed * @throws \Magento\Framework\Exception\LocalizedException */ public function aroundRender(\Magento\LayeredNavigation\Block\Navigation\FilterRenderer $subject, \Closure $proceed, \Magento\Catalog\Model\Layer\Filter\FilterInterface $filter) { if ($filter->hasAttributeModel()) { if ($this->swatchHelper->isSwatchAttribute($filter->getAttributeModel())) { return $this->layout->createBlock($this->block)->setSwatchFilter($filter)->toHtml(); } } return $proceed($filter); }
/** * Get renderer for element * * @param string $elementClassName * @param string $rendererName * @return RendererInterface * @throws \Magento\Framework\Exception\LocalizedException */ public function create($elementClassName, $rendererName) { if (!isset($this->_rendererByElement[$elementClassName])) { throw new \Magento\Framework\Exception\LocalizedException(__('No renderer registered for elements of class "%1"', $elementClassName)); } $rendererClass = $this->_rendererByElement[$elementClassName]; $renderer = $this->_layout->createBlock($rendererClass, $rendererName); return $renderer; }
protected function setUp() { parent::setUp(); $this->_layoutMock = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\LayoutInterface'); $context = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Backend\\Block\\Template\\Context', ['layout' => $this->_layoutMock]); $this->_block = $this->_layoutMock->createBlock('Magento\\Backend\\Block\\Widget\\Grid\\Extended', 'grid', ['context' => $context]); $this->_block->addColumn('column1', ['id' => 'columnId1']); $this->_block->addColumn('column2', ['id' => 'columnId2']); }
/** * Prepares content block * * @return string */ public function getContentHtml() { /* @var $content \Magento\Catalog\Block\Adminhtml\Product\Helper\Form\Gallery\Content */ $content = $this->_layout->createBlock('Magento\\Catalog\\Block\\Adminhtml\\Product\\Helper\\Form\\Gallery\\Content'); $content->setId($this->getHtmlId() . '_content')->setElement($this); $galleryJs = $content->getJsObjectName(); $content->getUploader()->getConfig()->setMegiaGallery($galleryJs); return $content->toHtml(); }
/** * @covers \Magento\Sales\Block\Adminhtml\Report\Filter\Form\Coupon::_afterToHtml */ public function testAfterToHtml() { /** @var $block \Magento\Sales\Block\Adminhtml\Report\Filter\Form\Coupon */ $block = $this->_layout->createBlock('Magento\\Sales\\Block\\Adminhtml\\Report\\Filter\\Form\\Coupon'); $block->setFilterData(new \Magento\Framework\DataObject()); $html = $block->toHtml(); $expectedStrings = ['FormElementDependenceController', 'sales_report_rules_list', 'sales_report_price_rule_type']; foreach ($expectedStrings as $expectedString) { $this->assertContains($expectedString, $html); } }
/** * @magentoDataFixture Magento/Customer/_files/customer_group.php */ public function testDeleteButtonExistInCustomGroup() { $builder = Bootstrap::getObjectManager()->create('Magento\\Framework\\Api\\FilterBuilder'); /** @var \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteria */ $searchCriteria = Bootstrap::getObjectManager()->create('Magento\\Framework\\Api\\SearchCriteriaBuilder')->addFilters([$builder->setField('code')->setValue('custom_group')->create()])->create(); $customerGroup = $this->groupRepository->getList($searchCriteria)->getItems()[0]; $this->getRequest()->setParam('id', $customerGroup->getId()); $this->registry->register(RegistryConstants::CURRENT_GROUP_ID, $customerGroup->getId()); /** @var $block Edit */ $block = $this->layout->createBlock('Magento\\Customer\\Block\\Adminhtml\\Group\\Edit', 'block'); $buttonsHtml = $block->getButtonsHtml(); $this->assertContains('delete', $buttonsHtml); }
/** * Assign custom renderer for product create/edit form weee attribute element * * @param \Magento\Framework\Event\Observer $observer * @return $this */ public function setWeeeRendererInForm(\Magento\Framework\Event\Observer $observer) { /** @var \Magento\Framework\Data\Form $form */ $form = $observer->getEvent()->getForm(); $attributes = $this->_weeeTax->getWeeeAttributeCodes(true); foreach ($attributes as $code) { $weeeTax = $form->getElement($code); if ($weeeTax) { $weeeTax->setRenderer($this->_layout->createBlock('Magento\\Weee\\Block\\Renderer\\Weee\\Tax')); } } return $this; }
/** * Retrieve additional html and put it at the end of element html * * @return string */ public function getAfterElementHtml() { $config = $this->_wysiwygConfig->getConfig(); $config = json_encode($config->getData()); $html = parent::getAfterElementHtml(); if ($this->getIsWysiwygEnabled()) { $disabled = $this->getDisabled() || $this->getReadonly(); $html .= $this->_layout->createBlock('Magento\\Backend\\Block\\Widget\\Button', '', ['data' => ['label' => __('WYSIWYG Editor'), 'type' => 'button', 'disabled' => $disabled, 'class' => 'action-wysiwyg', 'onclick' => 'catalogWysiwygEditor.open(\'' . $this->_backendData->getUrl('catalog/product/wysiwyg') . '\', \'' . $this->getHtmlId() . '\')']])->toHtml(); $html .= <<<HTML <script> require([ 'jquery', 'mage/adminhtml/wysiwyg/tiny_mce/setup' ], function(jQuery){ var config = {$config}, editor; jQuery.extend(config, { settings: { theme_advanced_buttons1 : 'bold,italic,|,justifyleft,justifycenter,justifyright,|,' + 'fontselect,fontsizeselect,|,forecolor,backcolor,|,link,unlink,image,|,bullist,numlist,|,code', theme_advanced_buttons2: null, theme_advanced_buttons3: null, theme_advanced_buttons4: null, theme_advanced_statusbar_location: null }, files_browser_window_url: false }); editor = new tinyMceWysiwygSetup( '{$this->getHtmlId()}', config ); editor.turnOn(); jQuery('#{$this->getHtmlId()}') .addClass('wysiwyg-editor') .data( 'wysiwygEditor', editor ); }); </script> HTML; } return $html; }
/** * @return \Magento\Framework\View\Element\Template */ public function createElementHtmlOutputBlock() { /** @var \Magento\Framework\View\Element\Template $block */ $block = $this->layout->createBlock('Magento\\Framework\\View\\Element\\Template', 'product.details.form.base.image.element'); $block->setTemplate(self::ELEMENT_OUTPUT_TEMPLATE); return $block; }
/** * Retrieve Block html directive * * @param array $construction * @return string * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) */ public function blockDirective($construction) { $skipParams = ['class', 'id', 'output']; $blockParameters = $this->_getIncludeParameters($construction[2]); $block = null; if (isset($blockParameters['class'])) { $block = $this->_layout->createBlock($blockParameters['class'], null, ['data' => $blockParameters]); } elseif (isset($blockParameters['id'])) { $block = $this->_layout->createBlock('Magento\\Cms\\Block\\Block'); if ($block) { $block->setBlockId($blockParameters['id']); } } if (!$block) { return ''; } $block->setBlockParams($blockParameters); foreach ($blockParameters as $k => $v) { if (in_array($k, $skipParams)) { continue; } $block->setDataUsingMethod($k, $v); } if (isset($blockParameters['output'])) { $method = $blockParameters['output']; } if (!isset($method) || !is_string($method) || !method_exists($block, $method) || !is_callable([$block, $method])) { $method = 'toHtml'; } return $block->{$method}(); }
/** * @magentoDataFixture Magento/Customer/_files/customer_group.php */ public function testGetFormExistInCustomGroup() { $builder = Bootstrap::getObjectManager()->create('Magento\\Framework\\Service\\V1\\Data\\FilterBuilder'); /** @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder $searchCriteria */ $searchCriteria = Bootstrap::getObjectManager()->create('Magento\\Framework\\Service\\V1\\Data\\SearchCriteriaBuilder')->addFilter([$builder->setField('code')->setValue('custom_group')->create()])->create(); /** @var CustomerGroup $customerGroup */ $customerGroup = $this->customerGroupService->searchGroups($searchCriteria)->getItems()[0]; $this->registry->register(RegistryConstants::CURRENT_GROUP_ID, $customerGroup->getId()); /** @var $block Form */ $block = $this->layout->createBlock('Magento\\Customer\\Block\\Adminhtml\\Group\\Edit\\Form', 'block'); $form = $block->getForm(); $this->assertEquals('edit_form', $form->getId()); $this->assertEquals('post', $form->getMethod()); $baseFieldSet = $form->getElement('base_fieldset'); $this->assertNotNull($baseFieldSet); $groupCodeElement = $form->getElement('customer_group_code'); $this->assertNotNull($groupCodeElement); $taxClassIdElement = $form->getElement('tax_class_id'); $this->assertNotNull($taxClassIdElement); $idElement = $form->getElement('id'); $this->assertNotNull($idElement); $this->assertEquals($customerGroup->getId(), $idElement->getValue()); $this->assertEquals($customerGroup->getTaxClassId(), $taxClassIdElement->getValue()); /** @var \Magento\Tax\Model\TaxClass\Source\Customer $taxClassCustomer */ $taxClassCustomer = Bootstrap::getObjectManager()->get('Magento\\Tax\\Model\\TaxClass\\Source\\Customer'); $this->assertEquals($taxClassCustomer->toOptionArray(false), $taxClassIdElement->getData('values')); $this->assertEquals($customerGroup->getCode(), $groupCodeElement->getValue()); }
/** * Retrieve payment information block * * @param Info $info * @return Template */ public function getInfoBlock(Info $info) { $blockType = $info->getMethodInstance()->getInfoBlockType(); $block = $this->_layout->createBlock($blockType); $block->setInfo($info); return $block; }
/** * Retrieve inline script code * * Create block to render script and html with * added inline translation content. * * @return string */ protected function getInlineScript() { /** @var $block \Magento\Framework\View\Element\Template */ $block = $this->layout->createBlock('Magento\\Framework\\View\\Element\\Template'); $block->setAjaxUrl($this->getAjaxUrl()); $block->setTemplate($this->templateFileName); return $block->toHtml(); }
/** * Create block instance * * @param string|\Magento\Framework\View\Element\AbstractBlock $block * @return \Magento\Framework\View\Element\AbstractBlock * @throws \Magento\Framework\Model\Exception */ public function createBlock($block) { if (is_string($block)) { if (class_exists($block)) { $block = $this->_layout->createBlock($block); } } if (!$block instanceof \Magento\Framework\View\Element\AbstractBlock) { throw new \Magento\Framework\Model\Exception(__('Invalid block type: %1', $block)); } return $block; }
/** * 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; }
/** * Attach category suggest widget initialization * * @return string */ public function getAfterElementHtml() { $htmlId = $this->getHtmlId(); $suggestPlaceholder = __('start typing to search category'); $selectorOptions = $this->_jsonEncoder->encode($this->_getSelectorOptions()); $newCategoryCaption = __('New Category'); $button = $this->_layout->createBlock('Magento\\Backend\\Block\\Widget\\Button')->setData(['id' => 'add_category_button', 'label' => $newCategoryCaption, 'title' => $newCategoryCaption, 'onclick' => 'jQuery("#new-category").dialog("open")', 'disabled' => $this->getDisabled()]); $return = <<<HTML <input id="{$htmlId}-suggest" placeholder="{$suggestPlaceholder}" /> <script> jQuery('#{$htmlId}-suggest').mage('treeSuggest', {$selectorOptions}); </script> HTML; return $return . $button->toHtml(); }
/** * Attach category suggest widget initialization * @return string */ public function getAfterElementHtml() { if (!$this->isAllowed()) { return ''; } $htmlId = $this->getHtmlId(); $suggestPlaceholder = __('start typing to search category'); $selectorOptions = $this->jsonEncoder->encode($this->_getSelectorOptions()); $newCategoryCaption = __('New Category'); /** @var Magento\Backend\Block\Widget\Button $button */ $button = $this->layout->createBlock('Magento\\Backend\\Block\\Widget\\Button')->setData(['id' => 'add_category_button', 'label' => $newCategoryCaption, 'title' => $newCategoryCaption, 'onclick' => 'jQuery("#new-category").modal("openModal")', 'disabled' => $this->getDisabled()]); $return = <<<HTML <input id="{$htmlId}-suggest" placeholder="{$suggestPlaceholder}" /> <script> require(["jquery", "mage/mage"], function(\$){ \$('#{$htmlId}-suggest').mage('treeSuggest', {$selectorOptions}); }); </script> HTML; return $return . $button->toHtml(); }
/** * Attach Category suggest widget initialization * * @return string */ public function getAfterElementHtml() { $htmlId = $this->getHtmlId(); $suggestPlaceholder = __('start typing to search Category'); $selectorOptions = $this->jsonEncoder->encode($this->getSelectorOptions()); $newCategoryCaption = __('New Category'); /** @var \Magento\Backend\Block\Widget\Button $button */ $button = $this->layout->createBlock('Magento\\Backend\\Block\\Widget\\Button')->setData(['id' => 'add_category_button', 'label' => $newCategoryCaption, 'title' => $newCategoryCaption, 'onclick' => 'jQuery("#new-category").trigger("openModal")', 'disabled' => $this->getDisabled()]); //TODO: move this somewhere else when magento team decides to move it. $return = <<<HTML <input id="{$htmlId}-suggest" placeholder="{$suggestPlaceholder}" /> <script type="text/javascript"> require(["jquery","mage/mage"],function(\$) { // waiting for dependencies at first \$(function(){ // waiting for page to load to have '#category_ids-template' available \$('#{$htmlId}-suggest').mage('treeSuggest', {$selectorOptions}); }); }); </script> HTML; return $return . $button->toHtml(); }
/** * Attach category suggest widget initialization * @return string */ public function getAfterElementHtml() { $htmlId = $this->getHtmlId(); $suggestPlaceholder = __('start typing to search category'); $selectorOptions = $this->jsonEncoder->encode($this->_getSelectorOptions()); $newCategoryCaption = __('New Category'); /** @var \Magento\Backend\Block\Widget\Button $button */ $button = $this->layout->createBlock('Magento\\Backend\\Block\\Widget\\Button')->setData(['id' => 'add_category_button', 'label' => $newCategoryCaption, 'title' => $newCategoryCaption, 'onclick' => 'jQuery("#new-category").dialog("open")', 'disabled' => $this->getDisabled()]); $widgetOptions = $this->jsonEncoder->encode(array('suggestOptions' => array('source' => $this->getUrl('catalog/category/suggestCategories'), 'valueField' => '#new_category_parent', 'className' => 'category-select', 'multiselect' => true, 'showAll' => true), 'saveCategoryUrl' => $this->getUrl('catalog/category/save'))); //TODO: move this somewhere else when magento team decides to move it. $return = <<<HTML <input id="{$htmlId}-suggest" placeholder="{$suggestPlaceholder}" /> <script type="text/javascript"> require(["jquery","mage/mage"],function(\$) { // waiting for dependencies at first \$(function(){ // waiting for page to load to have '#category_ids-template' available \$('#new-category').mage('newCategoryDialog', {$widgetOptions}); \$('#{$htmlId}-suggest').mage('treeSuggest', {$selectorOptions}); }); }); </script> HTML; return $return . $button->toHtml(); }
protected function setUp() { $this->_layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\LayoutInterface'); $this->_block = $this->_layout->createBlock('Magento\\Sales\\Block\\Order\\Invoice\\Items', 'block'); $this->_invoice = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Sales\\Model\\Order\\Invoice'); }
protected function setUp() { $this->_layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Framework\\View\\LayoutInterface'); $this->_block = $this->_layout->createBlock('Magento\\CatalogSearch\\Block\\Advanced\\Result', 'block'); }
protected function setUp() { $this->_layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\LayoutInterface'); $this->_block = $this->_layout->createBlock('Magento\\Framework\\View\\Element\\Text\\ListText'); }
/** * {@inheritdoc} */ public function getSectionData() { $totals = $this->getQuote()->getTotals(); return ['summary_count' => $this->getSummaryCount(), 'subtotal' => isset($totals['subtotal']) ? $this->checkoutHelper->formatPrice($totals['subtotal']->getValue()) : 0, 'possible_onepage_checkout' => $this->isPossibleOnepageCheckout(), 'items' => $this->getRecentItems(), 'extra_actions' => $this->layout->createBlock('Magento\\Catalog\\Block\\ShortcutButtons')->toHtml(), 'isGuestCheckoutAllowed' => $this->isGuestCheckoutAllowed()]; }
/** * Retrieve payment method form html * * @param MethodInterface $method * @param LayoutInterface $layout * @return Form */ public function getMethodFormBlock(MethodInterface $method, LayoutInterface $layout) { $block = $layout->createBlock($method->getFormBlockType(), $method->getCode()); $block->setMethod($method); return $block; }
/** * Return centinel block for payment form with logos * * @param \Magento\Payment\Model\MethodInterface $method * @return \Magento\Centinel\Block\Logo */ public function getMethodFormBlock($method) { $block = $this->_layout->createBlock('Magento\\Centinel\\Block\\Logo'); $block->setMethod($method); return $block; }
/** * Create button container * * @param \Magento\Framework\View\LayoutInterface $layout * @param string $containerName * @param \Magento\Backend\Block\Widget\Button\Item $buttonItem * @return \Magento\Backend\Block\Widget\Button\Toolbar\Container */ protected function createContainer(LayoutInterface $layout, $containerName, $buttonItem) { $container = $layout->createBlock('\\Magento\\Backend\\Block\\Widget\\Button\\Toolbar\\Container', $containerName, ['data' => ['button_item' => $buttonItem]]); return $container; }