Как добавить новую страницу в административную панель Magento 2?

Пользователь

от maymie , в категории: PHP , год назад

Как добавить новую страницу в административную панель Magento 2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kaleigh , год назад

@maymie 

Для добавления новой страницы в административную панель Magento 2, вам потребуется выполнить следующие шаги:

  1. Создайте модуль для расширения функциональности Magento.
  2. Создайте файл маршрута для вашей страницы. Этот файл определит URL, по которому будет доступна новая страница. Создайте файл etc/adminhtml/routes.xml в вашем модуле и добавьте следующий код:
1
2
3
4
5
6
7
  
    
      
    
  


Здесь mymodule - это идентификатор маршрута. Your_Module - это имя вашего модуля.

  1. Создайте контроллер для обработки запросов к вашей странице. Создайте файл контроллера в папке Controller/Adminhtml/Index вашего модуля и добавьте следующий код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
resultPageFactory = $resultPageFactory;
    }
    
    public function execute()
    {
        $resultPage = $this->resultPageFactory->create();
        $resultPage->getConfig()->getTitle()->prepend(__('My Custom Page'));
        return $resultPage;
    }
}


  1. Создайте макет для вашей страницы. Создайте файл макета в папке view/adminhtml/layout вашего модуля и добавьте следующий код:
1
2
3
4
5
6
7
  
    
      
    
  


  1. Создайте блок для вашей страницы. Создайте файл блока в папке Block/Adminhtml/MyCustomBlock вашего модуля и добавьте следующий код:
1
2
3
setTemplate('Your_Module::mycustomblock.phtml');
    }
}


  1. Создайте шаблон для вашей страницы. Создайте файл шаблона в папке view/adminhtml/templates вашего модуля и добавьте следующий код:
1
Welcome to My Custom Page!


  1. Пересоберите конфигурацию и очистите кэш Magento:
1
2
php bin/magento setup:upgrade
php bin/magento cache:flush


Теперь вы должны увидеть новую страницу в административной панели Magento 2. Вы можете получить к ней доступ, перейдя по URL-адресу admin/mymodule/index/index.

Пользователь

от bart , 14 дней назад

@maymie 

Как альтернативу, вы также можете использовать UI компоненты Magento 2 для создания новой страницы в административной панели. Вот пример шагов для создания новой страницы с использованием UI компонентов:

  1. Создайте модуль для вашего расширения функциональности Magento.
  2. Создайте файл маршрута для вашей страницы. Создайте файл etc/adminhtml/routes.xml в вашем модуле и добавьте следующий код:
1
2
3
4
5
6
7
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="admin">
        <route id="mymodule" frontName="mymodule">
            <module name="Your_Module" />
        </route>
    </router>
</config>


  1. Создайте Layout XML файл для вашей страницы. Создайте файл view/adminhtml/layout/mymodule_index_index.xml в папке вашего модуля и добавьте следующий код:
1
2
3
4
5
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <referenceContainer name="content">
        <block class="YourModuleBlockAdminhtmlMyCustomBlock" name="mycustom.block" template="Your_Module::mycustomblock.phtml" />
    </referenceContainer>
</page>


  1. Создайте контроллер для обработки запросов к вашей странице. Создайте файл контроллера в папке Controller/Adminhtml/Index вашего модуля и добавьте соответствующий код.
  2. Создайте блок для вашей страницы. Создайте файл блока в папке Block/Adminhtml/MyCustomBlock вашего модуля и добавьте код для подготовки данных для вашей страницы.
  3. Создайте шаблон для вашей страницы. Создайте файл шаблона в папке view/adminhtml/templates вашего модуля и добавьте HTML код для отображения содержимого вашей страницы.
  4. Пересоберите конфигурацию и очистите кеш Magento:
1
2
php bin/magento setup:upgrade
php bin/magento cache:flush


После выполнения указанных шагов, новая страница должна быть доступна в административной панели Magento 2 по соответствующему URL.