Maison  >  Questions et réponses  >  le corps du texte

Écrasement du fichier de bloc du module fournisseur, les modifications ne s'affichent pas

Nous utilisons le module Codazon MegaMenu pour le menu principal, mais les liens n'ont pas de balise de titre. Je souhaite remplacer cela afin qu'un attribut de titre soit ajouté au lien de catégorie avec la valeur étant le nom de la catégorie.

J'ai créé mon propre module et copié la méthode spécifique (_getHtml) où je crée des balises pour les liens de catégorie et j'ai essayé d'ajouter des balises de titre. Je pense que je fais tout correctement, mais après avoir actualisé la page, je ne vois jamais le titre apparaître.

J'ai actualisé/nettoyé le cache, mis à niveau et actualisé les fichiers statiques.

Voici le fichier Block/Widgets dans mon module (situé à l'origine dans 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;
    }   
}

Voici mon 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>

Voici mon 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>

Une idée de la raison pour laquelle cela ne fonctionne pas ? C'est la première fois que je fais une telle couverture.

Merci !

P粉321584263P粉321584263251 Il y a quelques jours336

répondre à tous(1)je répondrai

  • P粉714844743

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

    Je pense que vous devez ajouter toutes les dépendances du bloc parent dans le bloc module.

    répondre
    0
  • Annulerrépondre