本文整理汇总了PHP中Magento\Framework\View\Element\AbstractBlock类的典型用法代码示例。如果您正苦于以下问题:PHP AbstractBlock类的具体用法?PHP AbstractBlock怎么用?PHP AbstractBlock使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了AbstractBlock类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addErrorMessages
/**
* @param \Magento\Framework\View\Element\AbstractBlock $resultBlock
* @param ProcessingErrorAggregatorInterface $errorAggregator
* @return $this
*/
protected function addErrorMessages(\Magento\Framework\View\Element\AbstractBlock $resultBlock, ProcessingErrorAggregatorInterface $errorAggregator)
{
if ($errorAggregator->getErrorsCount()) {
$message = '';
$counter = 0;
foreach ($this->getErrorMessages($errorAggregator) as $error) {
$message .= ++$counter . '. ' . $error . '<br>';
if ($counter >= self::LIMIT_ERRORS_MESSAGE) {
break;
}
}
if ($errorAggregator->hasFatalExceptions()) {
foreach ($this->getSystemExceptions($errorAggregator) as $error) {
$message .= $error->getErrorMessage() . ' <a href="#" onclick="$(this).next().show();$(this).hide();return false;">' . __('Show more') . '</a><div style="display:none;">' . __('Additional data') . ': ' . $error->getErrorDescription() . '</div>';
}
}
try {
$resultBlock->addNotice('<strong>' . __('Following Error(s) has been occurred during importing process:') . '</strong><br>' . '<div class="import-error-wrapper">' . __('Only first 100 errors are displayed here. ') . '<a href="' . $this->createDownloadUrlImportHistoryFile($this->createErrorReport($errorAggregator)) . '">' . __('Download full report') . '</a><br>' . '<div class="import-error-list">' . $message . '</div></div>');
} catch (\Exception $e) {
foreach ($this->getErrorMessages($errorAggregator) as $errorMessage) {
$resultBlock->addError($errorMessage);
}
}
}
return $this;
}
示例2: _wrapEsi
/**
* Replace the output of the block, containing ttl attribute, with ESI tag
*
* @param \Magento\Framework\View\Element\AbstractBlock $block
* @param \Magento\Framework\View\Layout $layout
* @return string
*/
protected function _wrapEsi(\Magento\Framework\View\Element\AbstractBlock $block, \Magento\Framework\View\Layout $layout)
{
$url = $block->getUrl('page_cache/block/esi', ['blocks' => json_encode([$block->getNameInLayout()]), 'handles' => json_encode($layout->getUpdate()->getHandles())]);
// Varnish does not support ESI over HTTPS must change to HTTP
$url = substr($url, 0, 5) === 'https' ? 'http' . substr($url, 5) : $url;
return sprintf('<esi:include src="%s" />', $url);
}
示例3: testGetCacheKeyByName
/**
* @return void
*/
public function testGetCacheKeyByName()
{
$nameInLayout = 'testBlock';
$this->block->setNameInLayout($nameInLayout);
$cacheKey = sha1($nameInLayout);
$this->assertEquals(AbstractBlock::CACHE_KEY_PREFIX . $cacheKey, $this->block->getCacheKey());
}
示例4: beforePushButtons
/**
* @param ToolbarContext $toolbar
* @param AbstractBlock $context
* @param ButtonList $buttonList
* @return array
*/
public function beforePushButtons(ToolbarContext $toolbar, \Magento\Framework\View\Element\AbstractBlock $context, \Magento\Backend\Block\Widget\Button\ButtonList $buttonList)
{
if (!$context instanceof \Magento\Sales\Block\Adminhtml\Order\View) {
return [$context, $buttonList];
}
$buttonList->update('order_edit', 'class', 'edit');
$buttonList->update('order_invoice', 'class', 'invoice primary');
$buttonList->update('order_invoice', 'sort_order', (count($buttonList->getItems()) + 1) * 10);
$buttonList->add('order_review', ['label' => __('Review'), 'onclick' => 'setLocation(\'' . $context->getUrl('sales/*/review') . '\')', 'class' => 'review']);
$buttonList->remove('order_hold');
$buttonList->remove('send_notification');
return [$context, $buttonList];
}
示例5: aroundGetChildData
public function aroundGetChildData(AbstractBlock $subject, callable $proceed, $alias, $key = '')
{
$returnValue = $proceed($alias, $key);
if (null === $returnValue) {
$layout = $subject->getLayout();
if (!$layout) {
return false;
}
$name = $layout->getChildName($subject->getNameInLayout(), $alias);
if ($layout->isContainer($name)) {
$returnValue = $layout->getElementProperty($name, $key);
}
}
return $returnValue;
}
示例6: getToolbar
/**
* 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;
$layout = $context->getLayout();
if (!$region || $region == 'header' || $region == 'footer') {
$parent = $context;
} elseif ($region == 'toolbar') {
$parent = $layout->getBlock('page.actions.toolbar');
} else {
$parent = $layout->getBlock($region);
}
if ($parent) {
return $parent;
}
return $context;
}
示例7: pushButtons
/**
* {@inheritdoc}
*/
public function pushButtons(\Magento\Framework\View\Element\AbstractBlock $context, \Magento\Backend\Block\Widget\Button\ButtonList $buttonList)
{
foreach ($buttonList->getItems() as $buttons) {
/** @var \Magento\Backend\Block\Widget\Button\Item $item */
foreach ($buttons as $item) {
$containerName = $context->getNameInLayout() . '-' . $item->getButtonKey();
$container = $this->createContainer($containerName, $item);
if ($item->hasData('name')) {
$item->setData('element_name', $item->getName());
}
if ($container) {
$container->setContext($context);
$toolbar = $this->getToolbar($context, $item->getRegion());
$toolbar->setChild($item->getButtonKey(), $container);
}
}
}
}
示例8: setUp
/**
* Set up test
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
protected function setUp()
{
$this->contextMock = $this->getMock('Magento\\Backend\\App\\Action\\Context', ['getAuthorization', 'getSession', 'getActionFlag', 'getAuth', 'getView', 'getHelper', 'getBackendUrl', 'getFormKeyValidator', 'getLocaleResolver', 'getCanUseBaseUrl', 'getRequest', 'getResponse', 'getObjectManager', 'getMessageManager'], [], '', false);
$this->response = $this->getMock('Magento\\Framework\\App\\ResponseInterface', ['setRedirect', 'sendResponse'], [], '', false);
$this->request = $this->getMockForAbstractClass('\\Magento\\Framework\\App\\RequestInterface', ['getParam', 'getRequest'], '', false);
$this->view = $this->getMock('\\Magento\\Framework\\App\\ViewInterface', ['loadLayout', 'getPage', 'getConfig', 'getTitle', 'loadLayoutUpdates', 'renderLayout', 'getDefaultLayoutHandle', 'generateLayoutXml', 'addPageLayoutHandles', 'generateLayoutBlocks', 'getLayout', 'addActionLayoutHandles', 'setIsLayoutLoaded', 'isLayoutLoaded'], [], '', false);
$this->block = $this->getMock('\\Magento\\Framework\\View\\Element\\AbstractBlock', ['setActive', 'getMenuModel'], [], '', false);
$this->layout = $this->getMockForAbstractClass('\\Magento\\Framework\\View\\LayoutInterface', ['getBlock'], '', false);
$this->menu = $this->getMock('\\Magento\\Backend\\Model\\Menu', ['getParentItems'], [], '', false);
$this->items = $this->getMock('\\Magento\\Backend\\Model\\Menu\\Item', ['getParentItems'], [], '', false);
$this->contextMock->expects($this->any())->method("getRequest")->willReturn($this->request);
$this->contextMock->expects($this->any())->method("getResponse")->willReturn($this->response);
$this->contextMock->expects($this->any())->method('getView')->will($this->returnValue($this->view));
$this->page = $this->getMock('\\Magento\\Framework\\View\\Result\\Page', ['getConfig'], [], '', false);
$this->config = $this->getMock('\\Magento\\Framework\\View\\Result\\Page', ['getTitle'], [], '', false);
$this->title = $this->getMock('\\Title', ['prepend'], [], '', false);
$this->block->expects($this->any())->method('setActive')->will($this->returnValue(1));
$this->view->expects($this->any())->method('getLayout')->will($this->returnValue($this->layout));
$this->layout->expects($this->any())->method('getBlock')->with('menu')->will($this->returnValue($this->block));
$this->block->expects($this->any())->method('getMenuModel')->will($this->returnValue($this->menu));
$this->menu->expects($this->any())->method('getParentItems')->will($this->returnValue($this->items));
$this->object = new \Magento\Indexer\Controller\Adminhtml\Indexer\ListAction($this->contextMock);
}
示例9: testExecute
/**
* @param bool $cacheState
* @param bool $varnishIsEnabled
* @param bool $scopeIsPrivate
* @param int|null $blockTtl
* @param string $expectedOutput
* @dataProvider processLayoutRenderDataProvider
*/
public function testExecute($cacheState, $varnishIsEnabled, $scopeIsPrivate, $blockTtl, $expectedOutput)
{
$eventMock = $this->getMock('Magento\\Framework\\Event', ['getLayout', 'getElementName', 'getTransport'], [], '', false);
$this->_observerMock->expects($this->once())->method('getEvent')->will($this->returnValue($eventMock));
$eventMock->expects($this->once())->method('getLayout')->will($this->returnValue($this->_layoutMock));
$this->_configMock->expects($this->any())->method('isEnabled')->will($this->returnValue($cacheState));
if ($cacheState) {
$eventMock->expects($this->once())->method('getElementName')->will($this->returnValue('blockName'));
$eventMock->expects($this->once())->method('getTransport')->will($this->returnValue($this->_transport));
$this->_layoutMock->expects($this->once())->method('isCacheable')->will($this->returnValue(true));
$this->_layoutMock->expects($this->any())->method('getUpdate')->will($this->returnSelf());
$this->_layoutMock->expects($this->any())->method('getHandles')->will($this->returnValue([]));
$this->_layoutMock->expects($this->once())->method('getBlock')->will($this->returnValue($this->_blockMock));
if ($varnishIsEnabled) {
$this->_blockMock->expects($this->once())->method('getData')->with('ttl')->will($this->returnValue($blockTtl));
$this->_blockMock->expects($this->any())->method('getUrl')->will($this->returnValue('page_cache/block/wrapesi/with/handles/and/other/stuff'));
}
if ($scopeIsPrivate) {
$this->_blockMock->expects($this->once())->method('getNameInLayout')->will($this->returnValue('testBlockName'));
$this->_blockMock->expects($this->once())->method('isScopePrivate')->will($this->returnValue($scopeIsPrivate));
}
$this->_configMock->expects($this->any())->method('getType')->will($this->returnValue($varnishIsEnabled));
}
$this->_model->execute($this->_observerMock);
$this->assertEquals($expectedOutput, $this->_transport['output']);
}
示例10: add
/**
* Add button
*
* @param string $key
* @param array $data
* @param UiComponentInterface $view
* @return void
*/
public function add($key, array $data, UiComponentInterface $view)
{
$data['id'] = isset($data['id']) ? $data['id'] : $key;
if ($this->toolbarBlock !== false) {
$this->items[$key] = $this->itemFactory->create();
$this->items[$key]->setData($data);
$container = $this->createContainer($key, $view);
$this->toolbarBlock->setChild($key, $container);
}
}
示例11: testGetRenderer
public function testGetRenderer()
{
$this->blockMock->expects($this->any())->method('setRenderedBlock')->will($this->returnValue($this->blockMock));
$this->blockMock->expects($this->any())->method('getTemplate')->will($this->returnValue('template'));
$this->blockMock->expects($this->any())->method('setTemplate')->will($this->returnValue($this->blockMock));
$this->layoutMock->expects($this->any())->method('getChildName')->will($this->returnValue(true));
/** During the first call cache will be generated */
$this->assertInstanceOf('\\Magento\\Framework\\View\\Element\\BlockInterface', $this->renderList->getRenderer('type', null, null));
/** Cached value should be returned during second call */
$this->assertInstanceOf('\\Magento\\Framework\\View\\Element\\BlockInterface', $this->renderList->getRenderer('type', null, 'renderer_template'));
}
示例12: __construct
public function __construct(\Magento\Framework\View\Element\Context $context, \Magento\Framework\HTTP\ZendClientFactory $clientFactory, \Psr\Log\LoggerInterface $logger, array $data = [])
{
$this->_isScopePrivate = true;
$this->_clientFactory = $clientFactory;
$this->_logger = $logger;
parent::__construct($context, $data);
}
示例13: _prepareLayout
/**
* Include RequireJs configuration as an asset on the page
*
* @return $this
*/
protected function _prepareLayout()
{
$requireJsConfig = $this->fileManager->createRequireJsConfigAsset();
$requireJsMixinsConfig = $this->fileManager->createRequireJsMixinsAsset();
$assetCollection = $this->pageConfig->getAssetCollection();
$after = RequireJsConfig::REQUIRE_JS_FILE_NAME;
if ($this->minification->isEnabled('js')) {
$minResolver = $this->fileManager->createMinResolverAsset();
$assetCollection->insert($minResolver->getFilePath(), $minResolver, $after);
$after = $minResolver->getFilePath();
}
if ($this->bundleConfig->isBundlingJsFiles()) {
$bundleAssets = $this->fileManager->createBundleJsPool();
$staticAsset = $this->fileManager->createStaticJsAsset();
/** @var \Magento\Framework\View\Asset\File $bundleAsset */
if (!empty($bundleAssets) && $staticAsset !== false) {
$bundleAssets = array_reverse($bundleAssets);
foreach ($bundleAssets as $bundleAsset) {
$assetCollection->insert($bundleAsset->getFilePath(), $bundleAsset, $after);
}
$assetCollection->insert($staticAsset->getFilePath(), $staticAsset, reset($bundleAssets)->getFilePath());
$after = $staticAsset->getFilePath();
}
}
$assetCollection->insert($requireJsConfig->getFilePath(), $requireJsConfig, $after);
$assetCollection->insert($requireJsMixinsConfig->getFilePath(), $requireJsMixinsConfig, $after);
return parent::_prepareLayout();
}
示例14: __construct
/**
* @param \Magento\Framework\View\Element\Context $context
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
* @param Registry $registry
* @param \Magento\Framework\Data\Form $form
* @param array $data
*/
public function __construct(\Magento\Framework\View\Element\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, Registry $registry, \Magento\Framework\Data\Form $form, $data = [])
{
$this->storeManager = $storeManager;
$this->registry = $registry;
$this->form = $form;
parent::__construct($context, $data);
}
示例15: __construct
/**
* Construct
*
* @param \Magento\Framework\View\Element\Context $context
* @param \Magento\Cms\Model\Template\FilterProvider $filterProvider
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
* @param \Magento\Cms\Model\BlockFactory $blockFactory
* @param array $data
*/
public function __construct(\Magento\Framework\View\Element\Context $context, \Magento\Cms\Model\Template\FilterProvider $filterProvider, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Cms\Model\BlockFactory $blockFactory, array $data = [])
{
parent::__construct($context, $data);
$this->_filterProvider = $filterProvider;
$this->_storeManager = $storeManager;
$this->_blockFactory = $blockFactory;
}