X-core
@X-core
начинающий веб разработчик

Как отобразить текст с шаблона модуля?

Не получается отобразить текст с шаблона модуля на главную страницу сайта для Magento2.4.2
На странице ничего не показывает.
Подскажите пожалуйста,что не так написал?
Модуль зарегистрировал и активировал,кеш отключен и почищен.
Директории модуля:
6038f28b6a8d7743009548.jpeg
В папке Block Helloworld.php
<?php
namespace Inchoo\Helloworld\Block;
class Helloworld extends \Magento\Framework\View\Element\Template
{
    public function getHelloWorldTxt()
    {
        return 'Hello world!';
    }
}

в папках Controller->Index index.php
<?php
 
namespace Inchoo\Helloworld\Controller\Index;
 
use Magento\Framework\App\Action\Context;
 
class Index extends \Magento\Framework\App\Action\Action
{
    protected $_resultPageFactory;
 
    public function __construct(Context $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory)
    {
        $this->_resultPageFactory = $resultPageFactory;
        parent::__construct($context);
    }
 
    public function execute()
    {
        $resultPage = $this->_resultPageFactory->create();
        return $resultPage;
    }
}

routes.xml
<?xml version="1.0"?>
 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="standard">
        <route id="helloworld" frontName="helloworld">
            <module name="Inchoo_Helloworld" />
        </route>
    </router>
</config>

module.xml
<?xml version="1.0"?>
 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Inchoo_Helloworld" setup_version="1.0.0">
    </module>
</config>


helloworld.phtml
<h1><?=$this->getHelloWorldTxt(); ?></h1>
<div class="test_block">
 <p>Тестовый блок</p>
</div>

helloworld_index_index.xml
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd" layout="1column">
    <body>
        <referenceContainer name="content">
            <block class="Inchoo\Helloworld\Block\Helloworld" name="helloworld" template="helloworld.phtml" />
        </referenceContainer>
    </body>
</page>

registration.php
<?php
 
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Inchoo_Helloworld',
    __DIR__
);
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
link_web
@link_web
Magento, Laravel, Zend, Shopify, Prestashop, WP
1)layout Файлы должны лежать в папе frontend/layout . ref
2)Вы создали кастомный роутер, а хотите на главной выводить что-то. Для того, что бы на главной вывести блок не нужно создавать кастомный роутер - для этого нужно создать frontend/layout/cms_index_index.xml и в контент добавить свой блок. https://webkul.com/blog/how-to-show-a-block-conten...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы