Magento 2 में ग्राहक खाता नेविगेशन के लिए कस्टम सक्रिय लिंक जोड़ें


10

मैं ग्राहक खाता नेविगेशन में एक कस्टम लिंक जोड़ने का प्रयास कर रहा हूं। मेरा कस्टम लिंक खाता नेविगेशन और काम करने में भी दिखाई दे रहा है, लेकिन यह क्लिक पर सक्रिय / चालू नहीं दिख रहा है।

यहाँ छवि विवरण दर्ज करें

नीचे मेरे पास कोड है:

/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/Controller/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
से पथ बदल <argument name="path" xsi:type="string">support/customer/index</argument> करने के लिए<argument name="path" xsi:type="string">support/customer</argument>
Codrain Technolabs प्राइवेट लिमिटेड

मुझे पता है कि अगर यह मदद करता है
कोड्रेन टेक्नोलैब्स प्राइवेट लिमिटेड

@YagneshPonkiya। आपके त्वरित उत्तर के लिए धन्यवाद। हाँ, यह काम कर रहा है। अपनी टिप्पणी को उत्तर के रूप में रखें ताकि मैं स्वीकार कर सकूं।
श्याम

@YagneshPonkiya। इसके अलावा, क्या आप मुझे बता सकते हैं कि मुद्दा क्या था? हमें इसे बदलने की आवश्यकता क्यों थी? अग्रिम में धन्यवाद।
श्याम

@ ध्यानम, क्या आपने इस मॉड्यूल को पूरा किया है? मैं अपने M2 प्रोजेक्ट में समान कार्यक्षमता बना रहा हूं। तो, क्या आप कृपया मुझे मार्गदर्शन दे सकते हैं कि मैं यह कार्यक्षमता कैसे बना सकता हूं? धन्यवाद
mageDev0688

जवाबों:


23

काम पूरा करने के लिए, कृपया नीचे की तरह अपनी लेआउट फ़ाइल में पथ बदलें।

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

कृपया ध्यान दें, मैंने पथ स्ट्रिंग से कार्रवाई भाग हटा दिया है।

अधिक जानकारी के लिए, आपको ऐसा करने की आवश्यकता क्यों है कृपया फ़ाइल के नीचे अध्ययन करें।

Magento \ फ्रेमवर्क \ देखें \ तत्व \ एचटीएमएल \ लिंक \ Current.php

आशा है कि यह आपकी मदद करेगा।


यदि मेरे पास इंडेक्स के बजाय एक और एक्शन नाम है, तो कॉल नहीं किया जाएगा ...
मनीष

यदि आपके पास "इंडेक्स" के अलावा अन्य कार्रवाई है। आपको "सहायता / ग्राहक / एबीसी" जैसे पूर्ण पथ का उपयोग करना चाहिए। यह भी सुनिश्चित करें कि आपका फ्रंटनाम और रूट आईडी समान हो।
कॉड्रेन टेक्नोलैब्स प्राइवेट लिमिटेड

@YagneshPonkiya, मैं इस समय एक ही मुद्दे का सामना कर रहा हूं और मैंने यहां प्रश्न रखा है मैंने उपरोक्त कोड के साथ प्रयास किया है लेकिन मुझे 404 पृष्ठ का मुद्दा मिल रहा है।
mageDev0688

@ याग्नेश अगर मैं ग्राहक / खाता / पृष्ठ पर हूं तो मेनू में कक्षा "चालू" है। हालाँकि अगर मैं ग्राहक / खाता / संपादन पृष्ठ पर हूँ तो "वर्तमान" वर्ग मौजूद नहीं है। क्या आप मदद कर सकते हैं? मैं आंतरिक पृष्ठों के लिए मेनू पर "वर्तमान" वर्ग भी रखना चाहता हूं।
सेजल शाह

@YagneshPonkiya सेमी पृष्ठ के बारे में क्या?
नितेश

2

आप अपने कस्टम लेआउट में लिख सकते हैं

<referenceBlock name="customer-account-navigation-suppport-ticket-link">
                <arguments>
                    <argument name="current" xsi:type="boolean">true</argument>
                </arguments>
    </referenceBlock>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.