Hey Community,
ich habe für ein Projekt eine Extension geschrieben, die es mir ermöglicht verschiedene "Kollektionen" sowie verschiedene "Teppiche".
Den "Kollektionen" werden dann die angelegten "Teppiche" zugeordnet.
Soweit so gut. Das funktioniert soweit auch alles wunderbar.
Jedoch habe ich nun noch ein Problem, wenn ich in meiner "liste" der Teppiche die Fluid Paginierung in Verbindung mit CoolUri einbauen möchte.
In meinem Template für die Darstellung der einzelnen Kollektionen mit Listing der Teppiche habe ich folgenden Code für die Darstellung der Paginierten Teppiche eingebunden:
<f:widget.paginate objects="{collection.carpet}" as="carpetPagination" configuration="{itemsPerPage: 6, insertAbove: 0, insertBelow: 1, maximumNumberOfLinks: 4}">
<div class="row">
<f:for each="{carpetPagination}" as="paginatedCarpet" iteration="iteration">
<f:if condition="{paginatedCarpet}">
<f:then>
<div class="col-xs-offset-2 col-xs-8 col-md-offset-0 col-md-4 margin-bottom">
<div class="carpetimage">
<img src="{paginatedCarpet.image.originalResource.publicUrl}">
</div>
<div class="carpetinfos">
<h4>{paginatedCarpet.title}<span> </span></h4>
<p>{paginatedCarpet.origin}, {paginatedCarpet.material}</p>
<f:link.action pluginName="carpetShow" controller="Carpet" action="show"
pageUid="{settings.carpetShowPid}"
arguments="{carpet:'{paginatedCarpet}', collection:collection}"
class="btn btn-sm btn-primary detailLinkList">mehr erfahren
</f:link.action>
</div>
</div>
<f:if condition="{iteration.cycle} % 3">
<f:else>
</div>
<div class="row">
</f:else>
</f:if>
</f:then>
</f:if>
</f:for>
</div>
</f:widget.paginate>
Das Listing innerhalb der Kollektion wird auch korrekt dargestellt und funktioniert soweit 1a wenn ich die Urls noch im Standardformart vom ExtensionBuilder lasse. Sprich diese nicht mittels der CoolUri-Config umschreibe. (Ausgenommen sind natürlich die "predefinedparts" dies ich schon entfernt habe. (Action & Controller & cHash)
Beispiel URL:
domain.de/teppiche/collection/?tx_teufelsrenzcarpetworld_carpetlist[collection]=2&tx_teufelsrenzcarpetworld_carpetlist[@widget_0][currentPage]=5
Schreibe ich nun die Urls um, löscht es mit beim klick auf die nächste Seite meine ID der Kollektion, und die Paginierung funktioniert somit nichtmehr.
Beispiel URL:
domain.de/teppiche/collection/moderne-collection-2/
öffnet mir die gewünschte Kollektion.
Sobald ich auf Seite 2 Klicke, bekomme ich folgende URL:
domain.de/teppiche/collection/?tx_teufelsrenzcarpetworld_carpetlist%5B@widget_0%5D%5BcurrentPage%5D=2
Aus irgendeinem Grund, den ich mit derzeit nicht erklären kann, entfernt er mir meine umgeschrieben Kollektion komplett aus der URL. Trage ich den Part "moderne-collection-2/" händisch in die URL an die benötigte Stelle ein, komme ich auch auf der gewollten Seite heraus.
Die Urls habe ich folgendermaßen mittels der CoolUri-Config umgeschrieben (uriparts):
<part>
<parameter>tx_teufelsrenzcarpetworld_carpetlist[collection]</parameter>
<lookindb>
<to>
SELECT
CONCAT (title, '-', uid)
FROM
tx_teufelsrenzcarpetworld_domain_model_collection
WHERE
uid=$1
</to>
<t3conv>1</t3conv>
</lookindb>
</part>
Die Action, sowie den Controller und den cHash habe ich wie oben schreiben schon in die "predefinedparts" geschrieben.
Leider komme ich hier nicht drauf, warum die Paginierung mit den "unschönen" urls die vom ExtensionBuilder gegeben sind funktioniert und sobald ich diese umschreibe der Komplette "Kollektions-Parameter" entfernt wird.
Hättet Ihr gegebenenfalls eine Idee, woran das liegen könnte?
Liegt es eher an meiner eigenen Extension oder doch eher an CoolUri?
Gruß