Artikel nach einem Artikel Attribut sortieren

Hallo, ich habe hierzu das Wiki „Können Artikel nach einem Artikel Attribut sortiert angezeigt werden?“ gefunden. Das Problem ist, ich brauche das nur für eine bzw. für bestimmte Kategorien, da die Standard-Sortierung in den anderen Kategorien erhalten bleiben sollte. Gibt es dafür auch eine Lösung? Grüße rattatui

Vielleicht könnte man dafür ein Freitextfeld der Kategorie nehmen? Dann aber die Sortierung mit IF einbauen.

1 „Gefällt mir“

Oh das ist eine gute Idee - das wird dann wohl per if/else im Frontend in der entsprechenden .tpl Datei gemacht - laut wiki ist die Sortierung ja im Backend einzutragen - Du meinst, die geänderte Sortierung dann im Freitext-Feld einzutragen? Grüße rattatui

Ich meine eher so etwas: bei den Kategorien wird ein Freitextfeld verwendet (z.B. “Freitext 6”). Dann könnte man statt “aAttributes.attr20 DESC” folgendes eintragen: if( (select distinct s\_categories.ac\_attr6 from s\_categories where id=aCategories.categoryID) = 'OK', feld1, feld2) DESC Also funktionieren wird das schon (wenn man die richtigen Felder statt feld1 und feld2 setzt). Es kann aber gut sein, dass eine elegantere und/oder schnellere Lösung möglich ist. Der Vorteil dabei, dass keine Anpassung von Templates oder anderen Dateien notwendig ist. Das ist nur so gedacht, ich prüfe das gleich und melde mich.

Hallo rattatui, magst du mal bitte folgendes ausprobieren. Zuerst bei einer Kategorie deiner Wahl in das Feld „Freitext 6“ das Wort OK eintragen. Danach diesen String unter "Unter Einstellungen / Grundeinstellungen / Storefront / „Kategorien/Listen“ eintragen (statt aAttributes.attr20 DESC): if( (select distinct s\_categories.ac\_attr6 from s\_categories where s\_categories.id=aCategories.categoryID) = 'OK', aAttributes.attr20, a.datum) DESC Danach Cache leeren und prüfen, ob die Artikel wie gewünscht sortiert werden. Das könnte ich selbst machen, müsste aber die attr20 Felder bei den Artikel pflegen.

1 „Gefällt mir“

super :thumbup: ich kann es leider nicht sofort probieren, meine Regierung verlangt nach mir. Ich teste es entweder nachher noch oder spätestens morgen. …Wobei ich ja enweder laut Wiki-Kommentaren betreffs der besseren Sortierung INT, oder besser Weil ich ein attribut (typ text) doppelt nutzen könnte anstatt noch eins zu vergeben das hier angepasst werden müsste: CAST(aAttributes.attr20 AS SIGNED) DESC Grüße, rattatui

Ich hab’s geprüft - das funktioniert. Wenn Du noch mit CAST arbeiten möchtest, sieht die Sortierung so aus: if( (select distinct s\_categories.ac\_attr6 from s\_categories where s\_categories.id=aCategories.categoryID) = 'OK', CAST(aAttributes.attr20 AS SIGNED), a.datum) DESC

Hallo Waldicom, habe eben beide Varianten (mit und ohne CAST) probiert, aber keine Auswirkungen. Ich habe zwar attr15 und Freitext 5 benutzt, aber entsprechend angepasst. Auch in der DB das attribut von vormals VARCHAR auf TEXT umgestellt, 4 Artikel bei attr15 mit 1 bis 4 durchnummeriert und einer Kategorie zugeordnet (Freitext 5 -> OK eingetragen). Alle SW-Caches mehrfach gelöscht, Browsercache ebenfalls. Kann es sein, das dies bei Blog-Artikeln (und dementsprechend bei einer Blog-Kategorie) nicht funktioniert? Betreffs Blogs gibt es ja noch im Template die \templates_default\frontend\blog\listing.tpl Datei mit dem Block: {\* Sorting and changing layout \*} {block name="frontend\_listing\_top\_actions"} ... {foreach from=$sArticles item=article key=key name="counter"} {include file="frontend/blog/box.tpl" sArticle=$article key=$key} {/foreach} ... {/block} Funkt das in diesem Fall vielleicht dazwischen oder hat das garnichts damit zu tun? Grüße rattatui

Ich würde vermuten, das hat mit den Blog-Artikeln nichts zu tun, muss das aber erstmals testen. Bei mir funktioniert es mit normalen Artikeln… Kannst Du Deine angepasste Anfrage hier posten?

das hatte ich so gemacht: if( (select distinct s\_categories.ac\_attr5 from s\_categories where s\_categories.id=aCategories.categoryID) = 'OK', aAttributes.attr15, a.datum) DESC …Mit CAST dann genau so. Grüße rattatui

was mir grade einfällt: wird für Blog-Kategorien vielleicht garnicht “s_categories” genommen?

…ich habe nochmalmit FirePHP geschaut - “s_categories” ist schon richtig. Änderungen an der Sortierfunktion funktionieren schon, auch solche wie “articleName DESC, a.id” usw. - aber eben nur bei Produkt-Artikeln, nicht bei Blog-Artikeln :wtf: Weiterhin gibt es noch auf der Blog-Kategorieseite eine Variable Namens “sCloud”. Klick man drauf, sehe ich das hier: array( [0] =\> array( ['name'] =\>'Lorem Ipsum' ['relevance'] =\>1 ['class'] =\>'tag2' ['link'] =\>'shopware.php?sViewport=detail&sArticle=5' ) [1] =\>array( ['name'] =\>'Lorem' ['relevance'] =\>5 ['class'] =\>'tag2' ['link'] =\>'shopware.php?sViewport=detail&sArticle=151' ) [2] =\>array( ['name'] =\>'Ipsum Lorem' ['relevance'] =\>12 ['class'] =\>'tag1' ['link'] =\>'shopware.php?sViewport=detail&sArticle=152' ) [3] =\>array( ['name'] =\>'Ipsum' ['relevance'] =\>0 ['class'] =\>'tag3' ['link'] =\>'shopware.php?sViewport=detail&sArticle=153' ) ) Wobei die Blog-Artikel in der Reihenfolge untereinander genau entsprechend dem Zahlenwert bei [‘relevance’] angeordnet sind, also Ipsum Lorem (12) Lorem (5) Lorem Ipsum (1) Ipsum (0) Vielleicht ist das schon ein entscheidener Hinweis betreffs der Sortierung, aber ich komme allein damit nicht weiter… Grüße rattatui

Auch ich stehe vor der Herausforderung die Blog-Artikel anders zu sortieren. Möchte den aktuellsten zuerst anzeigen lassen. Gibt es denn schon neue Erkenntnisse? EDIT: Hat sich schon erledigt - ich hatte nur die das Erstelldatum falsch eingegeben. Den aktuellsten Artikel zuerst anzuzeigen ist ja die Standardeinstellung.

Hallo, ich muss leider auch nochmal das alte Thema raus kramen. Gibt es mittlerweile eine Möglichkeit den Blog nach anderen Kriterien zu sortieren. Ich würde gerne den Blog alphabetisch sortiert haben. Any Ideas ? (Wahrscheinlich auch das falsche Thema hier anhand der Überschrift)