suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Blockdatei vom Anbietermodul wird überschrieben, Änderungen werden nicht angezeigt

Wir verwenden das Codazon MegaMenu-Modul für das Hauptmenü, aber die Links haben keine Titel-Tags. Ich möchte dies überschreiben, sodass dem Kategorielink ein Titelattribut hinzugefügt wird, dessen Wert der Kategoriename ist.

Ich habe mein eigenes Modul erstellt und die spezifische Methode (_getHtml) kopiert, mit der ich Tags für Kategorielinks erstelle, und versucht, Titel-Tags hinzuzufügen. Ich glaube, ich mache alles richtig, aber nach dem Aktualisieren der Seite wird der Titel nie angezeigt.

Ich habe den Cache aktualisiert/bereinigt, statische Dateien aktualisiert und aktualisiert.

Dies ist die Block/Widgets-Datei in meinem Modul (ursprünglich unter app/code/Codazon/MegaMenu/Block/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;
    }   
}

Das ist meine di.xml:

<?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>

Das ist meine module.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>

Irgendwelche Ideen, warum das nicht funktioniert? Dies ist das erste Mal, dass ich eine solche Berichterstattung mache.

Danke!

P粉321584263P粉321584263347 Tage vor422

Antworte allen(1)Ich werde antworten

  • P粉714844743

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

    我认为您需要在模块块中添加父块的所有依赖项。

    Antwort
    0
  • StornierenAntwort