Magento2 - Как отобразить содержимое блока на главной странице


Как отобразить содержимое блока на главной странице?

После установки magento2 без образцов данных я выбрал тему "Magento Luma", добавил блок "Блок домашней страницы" и скопировал код из хранилища образцов.

Но на домашней странице ничего не отображается, как показать мой блок cms на домашней странице, например, в магазине образцов?

Мой дом enter image description here

Хранилище образцов

enter image description here

Author: Commerce Pundit, 2015-12-26

3 answers

В панели администратора перейдите в раздел Содержимое->Страницы и отредактируйте домашнюю страницу, и если вы создали свой статический блок из панели администратора, добавьте следующее на вкладку Содержимое

{{block class="Magento\Cms\Block\Block" block_id="your_block_identifier"}}

И если вы создали пользовательский блок с помощью модуля, добавьте следующее на вкладку содержимого домашней страницы

{{block class="Vendor\ModuleName\Block\BlockName" template="Vendor_ModuleName::yourcustomblock.phtml"}} 

Затем сохраните изменения, очистите кэш magento и разверните/удалите статическое содержимое , а теперь обновите домашнюю страницу.

Если это не сработало, дайте мне знать

 51
Author: Chamal Chamikara, 2015-12-31 06:10:08

Попробуйте это или опубликуйте свой код, тогда мы подскажем вам, где вы ошиблись.

Файл блокировки

<?php
namespace Learning\SmartSearch\Block;

class SmartSearch extends \Magento\Framework\View\Element\Template
{
    public function getTitle()
    {
        return "Smart Search";
    }
}

Etc/module.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
    <module name="Learning_SmartSearch" setup_version="1.0.0">
    </module>
</config>

View/layout/cms_index_index.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="Learning\SmartSearch\Block\SmartSearch" template="Learning_SmartSearch::html/cms.phtml"/>
        </referenceContainer>
    </body>
</page>

Просмотр/шаблоны/html/cms.phtml

<h1><?php echo $block->getTitle(); ?></h1>

После создания полного кэша.

Я надеюсь, что это поможет вам. Если вы не получите результатов, дайте мне знать.

 10
Author: Bojjaiah, 2015-12-31 05:12:52

На домашней странице вы можете вызвать статический блок, как описано ниже

{{block class="Magento\Cms\Block\Block" block_id="your_block_identifier"}}

На html-странице вы можете вызвать статический блок, как описано ниже.

<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
 3
Author: Naveenbos, 2016-06-29 10:33:14