wie man Bilder im Dropdown-Menü in Magento anzeigt, ohne Plugins zu verwenden [geschlossen]

7

In Magento habe ich Kategorien und Unterkategorien hinzugefügt, diese werden auf der Homepage meiner Website angezeigt.

Jetzt möchte ich Unterkategorien zusammen mit dem jeweiligen Bild anzeigen. Ich möchte jedoch keine von Magento bereitgestellten Erweiterungen verwenden.

Der folgende Schnappschuss zeigt, wie mein Dropdown-Menü aussieht, aber ich möchte der jeweiligen Kategorie ein Bild hinzufügen. Dropdown-Menü mit Unterkategorien

Dies ist der Code, den ich in renderer.phtml app / design / frontend / rwd / default / template / page / html / topmenu hinzugefügt habe

<?php

$html = '';

$children = $menuTree->getChildren();
$parentLevel = $menuTree->getLevel();
$childLevel = is_null($parentLevel) ? 0 : $parentLevel + 1;

$counter = 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 = 'level'. $childLevel;
    $_hasChildren = ($child->hasChildren()) ? 'has-children' : '';

    $html .= '<li '. $this->_getRenderedMenuItemAttributes($child) .'>';

    $html .= '<a href="'. $child->getUrl() .'" class="'. $outermostClassCode .' '. $_hasChildren .'">'. $this->escapeHtml($this->__($child->getName())) .'</a>';

    if (!empty($childrenWrapClass)) {
        $html .= '<div class="'. $childrenWrapClass .'">';
    }

    $nextChildLevel = $childLevel + 1;

    if (!empty($_hasChildren)) {
        $html .= '<ul class="level'. $childLevel .'">';
        $html .=     '<li class="level'. $nextChildLevel .' view-all">';
        $html .=         '<a class="level'. $nextChildLevel .'" href="'. $child->getUrl() .'">';
        $html .=             $this->__('View All') . ' ' . $this->escapeHtml($this->__($child->getName()));
        $html .=         '</a>';
        $html .=     '</li>';
        $html .=     $this->render($child, $childrenWrapClass);
        $html .= '</ul>';
    }

    if (!empty($childrenWrapClass)) {
        $html .= '</div>';
    }

    $html .= '</li>';

    $counter++;
}

return $html;

und folgenden Code habe ich in app / design / frontend / rwd / default / template / page / html / topmenu.phtml hinzugefügt

<?php $_menu = $this->getHtml('level-top') ?>
<?php if($_menu): ?>
<nav id="nav">
    <ol class="nav-primary">
        <?php echo $_menu ?>
    </ol>
</nav>

<?php endif ?>

und außerdem habe ich folgenden Code in app / etc / modules / WP_customMenu.xml hinzugefügt, um die Kategorieliste in angepasster Form anzuzeigen

<?xml version="1.0"?>
<config>
    <modules>
        <WP_CustomMenu>
            <active>true</active>
            <codePool>community</codePool>
        </WP_CustomMenu>
    </modules>
</config>
rashmi sm
quelle
Veröffentlichen Sie Ihren Code, den Sie versucht haben
MeenakshiSundaram R
2
Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da es tatsächlich darum geht, eine Drittanbieter-Erweiterung (WP_CustomMenu) zu verwenden, obwohl der Titel dies sagt.
Fabian Schmengler
@fschmengler, ich stimme dem falschen Titel zu, aber ist das betreffende Modul nicht Open Source und frei verfügbar?
Prateek

Antworten:

1

Sie müssen die Kategorie in Ihre Vorlage laden. Entweder nach der Factory-Methode (wie hier gezeigt) oder in Ihrer Blockinstanziierung ({{block}} oder XML-Block). Ich hoffe, dieses Code-Snippet wird helfen.

$_helper    = $this->helper('catalog/output');
$_category  = Mage::getModel('catalog/category)->load(CATEGORYID);// get your category here.
$_imgHtml   = '';
if ($_imgUrl = $_category->getImageUrl()) {
    $_imgHtml = '<p class="category-image"><img src="'.$_imgUrl.'" alt="'.$this->htmlEscape($_category->getName()).'" title="'.$this->htmlEscape($_category->getName()).'" /></p>';
    $_imgHtml = $_helper->categoryAttribute($_category, $_imgHtml, 'image');
    echo $_imgHtml;
}
Vishwas Bhatnagar
quelle
0

Gehen Sie zum Magento-Administrationsbereich, navigieren Sie zu Katalog-> Kategorien verwalten-> und klicken Sie auf die gewünschte Kategorie. Notieren Sie sich die ID der erforderlichen Kategorie, z. B.: Nehmen Sie die ID des Abenteuers als: 2796

Gehen Sie nun zu cms-> statischer Block> Neuen Block hinzufügen

Blocktitel *: wp_custom_menu_2796 Kennung *: wp_custom_menu_2796 Speicheransicht *: erforderliche Ansicht Status *: aktiviert Inhalt *:

2796 ist die Kategorie-ID

rashmi sm
quelle
@ rashmi sm, hi schwester, könntest du bitte Screenshots teilen, was du getan hast.
Gem
@ Rashmi Sm: Ich habe Ihren Punkt gemacht, aber kein Bild angezeigt, snag.gy/qEB3fo.jpg