Mover el bloque de navegación en capas entre la barra de herramientas de la lista de productos y la lista de productos
-
16-10-2019 - |
Pregunta
He movido el bloque de navegación en capas a la sección de contenido, sin embargo, no puedo entender cómo colocar el bloque. Solo puedo hacer que se muestre en la parte superior de la página o la parte inferior. Lo necesito antes de la lista de productos y después de la barra de herramientas. Hasta ahora mi XML se ve así:
<reference name="content">
<block type="catalog/layer_view" name="catalog.leftnav" before="product_list" after="product_list_toolbar" template="catalog/layer/view.phtml"/>
</reference>
Pero eso no parece estar funcionando. ¿Alguna sugerencia?
Gracias
Solución
La razón por la que su navegación en capas solo aparece en la parte inferior o en la parte superior de la página es que agrega el bloque al "nivel" de bloque incorrecto.
Agregaste el bloque al bloque content
que solo tiene dos bloques infantiles directos: category.products
y product.tooltip
. Por lo tanto, solo puede agregar su bloque en la parte superior, entre estos dos bloques o en la parte inferior.
Cómo mover la navegación en capas entre la barra de herramientas de la lista de productos y la lista de productos
Agregue este código a su Diseño XML:
<?xml version="1.0"?>
<layout version="0.1.0">
<catalog_category_layered>
<reference name="left">
<action method="unsetChild"><alias>catalog.leftnav</alias></action>
</reference>
<reference name="product_list">
<action method="insert"><blockName>catalog.leftnav</blockName></action>
</reference>
</catalog_category_layered>
</layout>
Esta voluntad Muevete el bloque de navegación en capas desde la columna izquierda a la columna de contenido sin recrear clases y similares. Puedes ver que inserté el bloque cuando era niño del bloque product_list
.
Si llama a la página ahora, verá que la navegación en capas no se muestra en absoluto. Eso es porque se opone al content
bloque, el product_list
Block no emite todos los bloques infantiles de forma predeterminada. Tienes que hacer eco del bloque en el archivo de plantilla.
Copiar app/design/frontend/base/default/template/catalog/product/list.phtml
(Reemplace la base/predeterminada con su tema base si usa otro como punto de partida) a su tema y dígale a Magento que producción La navegación en capas directamente después de la primera barra de herramientas:
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
<div class="category-products">
<?php echo $this->getToolbarHtml() ?>
<?php echo $this->getChildHtml('catalog.leftnav'); /* THIS IS THE NEW LINE */ ?>
<?php // List mode ?>
Obtendrá algo como esto y puede continuar desde aquí: