Mengganti fail blok daripada modul vendor, perubahan tidak ditunjukkan
P粉321584263
P粉321584263 2024-01-16 21:10:24
0
1
328

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粉321584263
P粉321584263

membalas semua(1)
P粉714844743

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!