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!
我认为您需要在模块块中添加父块的所有依赖项。