Magento2 - Comment afficher un contenu de bloc sur la page d'accueil

14

Comment afficher un contenu de bloc sur la page d'accueil?

Après avoir installé magento2 sans exemple de données, j'ai choisi le thème 'Magento Luma' et j'ai ajouté le bloc 'Home Page Block' et copié le code depuis le magasin d'échantillons.

mais rien n'apparaît sur la page d'accueil, comment afficher mon bloc cms sur la page d'accueil comme le magasin d'échantillons?

ma maison entrez la description de l'image ici

magasin d'échantillons

entrez la description de l'image ici

Lune
la source
Vous voulez dire afficher le texte / contenu de bloc cms personnalisé ou le texte / contenu de bloc cms créé par le panneau d'administration?
Bojjaiah
@magentotwo Je crée un bloc cms personnalisé Je veux savoir comment afficher ce blcok sur la page d'accueil
Moon
avez-vous essayé la solution ci-dessous?
Bojjaiah
Le contenu de la page d'accueil dans les exemples de données provient de widgets.

Réponses:

45

dans le panneau d'administration, accédez à Contenu-> Pages et modifiez la page d'accueil et si vous avez créé votre bloc statique à partir du panneau d'administration, ajoutez la suite à l'onglet Contenu

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

et si vous avez créé un bloc personnalisé à l'aide d'un module, ajoutez le suivant à l'onglet de contenu de la page d'accueil

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

puis enregistrez les modifications et videz le cache magento et déployez / supprimez le contenu statique maintenant actualisez la page d'accueil.

Si cela n'a pas fonctionné, faites le moi savoir

Chamal Chamikara
la source
Il fonctionne comme un charme! Merci beaucoup Chamal!
Lune
Existe-t-il un lien pour en savoir plus à ce sujet? magento block class et block id code for front-end?
Lune
1
J'ai trouvé devdocs.magento.com/guides/v2.0/howdoi/frontend/… c'est un bon guide pour comprendre l'architecture des blocs de magento 2
Chamal Chamikara
À partir de mon module cms_index_index.xml, j'ai ajouté ceci dans le contenu de la page d'accueil - <block class="Vendor\Module\Block\Index" name="modulename" template="module.phtml"></block> and It says Modèle de filtrage d'erreur: Fichier de modèle non valide: 'Vendor_Module :: module.phtml' dans le module: Nom du bloc 'Vendor_Module': 'index_0' '
Slimshadddyyy
10

essayez ceci ou bien postez votre code, nous vous suggérerons où vous vous êtes trompé.

Fichier de blocage

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

voir / templates / html / cms.phtml

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

après avoir créé le cache de vidage.

J'espère que cela t'aidera. Si vous n'obtenez pas de résultats, faites-le moi savoir.

Bojjaiah
la source
Merci pour votre réponse! J'essaierai plus tard et je vous ferai connaître le résultat
Moon
3

Dans la page d'accueil, vous pouvez appeler le bloc statique comme la manière mentionnée ci-dessous

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

Dans la page html, vous pouvez appeler le bloc statique comme indiqué ci-dessous.

<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
Naveenbos
la source