Die Filternavigation kann unter Umständen sehr lang werden. Um Platz zu sparen bietet sich die Verwendung von platzsparenden Drop-Down Feldern an.
Wie die hierfür zuständige filter.phtml geändert werden muss zeigt dieses Tutorial.
Die einzige Datei die geändert werden muß ist die filter.phtml.
Zu finden ist sie unter
app/design/frontend/IhrInterface/IhrTheme/catalog/layer/filter.phtml
Einfach den gesamten Inhalt durch diesen Code ersetzen oder die filter.phtml am Ende dieses Tutorial downloaden.
<script type="text/javascript">
<!--
function magejump(targ,selObj,restore){
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<select name="magestp" id="magestp" onChange="magejump('parent',this,0)">
<option value="">egal</option>
<?php foreach ($this->getItems() as $_item): ?>
<option value="<?php echo $this->urlEscape($_item->getUrl()) ?>"><?php echo $_item->getLabel() ?> (<?php echo $_item->getCount() ?>)</option>
<?php endforeach ?>
</select>
Im ersten Abschnitt wird bei der Auswahl ein kleines Javascript aufgerufen das die Filterung anstößt wenn ein Select-Feld ausgewählt wird.
Im zweiten Abschnitt wird die foreach-Schleife durchlaufen und in Drop-Down Auswahlfeldern verpackt.
Das war auch schon alles.
Viel Spass damit.
Stefan Pröhl
mageintern.de / robin2160
filter.phtml downloaden (zip)
Ein Tipp noch am Schluß:
Wenn Sie die Anzahl der Produkte (xx) nicht anzeigen möchten kann diese Ausgabe auch deaktiviert werden.
Hierzu einfach
(<?php echo $_item->getCount() ?>)
aus dem Code entfernen.
Hallo,
ich hätte da auch noch eine Frage … wie kann ich die Positionierung der Filter-Navigationsbox beeinflussen? In der linken Sitebar habe ich die Kategorien und darüber die Filter-Navigation. Jetzt möchte ich gerne, dass die Kategorien an oberster Stelle erscheinen und darunter erst die Filter-Navigation.
Ist das Möglichkeit? In den XML-Dateien konnte ich leider nichts passendes finden.
[Antwort]
Hallo super tutorial.
Gibt es eine Möglich keit das ich direkt im egal das Attribut reinbekomme also nicht “egal”
Farbe
Große
VG
[Antwort]
Hey,
vielen Dank für euer Tutorial ihr seid die besten!
Viele Grüße
[Antwort]
Hallo, vielen Dank.
Das Tutorial kommt genau passend zu meinem aktuellem Projekt.
Viele Grüße
Kai
[Antwort]
Nochmal kurz zum mitschreiben;
1. Filter.phtml downloaden, entzippen und evtl. öffnen bzw. gleich wieder auf den Server hochladen.
2. Öffnen und evtl. egal durch ein anderes Wort (z.B. “alle anzeigen” ersetzen)
3. Die CSS Datei des momentan verwendeten Themes öffnen (meist zu finden unter /skin/frontend/default/name_deines_Themes/css)
4. Hier den Code am Ende einfügen: #magestp { width: 200px;}
5. Weitere Anpassungen mittels CSS sind natürlich auch möglich. Siehe:
http://de.selfhtml.org/html/formulare/formatieren.htm
6. CSS Datei wieder hochladen. Voila’
Allerdings wäre noch das Problem der untenstehenden Frage. Gibt es den hierfür schon eine Lösung? Ich denke mal es betrifft relativ viele das Sie nur ein Attribut haben und dies natürlich nicht zur Auswahl bereitstellen wollen!
[Antwort]
mageintern - robin2160 Antwort vom Januar 3rd, 2011 00:55:
Dieses Tutorial verändert die Ausgabe der Layered Nav nicht die Funktionen. Sollen Auswahlen mit nur einem Wert nicht angezeigt werden muss man mittels einem eigenem Modul die magento Standardfunktionen modifizieren. Aber dies ist nicht Bestandteil von diesem Tutorial.
VG Stefan
[Antwort]
Oli Antwort vom Januar 3rd, 2011 11:24:
Hallo Stefan,
das wir hier nur von der Ausgabe reden war mir schon klar. Dachte vielleicht hättest du den Lösungsansatz gleich parat aus deinem Erfahrungsschatz. Wär aber ne’ tolle Idee für ein Tutorial oder
)
[Antwort]
Hat super funktioniert. Nur wie kann ich z.B. einstellen das alle Boxen die selbe Breite haben. Mit “width” ist das ja machbar. Nur wo einsetzen?? Oder wie erstelle ich eine eigene CSS Klasse hierfür??
[Antwort]
Oli Antwort vom Dezember 28th, 2010 13:17:
Könnt ihr mir bitte helfen?
[Antwort]
mageintern - robin2160 Antwort vom Dezember 28th, 2010 18:00:
Füge diese Klasse in deine css ein:
#magestp { width: 200px;}Die width Angabe muss du nach deinen Vorstellungen anpassen.
VG Stefan
[Antwort]
Oli Antwort vom Januar 1st, 2011 23:54:
Hat prima geklappt, vielen Dank! Ist es möglich das wenn nur ein Attributwert vorhanden ist keine Auswahl angezeigt wird?
Harry Antwort vom Januar 2nd, 2011 19:56:
Hallo,
danke füpr die Anleitung. Inb welche .css Datei muss ich diese Klasse schreiben? Kann ich hier auch das Dropdownmenu farblich anpassen?
Danke,
Harry
thank you for your help. Finally i found solution from this page only. Anyway your code and Google translator helps me to got what i need. Once again thank you
[Antwort]
Hi,
gibt es auch eine Möglichkeit, die Dropdowns auf bestimmte Atrribute zu beschränken?
[Antwort]
Hallo
Vielen Dank für die gute Anleitung
Eine Frage, ist es auch möglich dass nach der Wahl das Dropdown bleibt? Man sieht ja dann was gewählt wurde. Darüber müsste dann nicht zusätzlich das Feld was gewählt wurde angeizeigt werden.
Cheers – Oli
[Antwort]
mageintern - robin2160 Antwort vom Juni 27th, 2010 13:28:
Hi Oli,
die Verarbeitung (auch die Anzeige) wird von magento gesteuert. Ohne Änderungen am core (Extension) ist da leider nichts zu machen.
VG Stefan
[Antwort]
Hallo,
vielen Dank für das Tutorial!
Gibt es denn auch eine Möglichkeit, dass nur die Filter angezeigt werden, die mehr als ein Element haben?
Beispiel: Ich habe eine Kategorie, in der ist bei allen Elementen das Attribut XYZ = AAA.
Nun erscheint in der Filter-Navigation das Drop-Down-Feld für das Attribut dennoch, auch wenn es dort nur die eine Option “AAA” gibt.
Wäre natürlich toll, wenn die Drop-Down nur dann angeziegt werden würden, wenn es mindestens 2 Auswahlmöglichkeiten gibt.
Hat jemand einen Tipp, wie man das machen könnte?
Vielen Dank!
Torsten
[Antwort]
Hallo,
vielen Dank dafür. Mich würde aber die Frage von wurgli auch interessieren, ist da was möglich?
[Antwort]
mageintern - robin2160 Antwort vom Februar 3rd, 2010 23:15:
Hi Noisi und wurgli,
im Prinzip ja.
Als Denkansatz wäre dies eine Lösung:
In der catalog/layer/filter.phtml werden mit der foreach Schleife die Daten (Url und Name) in der Reihenfolge ausgegeben die man den einzelnen Attributen mitgegeben hat. Einfach einen Zähler mitlaufen lassen und den Zähler abfragen.
Ist Zähler=1 dann mach ein Selectfeld oder überspringe den Datensatz, usw.
Ist Zähler=2 dann mach dieses oder jenes usw..
In einem Projekt hatte ich dies schon einmal realisieren dürfen.
Viele Grüße
Stefan Pröhl
[Antwort]
Vielen Dank für die tolle Anleitung, klappt super.
Eine Frage habe ich noch in meinem mehrsprachigen Shop wird leider immer das Admin Label des Attributes verwendet, wie kann man auf die entsprechende Übersetzung zugreifen. Vielen Dank im Voraus für einen Tip
Sepp
[Antwort]
Hallo,
super Anleitung werde ich gleich versuchen. Gibt es auch eine Möglichkeit nur für ein bestimmtes Attribut eine Drop Down Auswahl zu realisieren?
[Antwort]