Franz Holzinger

autor  
25-10-18 08:29:59 Filterung der Related products?
Sebastian Klein
Hallo,

wir haben verschiedene Produktarten, die mittels "Related products" untereinander verknüpft sind. Diese werden über die Array-Funktion von 'PIDitemDisplay' auch verschiedenen Templates (bzw. Seiten) zugewiesen, das klappt alles problemlos:

plugin.tt_products {
PIDitemDisplay {
// Produkte:
10.type = sql
10.where = pid = 11
10.pid = 1

// Verwandtes Produkt, Typ A:
20.type = sql
20.where = pid = 22
20.pid = 2

// Verwandtes Produkt, Typ B:
30.type = sql
30.where = pid = 33
30.pid = 3
}
}

Meine Frage: gibt es etwas vergleichbares für die Ausgabe von "Related products" in den Einzelansichten? Oder anders: kann man innerhalb von ###ITEM_LIST_RELATED_TEMPLATE### verwandte Produkte z.B. nach einer PID filtern?

Wenn allein mit TypoScript nicht möglich – vielleicht können Sie uns einen Tipp geben, an welcher Stelle wir mit einem Hook o.ä. eingreifen können?
25-10-18 09:38:02 pid der "Related Products"
Franz Holzinger
Für die verwandten Produkte gibt es die Konstante / Setup pidsRelatedProducts . Es werden nur die zugewiesenen verwandten Produkte auf der aktuellen Seite angezeigt.

Wenn es komplexer sein soll, dann müsste auch dieses Setup noch um die Funktion der WHERE-Bedingungen erweitert werden.
25-10-18 10:10:21 Ausgabe auf gleicher Seite, aber unterschiedlichen Stellen
Sebastian Klein
'pidsRelatedProducts' gilt dann jeweils für die gesamte aktuelle Seite. Unser Ziel ist es, die verwandten Produkte von Typ A und Typ B zwar auf der gleichen Seite (Einzelansicht), aber an unterschiedlichen Stellen im Template auszugeben.

Wahrscheinlich müssen wir uns dafür eigene Marker erstellen – richtig?
25-10-18 10:17:17 2 Plugins
Franz Holzinger
Ev. können Sie auch 2 Shop Plugins Produkte Einzelansicht auf einer Seite verwenden.
Sie können die Option "Modus im Setup" verwenden, um ein Shop Plugin unter gewissen Bedingungen (TypoScript Conditions über GP tt_products|product) zu deaktivieren.
Beim Plugin lassen sich zusätzliche Setup Einstellungen eintragen.
26-10-18 10:36:31 Separate Plugins mit template suffixes
Sebastian Klein
Es kann so einfach sein. Ich habe nun für jede Art von verwandten Produkten ein eigenes Plugin zur Einzelansicht hinzugefügt. In der Datensatzsammlung des Plugins ist dann nur der Ordner mit den jeweiligen Produkt-Datensätzen eingebunden.

Damit nicht jedes Mal die gesamte Einzelansicht angezeigt wird, habe ich über eigene Template-Subparts mit template suffixes (aus Plugin) die Ausgabe angepasst.

Vielen Dank für die Hilfe!
26-10-18 10:58:22 Suffix
Franz Holzinger
Statt ein Template-Suffix zu verwenden, kann man auch bei jedem Shop Plugin direkt das templateFile neu setzen.

Wie haben Sie die Fehlermeldung wegbekommen?

"Falscher Parameter. GET/POST var 'tt_products[|]' wurde nicht angegeben oder kein Element mit uid = | auf den erlaubten Seiten (|) gefunden."

Ev. könnte ich hierfür noch eine neue Konfiguration einführen, dass statt dieser Fehlermeldung ein leerer Inhalt erzeugt wird.
26-10-18 13:11:28 Datensatzsammlung
Sebastian Klein
Um diese Fehlermeldung zu umgehen, habe ich in der Datensatzsammlung der Plugins jeweils zwei Ordner eingebunden:
1. Speicherort der auszugebenden verwandten Produkte
2. Speicherort des aktuell aufgerufenen Produkts
26-10-18 14:35:07 Nicht gefundenes Produkt
Franz Holzinger
Es muss irgend etwas anderes sein, mit dem Sie die Fehlermeldung umgangen sind. Denn wenn ein aktuelles Produkt in der Einzelansicht in keinem Speicherort gefunden wird, dann wird die Fehlermeldung mit "Falscher Parameter..." angezeigt, in Ihrem Fall also mehrfach, weil jedes Plugin Einzelansicht, zu dem das aktuelle Produkt nicht gehört, dieselbe Fehlermeldung produziert.
26-10-18 15:45:22 Datensatzsammlung enthält Speicherort
Sebastian Klein
Aus diesem Grund habe ich ja den Speicherort des aktuellen Produkts zusätzlich in jedes Plugin auf der Detailseite hinzugefügt. Nur wenn ich diesen Speicherort wieder aus dem Plugin entferne, erhalte ich die von Ihnen genannte Fehlermeldung.

Im Detail: bei allen Plugins für "Verwandte Produkte" habe ich:
1.) ein Template Suffix hinzugefügt
2.) in der Datensatzsammlung den Speicherort von a) dem aktuellen Produkt und b) den gewünschten verwandten Produkten hinzugefügt

Dann habe ich neue Subparts mit dem benötigten Suffix angelegt. Hier wurden drei Subparts benötigt, die ich entsprechend angepasst habe:

1.) ###ITEM_LIST_TEMPLATE_SUFFIX1###
Wird vom Plugin erwartet, auch wenn nur die Einzelansicht tatsächlich benötigt wird. Der Subpart ist bei mir leer.

2.) ###ITEM_SINGLE_DISPLAY_SUFFIX1###
Für die verwandten Produkte benötige ich hier nur wenig HTML-Markup und den Marker ###PRODUCT_RELATED_UID###.

3.) ###ITEM_LIST_RELATED_TEMPLATE_SUFFIX1###
Hier gebe ich dann die gewünschten Daten der verwandten Produkte aus.
26-10-18 16:04:20 Shop Plugin Einzelansicht
Franz Holzinger
Haben Sie mehrere Shop Plugins "Produkte: Einzelansicht" auf derselben Seite eingefügt?
1. Jedes dieser Plugins hat ein eigenes Template Suffix.
2. Jedes dieser Plugins hat einen anderen Speicherort, was die verwandten Produkte betrifft, aber den selben Speicherort, was die restlichen Produkte betrifft.

Wenn nun ein Produkt mit uid=1 angezeigt wird, wieso erzeugen dann nicht alle 4 Shop Plugins jeweils eine Ausgabe? Dasselbe Produkt müsste dann 4 mal auf der Seite "Produkt Einzelansicht" angezeigt werden.

Sind es vielleicht verschiedene Seiten für die "Einzelansicht"? D.h. alle 4 Shop Plugins Einzelansicht befinden sich auf 4 verschiedenen Seiten?

26-10-18 16:15:39 Mehrere Einzelansicht-Plugins auf einer Seite
Sebastian Klein
Sie haben recht. Alle vier Einzelansicht-Plugins auf derselben Seite erzeugen tatsächlich jeweils eine Ausgabe.

Da ich aber bei drei von vier Plugins jeweils eigene Subparts (über Template Suffixes) verwende, entferne ich in diesen Subparts einfach alle Inhalte, die ich nicht laden möchte. Unter anderem also die "normale" Detailansicht des Produkts.

Die Ausgabe der drei Plugins mit Template-Suffix beschränkt sich damit wirklich auf den Marker ###PRODUCT_RELATED_UID### und etwas HTML:

<!-- ###ITEM_SINGLE_DISPLAY_SUFFIX1### begin -->
<div class="related__wrap">
###PRODUCT_RELATED_UID###
</div>
<!-- ###ITEM_SINGLE_DISPLAY_SUFFIX1### end -->

Mehr steckt dann wirklich nicht im Einzelansicht-Subpart. Dadurch erhalte ich aber die Möglichkeit, die verwandten Produkte des aktuellen Produkts auszugeben.
< BACK TO FORUM