Magento2 - Як відобразити вміст блоку на домашній сторінці


14

Як показати блочний вміст на домашній сторінці?

Після встановлення magento2 без зразкових даних я вибрав тему "Magento Luma" і додав блок "Блокування домашньої сторінки" та скопіював код з сховища зразків.

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

мій дім введіть тут опис зображення

магазин зразків

введіть тут опис зображення


Ви маєте на увазі показ спеціального файлу / вмісту блоку cms або створеного панелі адміністратора cms блок тексту / вмісту?
Боджая

@magentotwo Я створюю спеціальний блок cms Я хочу знати, як показати цей blcok на домашній сторінці
Місяць,

ви спробували нижче рішення?
Боджяя

Вміст домашньої сторінки у зразкових даних надходить від віджетів.

Відповіді:


45

на панелі адміністратора перейдіть до Зміст-> Сторінки та відредагуйте домашню сторінку, і якщо ви створили статичний блок із панелі адміністратора, додайте наступні вкладки «Зміст»

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

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

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

потім збережіть зміни та очистіть кеш-пам'ять magento та розгорніть / видаліть статичний вміст тепер оновіть домашню сторінку.

Якщо це не спрацювало, дайте мені знати


Це працює як шарм! Велике спасибі Шамаль!
Місяць

Чи є посилання, про яке я можу дізнатися більше про це? клас блоку magento та ідентифікатор блоку для фронтального?
Місяць

1
Я знайшов devdocs.magento.com/guides/v2.0/howdoi/frontend/… це хороший посібник для розуміння блокової архітектури magento 2
Chamal Chamikara

З мого модуля cms_index_index.xmlя додав це до вмісту домашньої сторінки - <block class="Vendor\Module\Block\Index" name="modulename" template="module.phtml"></block> and It says Шаблон фільтрації помилок: Неправильний файл шаблону: 'Vendor_Module :: module.phtml' у модулі: Назва блоку 'Vendor_Module': 'index_0'``
Slimshadddyyy

10

спробуйте це або інше опублікуйте свій код, тоді ми підкажемо вам, де ви помилилися.

Блокувати файл

<?php
namespace Learning\SmartSearch\Block;

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

тощо / 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>

view / templates / html / cms.phtml

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

після створення кеш-флеш.

Я сподіваюся, що це вам допоможе. Якщо ви не отримуєте результатів, дайте мені знати.


Спасибі за вашу відповідь! Я спробую пізніше і повідомляю вам результат
Місяць,

3

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

{{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();?>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.