Question

How do I remove the View All link from the menu in rwd theme?

This is the current set of categories I have and how I want it to show in the menu

Category 1
-- Subcategory 1
---- Subcategory 1
-- Subcategory 2

Category 2
-- Subcategory 1

When using rwd it shows the menu like this

Category 1
--View All Category 1
-- Subcategory 1
---- View All Subcategory 1
---- Subcategory
-- Subcategory 2

Category 2
-- Subcategory 1

I've tried searching but can't find a solution to this.

Was it helpful?

Solution

To do this you'll first want to (if you haven't already) create a custom template directory within the RWD design package. This avoids re or overwriting your default templates that live in magento/app/design/frontend/rwd/default/template.

For the sake of example we'll create magento/app/design/frontend/rwd/custom/template

The specific template we're going to be editing is the topmenu renderer.phtml - which resides at magento/app/design/frontend/rwd/default/template/page/html/topmenu/renderer.phtml. To extend this file properly, create a matching directory structure within the magento/app/design/frontend/rwd/custom/template directory we just created - you should end up with a directory that looks like this: magento/app/design/frontend/rwd/custom/template/page/html/topmenu

Once your topmenu template directory has been created, copy the renderer.phtml file from rwd/default/template/page/html/topmenu into the rwd/custom/template/page/html/topmenu directory you just created.

This file should contain the following code at ~ lines 62 - 71:

    if (!empty($_hasChildren)) {
    $html .= '<ul class="level'. $childLevel .'">';
    $html .=     '<li class="level'. $nextChildLevel .'">';
    $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>';
}

In your copied file, you'll want to remove or comment out the mid-section so that you're left with:

    if (!empty($_hasChildren)) {
    $html .= '<ul class="level'. $childLevel .'">';
    $html .=     $this->render($child, $childrenWrapClass);
    $html .= '</ul>';
}

Once you've saved your file you can go into adminhtml -> System -> Configuration -> General -> Design -> Themes and set the field "Templates" to the value "custom" -> Save Config and then clear cache.

You should now no longer see the "View All XXX" portion of your sites navigation!

OTHER TIPS

You can also add this CSS somewhere (like styles.css)

.view-all {
    display: none;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top