Ich habe Probleme, den Kategoriefilter aus der Ebene zu entfernen, da meine neue Website bereits ein Dropdown-Menü für Kategorien enthält, sodass nur Platz verschwendet wird (und meine Kunden verwirrt werden).
Ich weiß, dass dieses Problem bereits viele Male gestellt und bereits gelöst wurde, aber ich habe jede Lösung ohne Erfolg ausprobiert. Ich glaube, dass dies mit der benutzerdefinierten Vorlage zusammenhängt, die ich für die Website verwende.
Nachdem ich mir meine Datei local.xml (in meinem Vorlagenordner) angesehen habe, glaube ich, dass ich diese Zeilen umgehen sollte:
<reference name="product_list">
<block type="core/text_list" name="category-right" as="category-right" translate="label">
<label>Right Column</label>
<block type="catalog/navigation" name="catalog.category" before="-" template="catalog/navigation/category_nav.phtml"/>
<block type="catalog/layer_view" name="catalog.leftnav" after="catalog.category" template="catalog/layer/view.phtml"/>
<block type="filterproducts/bestsellers_home_list" name="bestseller" template="catalog/navigation/best_sellers.phtml"/>
<block type="core/template" name="right.permanent.callout" template="callouts/right_col.phtml">
<block type="cms/block" name="cms_images_block">
<action method="setBlockId"><block_id>category_right_block</block_id></action>
</block>
</block>
</block>
</reference>
Der erste Blocktyp sollte das Kategoriemenü sein (und damit bin ich einverstanden). Der zweite Blocktyp erstellt das Menü "Filtern nach" direkt unter dem Kategoriemenü, und ich bin mir ziemlich sicher, dass das Problem hier liegt.
Ich glaube, ich sollte etwas in der "catalog.leftnav" deaktivieren, aber selbst wenn ich versuche, diesen Code hinzuzufügen:
<catalog_category_layered>
<reference name="product_list">
<action method="unsetChild"><child>category_filter</child></action>
</reference>
</catalog_category_layered>
nichts passiert. Was mache ich falsch?
quelle
Antworten:
Basierend auf stackexchange.com Antwort:
Wenn Sie dies über XML tun möchten, sollten Sie catalog.xml bearbeiten
ersetzen:
mit diesem:
quelle
<reference name="catalog.leftnav"> <action method="unsetChild"><alias>category_filter</alias></action> </reference>
, fügen Sie ihn jedoch in local.xml ein. Dies funktionierte für mich am 1.8Versuchen Sie zuerst diesen Code. Hier versuchen wir dies über das Layout XML Update zu entfernen
Datei :
app/design/frontend/<package>/<theme>/layout/local.xml
Dies wird Ihr Problem lösen.
Wenn es nicht funktioniert hat, müssen Sie einen Block neu schreiben. Dazu müssen Sie ein Modul erstellen. Der Block, den Sie neu schreiben müssen, ist
Mage_Catalog_Block_Layer_View
.Die Aktivierungsdatei des Moduls sieht folgendermaßen aus
Datei :
app/etc/modules/Avoid_CategoryFromLN.xml
So sieht das Umschreiben der Konfiguration aus
Datei :
app\code\local\Avoid/CategoryFromLN/etc/config.xml
Jetzt sollte Ihr Umschreibblock diesen Inhalt besitzen
Datei :
app\code\local\Avoid/CategoryFromLN/Block/Layer/View.php
Hier
getFilters()
ist die Methode, die tatsächlich Kategoriefilter in geschichteten Navigationsfiltern enthält. Wir entfernen diesen Code einfach, indem wir die Kernklasse neu schreiben. Das ist es.Großer Hinweis :: Sie sollten Großbuchstaben so lassen, wie sie sind. Mach ihnen keine kleinen Buchstaben. Wenn Sie dies tun, wird es nicht funktionieren. Magento ist in diesen Dingen streng :) Überarbeiten Sie also alle Ordnernamen und Dateinamen mehrmals. Stellen Sie sicher, dass Sie den Inhalt aller Namen unverändert lassen
Versuchen Sie es jetzt erneut.
quelle
isAnchor
aufno
, dann verschwand die gesamte Schicht Navigation erhalten.Ich werde aufschreiben, was es für mich als Referenz für andere funktioniert hat
Hinzufügen dieser:
Auf der Registerkarte "Benutzerdefiniertes Design" aller Kategorien wird der Trick ausgeführt.
Denken Sie daran, es besonders in die übergeordnete Kategorie aufzunehmen, das hat es für mich getan.
quelle
Die nicht eingestellte untergeordnete Lösung
local.xml
funktioniert gut. Bitte beachten Sie, dass bei der Arbeit mit Enterprise Edition die Referenz "enterprisecatalog
" heißt:Randnotiz: Möglicherweise finden Sie in keinem der XML-Kernelemente entsprechende untergeordnete Blockdefinitionen. Dies liegt daran, dass untergeordnete Elemente wie "
category_filter
" in_prepareLayout
Abhängigkeit von der entsprechenden Katalogschichtansicht erstellt (fest codiert) werden . Mit könnenunsetChild
Sie jedoch das fest codierte hinzugefügte untergeordnete Element entfernen.quelle
Dies funktioniert unter https://magento.stackexchange.com/a/45249/9951
ABER
Außerdem müssen Änderungen an app / design / frontend / rwd / default / template / catalog / layer / view.phtml hinzugefügt werden
so was
Außerdem müssen Änderungen an /app/code/core/Mage/Catalog/Block/Layer/View.php vorgenommen werden
copy /app/code/core/Mage/Catalog/Block/Layer/View.php
zu /app/code/local/Mage/Catalog/Block/Layer/View.php
und Änderungsmethode canShowOptions ()
brauche Veränderung
zu
und versuche
quelle
Dies hat bei mir funktioniert (unter Magento 1.9).
Fügen Sie Ihrer
local.xml
Datei folgende Zeilen hinzu :quelle