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

Księżyc
źródło
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ć

Chamal Chamikara
źródło
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ć.

Bojjaiah
źródło
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();?>
Naveenbos
źródło