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.