Eliminar la barra de herramientas de la lista de productos a través de local.xml

13

Estoy acostumbrado a usar local.xml para mis actualizaciones de diseño, sin embargo, parece que no puedo eliminar la barra de herramientas del bloque de la lista de productos utilizando los métodos remove o unsetChild.

¿Alguien puede decir si esto realmente no es posible o estoy haciendo algo mal?

Yo he tratado:

<action method="unsetChild">  
    <alias>toolbar</alias>
</action>

y

<action method="unsetChild">  
    <alias>product_list_toolbar</alias>
</action>

y también los <remove name="" />métodos también pero nada funciona.

Marty Wallace
fuente

Respuestas:

11

Y no podrá eliminarlo sin anular algo. Así es como getToolbarBlock()se ve el método:

public function getToolbarBlock()
{
    if ($blockName = $this->getToolbarBlockName()) {
        if ($block = $this->getLayout()->getBlock($blockName)) {
            return $block;
        }
    }
    $block = $this->getLayout()->createBlock($this->_defaultToolbarBlock, microtime());
    return $block;
} 

Esto significa que si getToolbarBlockNameexiste un bloque con un nombre determinado (valor devuelto por ) en el diseño, se devolverá ese bloque. de lo contrario, se crea un nuevo bloque con tipo catalog/product_list_toolbary el método lo devuelve.

[EDITAR] Acabo de tener una idea loca. ¿Por qué no cambiar el tipo de bloque de la barra de herramientas? De esa manera no se representará como una barra de herramientas. No lo he probado pero creo que vale la pena.
Algo como:

<reference name="product_list">
    <block type="core/template" name="product_list_toolbar" />
</reference>

Me refiero a agregar un bloque con el mismo nombre pero un tipo diferente. Si no funciona, por favor no diga nada; es solo una idea :)

Marius
fuente
1
Su código como este que realmente me molesta con Magento. Así que ahora tengo que anular las clases o plantillas donde habría sido suficiente un buen diseño xml
Marty Wallace
He actualizado la respuesta con una idea lo suficientemente loca como para funcionar.
Marius
@MartyWallace: al menos hay un diseño XML en primer lugar. Creo que el diseño XML cae en la categoría "dar una cookie al mouse" una vez que la gente sabe cómo usarlo.
puntos de referencia
1
Diferentes tipos pueden causar problemas, ya que necesitamos la función setCollection para establecer la paginación
Alex
1
realmente frustrante, un truco aún menos intrusivo sería ocultarlo usando jquery con jQuery (document) .ready (function () {jQuery ('. limiter'). hide ();});
Danny Z
8

En su local.xmlarchivo agregue lo siguiente:

<catalog_category_default>
    <!-- Remove Toolbar by setting a blank template -->
    <reference name="product_list_toolbar">
        <action method="setTemplate"><template /></action>
    </reference>
</catalog_category_default>
Mojo
fuente
Para una actualización de diseño personalizada en una página de categoría, esta es la mejor respuesta.
Joseph en SwiftOtter
2

Parece que no puede eliminar esto o desarmar esto a través de XML debido a alguna forma extraña en que los desarrolladores construyeron la cosa. Sin embargo, puede crear una plantilla en blanco y apuntar las barras de herramientas a esta plantilla en blanco.

<catalog_category_default>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalog_category_default>
<catalog_category_layered>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalog_category_layered>
<catalogsearch_result_index>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalogsearch_result_index>

Eso lo eliminará de las categorías normales, las categorías ancladas y la página de búsqueda.

Chris Morris
fuente