cari

Rumah  >  Soal Jawab  >  teks badan

Mengganti fail blok daripada modul vendor, perubahan tidak ditunjukkan

Kami menggunakan modul Codazon MegaMenu untuk menu utama, tetapi pautan tidak mempunyai tag tajuk. Saya ingin mengatasi ini supaya atribut tajuk ditambahkan pada pautan kategori dengan nilainya ialah nama kategori.

Saya mencipta modul saya sendiri dan menyalin kaedah khusus (_getHtml) di mana saya mencipta teg untuk pautan kategori dan cuba menambah teg tajuk. Saya rasa saya melakukan segala-galanya dengan betul, tetapi selepas memuat semula halaman saya tidak pernah melihat tajuk itu muncul.

Saya menyegarkan/membersihkan cache, menaik taraf dan menyegarkan fail statik.

Ini ialah fail Blok/Widget dalam modul saya (asalnya terletak dalam apl/kod/Codazon/MegaMenu/Blok/Widget):

<?php


namespace MyModule\MegaMenu\Block\Widget;

use Codazon\MegaMenu\Block\Widget\CategoriesTree as OriginalCategoriesTree;

class CategoriesTree extends OriginalCategoriesTree
{
    protected function _getHtml(
        \Magento\Framework\Data\Tree\Node $menuTree,
        $childrenWrapClass,
        $limit,
        $colBrakes = []
    ) {
        $html = '';
        $col = 1;
        
        $itemCount = $this->getData('item_count');
        
        $children = $menuTree->getChildren();
        $parentLevel = $menuTree->getLevel();
        $childLevel = ($parentLevel === null) ? 1 : $parentLevel + 1;

        $counter = 1;
        $itemPosition = 1;
        $childrenCount = $children->count();

        
        $parentPositionClass = $menuTree->getPositionClass();
        $itemPositionClassPrefix = $parentPositionClass ? $parentPositionClass . '-' : 'nav-';

        foreach ($children as $child) {
            $child->setLevel($childLevel);
            $child->setIsFirst($counter == 1);
            $child->setIsLast($counter == $childrenCount);
            $child->setPositionClass($itemPositionClassPrefix . $counter);

            $outermostClassCode = '';
            $outermostClass = $menuTree->getOutermostClass();

            if ($childLevel == 0 && $outermostClass) {
                $outermostClassCode = ' class="' . $outermostClass . '" ';
                $child->setClass($outermostClass);
            }

            if ($this->shouldAddNewColumn($colBrakes, $counter)) {
                $col = 24/ceil($childrenCount/$limit);
                $html .= '</ul></li><li class="col-sm-'.$col.'"><ul>';
            }

            $html .= '<li ' . $this->_getRenderedMenuItemAttributes($child) . '>';
            $html .= '<a class="menu-link" href="' . $child->getUrl() . '" ' . $outermostClassCode . ' title="' . $this->escapeHtml($child->getName()) . '"><span>' . $this->escapeHtml(
                $child->getName()
            ) . '</span></a>' . $this->_addSubMenu(
                $child,
                $childLevel,
                $childrenWrapClass,
                $limit
            ) . '</li>';

            $itemPosition++;
            if($itemCount){
                if($itemCount == $counter){
                    break;      
                }
            }
            $counter++;
        }

        if (is_array($colBrakes) && count($colBrakes) && $limit) {
            $html = '<li class="col-sm-'.$col.'"><ul>' . $html . '</ul></li>';
        }

        return $html;
    }   
}

Ini di.xml saya:

<?xml version="1.0"?> <config 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Codazon\MegaMenu\Block\Widget\CategoriesTree" 
type="MyModule\MegaMenu\Block\Widget\CategoriesTree" /> </config>

Ini modul saya.xml:

<?xml version="1.0"?> <config 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="MyModule_MegaMenu" setup_version="1.0.0">
        <sequence>
            <module name="Codazon_MegaMenu"/>
        </sequence>
    </module> </config>

Ada idea mengapa ini tidak berkesan? Ini kali pertama saya membuat liputan seperti ini.

Terima kasih!

P粉321584263P粉321584263315 hari yang lalu395

membalas semua(1)saya akan balas

  • P粉714844743

    P粉7148447432024-01-17 17:46:06

    Saya rasa anda perlu menambah semua kebergantungan blok induk dalam blok modul.

    balas
    0
  • Batalbalas