Magento 2'deki müşteri hesabı navigasyonuna özel etkin bağlantılar ekleyin


10

Müşteri hesabında gezinmeye özel bir bağlantı eklemeye çalışıyorum. Özel bağlantım hesapta gezinme ve de çalışıyor, ancak tıklamada etkin / geçerli olarak gösterilmiyor.

resim açıklamasını buraya girin

Aşağıda sahip olduğum kod:

/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
Dan yolunu değiştirin <argument name="path" xsi:type="string">support/customer/index</argument> için<argument name="path" xsi:type="string">support/customer</argument>
Codrain TECHNOLABS Pvt Ltd

Bana yardımcı olursa bildirin
Codrain Technolabs Pvt Ltd

@YagneshPonkiya. Hızlı cevabınız için teşekkürler. Evet, çalışıyor. Kabul edebilmem için yorumunu cevap olarak koy.
Shyam

@YagneshPonkiya. Ayrıca, lütfen sorunun ne olduğunu söyleyebilir misiniz? Bunu neden değiştirmemiz gerekti? Şimdiden teşekkürler.
Shyam

@Shyam, Bu modülü tamamladınız mı? M2 projemde aynı işlevselliği yaratıyorum. Peki, lütfen bu işlevi nasıl oluşturabileceğimi bana yönlendirir misiniz? Teşekkürler
mageDev0688

Yanıtlar:


23

İşleri yapmak için, lütfen düzen dosyanızdaki yolu aşağıdaki gibi değiştirin.

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

Lütfen unutmayın, eylem parçasını yol dizesinden kaldırdım.

Daha fazla bilgi için, neden bunu yapmanız gerektiğini lütfen aşağıdaki dosyayı inceleyin.

Magento \ Framework \ Görünüm \ Eleman \ Html \ Bağlantı \ Current.php

Umarım bu size yardımcı olacaktır.


Dizin yerine başka bir işlem adım varsa, çağrılmaz ....
Manish

"index" dışında başka bir işleminiz varsa. "support / customer / abc" gibi tam yolu kullanmalısınız. Ayrıca ön adınızın ve rota kimliğinizin aynı olduğundan emin olun.
Codrain Technolabs Pvt Ltd

@YagneshPonkiya, şu anda aynı sorunla karşı karşıyayım ve burada soru koydum yukarıdaki kod ile denedim ama 404 sayfa sorunu alıyorum.
mageDev0688

@Yagnesh Ben müşteri / hesap / sayfa varsa menü "akım" sınıfı vardır. Ancak müşteri / hesap / düzenleme sayfasında bulunuyorsam "mevcut" sınıf mevcut değildir. Yardım edebilir misin? İç sayfalar için de menüde "geçerli" sınıf olmasını istiyorum.
Sejal Shah

@YagneshPonkiya Cms sayfası ne olacak?
Nitesh

2

Özel düzeninizde yazabilirsiniz

<referenceBlock name="customer-account-navigation-suppport-ticket-link">
                <arguments>
                    <argument name="current" xsi:type="boolean">true</argument>
                </arguments>
    </referenceBlock>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.