Thêm liên kết hoạt động tùy chỉnh để điều hướng tài khoản khách hàng trong Magento 2


10

Tôi đang cố gắng thêm một liên kết tùy chỉnh trong điều hướng tài khoản khách hàng. Liên kết tùy chỉnh của tôi cũng hiển thị trong điều hướng tài khoản và cũng hoạt động, nhưng nó không hiển thị dưới dạng hoạt động / hiện tại khi nhấp.

nhập mô tả hình ảnh ở đây

Dưới đây là mã tôi có:

/app/code/Namespace/Support/view/frontend/layout/customer_account.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>
        <referenceBlock name="customer_account_navigation">
            <block class="Magento\Framework\View\Element\Html\Link\Current" name="customer-account-navigation-suppport-ticket-link" after="-">
                <arguments>
                    <argument name="path" xsi:type="string">support/customer/index</argument>
                    <argument name="label" xsi:type="string">Support Ticket</argument>
                </arguments>
            </block>
        </referenceBlock>
    </body>
</page>

/app/code/Namespace/Support/Controll/Customer/Index.php

<?php
namespace Namespace\Support\Controller\Customer;

use Magento\Framework\App\Action;
use Magento\Framework\Exception\NotFoundException;
use Magento\Framework\Controller\ResultFactory;

class Index extends \Namespace\Support\Controller\Index
{
    /**
     * Show customer tickets
     *
     * @return \Magento\Framework\View\Result\Page
     * @throws NotFoundException
     */
    public function execute()
    {
        /** @var \Magento\Framework\View\Result\Page resultPage */
        $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
        return $resultPage;
    }
}

/app/code/Namespace/Support/view/frontend/layout/support_customer_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">
    <update handle="customer_account"/>
    <head>
        <title>Support Ticket</title>
        <css src="Namespace_Support::css/styles.css"/>
    </head>
    <body>
        <referenceContainer name="content">
            <block class="Namespace\Support\Block\TicketList" name="ticketViewList" template="Namespace_Support::list.phtml" />
        </referenceContainer>
    </body>
</page>

6
Thay đổi đường dẫn từ <argument name="path" xsi:type="string">support/customer/index</argument> đến<argument name="path" xsi:type="string">support/customer</argument>
Codrain Technolabs Pvt Ltd

Hãy cho tôi biết nếu nó giúp
Codrain Technolabs Pvt Ltd

@YagneshPonkiya. Cảm ơn bạn đã trả lời nhanh chóng. Vâng, nó đang hoạt động. Đặt bình luận của bạn như một câu trả lời để tôi có thể chấp nhận.
Shyam

@YagneshPonkiya. Ngoài ra, bạn có thể vui lòng cho tôi biết vấn đề là gì? Tại sao chúng ta cần thay đổi điều đó? Cảm ơn trước.
Shyam

@Shyam, bạn đã hoàn thành mô-đun này? Tôi đang tạo ra chức năng tương tự trong dự án M2 của tôi. Vì vậy, bạn có thể vui lòng hướng dẫn cho tôi cách tôi có thể tạo chức năng này? Cảm ơn
mageDev0688

Câu trả lời:


23

Để hoàn thành công việc, vui lòng thay đổi đường dẫn trong tệp bố cục của bạn như bên dưới.

<argument name="path" xsi:type="string">support/customer</argument>

Xin lưu ý, tôi đã loại bỏ phần hành động khỏi chuỗi đường dẫn.

Để biết thêm thông tin, tại sao bạn cần làm điều này xin vui lòng nghiên cứu tập tin dưới đây.

Magento \ Framework \ View \ Element \ Html \ Link \ Current.php

Hy vọng điều này sẽ giúp bạn.


Nếu tôi có một tên hành động khác thay vì Index, thì không được gọi ....
Manish

nếu bạn có hành động khác ngoài "chỉ mục". bạn nên sử dụng đường dẫn đầy đủ như "hỗ trợ / khách hàng / abc". Cũng đảm bảo tên trước và id tuyến đường của bạn giống nhau.
Codrain Technolabs Pvt Ltd

@YagneshPonkiya, hiện tại tôi đang gặp phải vấn đề tương tự và tôi đã đặt câu hỏi ở đây tôi đã thử với đoạn mã trên nhưng tôi đang gặp sự cố trang 404.
mageDev0688

@Yagnesh nếu tôi ở khách hàng / tài khoản / trang thì menu có lớp "hiện tại". Tuy nhiên nếu tôi ở trang khách hàng / tài khoản / chỉnh sửa thì lớp "hiện tại" không có mặt. Bạn có thể giúp? Tôi cũng muốn có lớp "hiện tại" trên menu cho các trang nội bộ.
Sejal Shah

@YagneshPonkiya Còn trang cms thì sao?
Nitesh

2

Bạn có thể viết theo bố cục tùy chỉnh của bạn

<referenceBlock name="customer-account-navigation-suppport-ticket-link">
                <arguments>
                    <argument name="current" xsi:type="boolean">true</argument>
                </arguments>
    </referenceBlock>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.