Magento2 - Jak wyświetlić zawartość bloku na stronie głównej


14

Jak wyświetlić zawartość bloku na stronie głównej?

Po zainstalowaniu magento2 bez przykładowych danych wybrałem motyw „Magento Luma” i dodałem blok „Blok strony domowej” i skopiowałem kod z przykładowego magazynu.

ale nic nie pojawia się na stronie głównej, jak pokazać mój blok cms na stronie głównej, jak przykładowy sklep?

mój dom wprowadź opis zdjęcia tutaj

sklep z próbkami

wprowadź opis zdjęcia tutaj


Masz na myśli pokazywanie niestandardowego tekstu / treści blokowego cms lub utworzonego przez użytkownika panelu cms tekst / treść?
— Bojjaiah

@magentotwo utworzyć niestandardową cms zablokować Chcę wiedzieć, jak pokazują to blcok na stronie głównej
— Księżyc

próbowałeś poniżej rozwiązania?
— Bojjaiah

Zawartość strony głównej w przykładowych danych pochodzi z widżetów.

Odpowiedzi:


45

w panelu administracyjnym przejdź do Treść-> Strony i edytuj stronę główną, a jeśli utworzyłeś blok statyczny z panelu administracyjnego, dodaj następujące elementy do zakładki Treść

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

a jeśli utworzyłeś niestandardowy blok za pomocą modułu, dodaj następujące elementy do karty zawartości strony głównej

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

następnie zapisz zmiany i opróżnij pamięć podręczną Magento oraz wdróż / usuń zawartość statyczną teraz odśwież stronę główną.

Jeśli to nie zadziałało, daj mi znać


To działa jak urok! Wielkie dzięki Chamal!
— Księżyc

Czy jest jakiś link, który mogę dowiedzieć się więcej na ten temat? magento block class i block id code for front-end?
— Księżyc

1
Znalazłem devdocs.magento.com/guides/v2.0/howdoi/frontend/… jest to dobry przewodnik do zrozumienia architektury bloków magento 2
— Chamal Chamikara

Z mojego modułu cms_index_index.xmldodałem to w treści strony głównej - <block class="Vendor\Module\Block\Index" name="modulename" template="module.phtml"></block> and It says Szablon filtrowania błędów: Niepoprawny plik szablonu: „Vendor_Module :: module.phtml” w module: „Block_Module” nazwa bloku: „index_0” ''
— Slimshadddyyy

10

wypróbuj to, albo opublikuj kod, a my zasugerujemy Ci, gdzie popełniłeś błąd.

Zablokuj plik

<?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>

view / templates / html / cms.phtml

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

po utworzeniu pamięci podręcznej opróżniania.

Mam nadzieję, że to Ci pomoże. Jeśli nie otrzymujesz wyników, daj mi znać.


Dziękuję za Twoją odpowiedź! Spróbuję później i dam znać wynik
— Księżyc

3

Na stronie głównej można wywołać blok statyczny w sposób opisany poniżej

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

Na stronie html możesz wywołać blok statyczny w sposób opisany poniżej.

<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.