Как добавить динамическую метку В Magento 2?


Я хочу добавить динамическую метку в панель мониторинга клиентов (имя метки устанавливается динамически)

<?xml version="1.0"?>

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <update handle="customer_account"/>
    <body>   
        <referenceBlock name="customer_account_navigation">
            <block class="Magento\Framework\View\Element\Html\Link\Current" name="customer-account-navigation-custom-product" ifconfig="mconnect_csproduct/cs_customer/display_on_dashboard">
                <arguments>
                    <argument name="path" xsi:type="string">vender/customer/products/</argument>
                    <argument name="label" xsi:type="string" translate="true">dynamic label add</argument>                      
                </arguments>
            </block>
        </referenceBlock>
    </body> 
</page>

enter image description here

Author: Prince Patel, 2017-08-08

1 answers

Вы можете использовать помощник для получения динамической метки. Добавьте помощника в <argument/> и chnage xsi:type="string", чтобы xsi:type="helper"

<argument name="label" xsi:type="helper" helper="Vendor\Module\Helper\Data::getLabel"></argument>                     

В своем помощнике вы можете получить динамическую метку, подобную этой

<?php

namespace Vendor\Module\Helper;

class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
    public function getLabel()
    {
        //Your logic here

        $label = "Dynamic Label based on your logic";

        return $label;
    }
} 

Я использую этот же способ для динамического изменения логотипа. Обратитесь к этому ответу для получения дополнительной информации: https://magento.stackexchange.com/a/176309/35758

Если вы хотите изменить весь HTML-код ссылки навигации, обратитесь к этому ответу: https://magento.stackexchange.com/a/190842/35758

 7
Author: Prince Patel, 2018-08-12 06:24:43