Добавить новую ссылку на страницу учетной записи клиента
Я попытался добавить новую ссылку на боковой панели ссылки на учетную запись клиента с кодом добавления ниже в customer_account.xml с моим пользовательским модулем.
Customer_account.xml :
<referenceBlock name="customer_account_navigation">
<block class="Magento\Framework\View\Element\Html\Link\Current" name="customer-owner-reset-employee-password">
<arguments>
<argument name="path" xsi:type="string">reset/emppass</argument>
<argument name="label" xsi:type="string" translate="true">Reset Employee Password</argument>
</arguments>
</block>
</referenceBlock>
Все работает, и я вижу там новую ссылку, но как я могу добавить страницу для нее? Поэтому, если клиент нажмет на ссылку, он отправит ее на страницу пользовательской ссылки.
1 answers
Для этого вам необходимо создать модуль. Внутри вашего модуля создайте routes.xml
в местоположении app/code/Vendor/Module/etc/frontend/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 frontName="reset" id="reset">
<module name="Vendor_Module"/>
</route>
</router>
</config>
Создать макет в местоположении app/code/Vendor/Module/view/frontend/layout/reset_emppass_index.xml
<?xml version="1.0" ?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<container name="categories1" htmlTag="div" htmlClass="categories">
<block class="Vendor\Module\Block\YourAnyBlock" name="myblock" template="Vendor_Module::index/index.phtml"/>
</container>
</referenceContainer>
</body>
</page>
Затем создайте индекс контроллера и индекс действия в app/code/Vendor/Module/Controller/Emppass/Index.php
<?php
namespace Vendor\Module\Controller\Emppass;
class Index extends \Magento\Framework\App\Action\Action
{
protected $resultPageFactory;
/**
* Constructor
*
* @param \Magento\Framework\App\Action\Context $context
* @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
*/
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory
) {
$this->resultPageFactory = $resultPageFactory;
parent::__construct($context);
}
/**
* Execute view action
*
* @return \Magento\Framework\Controller\ResultInterface
*/
public function execute()
{
return $this->resultPageFactory->create();
}
}
Наконец, создайте шаблон на app/code/Vendor/Module/view/frontend/templates/index.phtml
Hello this is my template. I can do anything inside this file.