(Ein Psalm Davids für Jeduthun, vorzusingen.) Meine Seele sei stille zu Gott, der mir hilft.
Psalm 62:1
autor | |
11-03-20 14:42:12 | Typo3 9: Single View mit lesbarer URL |
Felix Pomplun |
Hallo, hat sich schon jemand an der config.yaml in Typo3 9 beschäftigt? Mit RealUrl lies sich die URL sehr gut modelieren, dies ist jetzt nicht mehr möglich und muss händisch in der config.yaml angepasst werden. Ich habe ein Beispiel für die Extension 'News', welches sehr gut funktioniert. Es gelingt mir nicht dieses Beispiel auf tt_products zu übertragen. Hier ist der Code: routeEnhancers: NewsPlugin: type: Extbase limitToPages: [252] extension: News plugin: Pi1 routes: - { routePath: '/{news_title}', _controller: 'News::detail', _arguments: {'news_title': 'news'} } defaultController: 'News::detail' aspects: news_title: type: PersistedAliasMapper tableName: 'tx_news_domain_model_news' routeFieldName: 'path_segment' Danke für Tips und Tricks fxp |
11-03-20 15:54:03 | Plugin statt Extbase |
Franz Holzinger |
tt_products basiert nicht auf Extbase. Die URL Routing Enhancer Konfiguration in der Yaml Datei muss so wie tt_news umgesetzt werden, nicht wie news, d.h. über den "Plugin Enhancer" und über "Aspects". |
11-03-20 16:22:53 | URL Routing |
Felix Pomplun |
Hallo Herr Holzinger, wenn ich richtig verstehe sollte das dann so aussehen: TtProducts: type: Plugin limitToPages: [167,175] namespace: 'tt_products' routePath: '/{tt_products}' aspects: tt_products: type: PersistedPatternMapper tableName: 'tt_products' routeFieldPattern: '^(?P<title>.+)-(?P<uid>\d+)$' routeFieldResult: '{title}-{uid}' Es ist noch ein Fehler darin, denn es funktioniert so nicht. Haben Sie noch einen Tip? Danke und Gruß fxp |
11-03-20 16:32:25 | routePath |
Franz Holzinger |
routePath: '/{product}' Hier darf nicht tt_products stehen, was im Namespace eingetragen ist. Dort muss der Plugin Assoziative Index eingetragen werden, wie er in der URL bisher erscheint, d.h. tt_products[product] . Es wäre ev. sinnvoll, mit dem Slug Feld zu arbeiten. Damit hätte man mehr Flexibilität. aspects: product: type: PersistedAliasMapper tableName: 'tt_products' routeFieldName: 'slug' |
12-03-20 08:39:16 | routePath |
Felix Pomplun |
Danke für den Tip, so funktioniert es! Bekomme ich auch noch die GET-Variablen und den Hash mit diesem Ausdruck aus der URL? Gruß fxp |
13-03-20 08:36:54 | Plugin Enhancer |
Sybille Stark |
Bei mir klappt es leider nicht. Ich habe in die config.yaml diesen Text gesetzt: routeEnhancers: TtProducts: type: Plugin # limitToPages: [1,138] namespace: 'tt_products' routePath: '/{product}' aspects: product: type: PersistedAliasMapper tableName: 'tt_products' routeFieldName: 'slug' Dies verursacht einen Typo3 Fehler. Könnt ihr mir weiter helfen? Vielen Dank Sybille |
13-03-20 09:13:16 | korrekt |
Franz Holzinger |
Diese Yaml ist korrekt. Ggf. müssen die Caches geleert werden. Ev. noch das ergänzen: requirements: product: '[0-9]{1,6}' |
13-03-20 09:20:48 | korrekt |
Felix Pomplun |
Noch der Hinweis auf die Einrückungen, bei mir hat es Fehler gegeben, wenn diese nicht absulot richtig sind. Gruß fxp |
13-03-20 10:51:26 | kein Erfolg |
Sybille Stark |
Vielen Dank für den hinweis mit dem Einrücken, jetzt erhalte ich keinen Typo3 Fehler mehr, aber die URL-Auflösung funktioniert weiter nicht. Über die List-Ansicht erscheint weiterhin: ...details?tt_products[backPID]=14&tt_products[cat]=6&tt_products[product]=154&cHash=535cff8800440c6d29c74f5e258c9354 Direkter Aufruf: Domain/slug --> 404 Domain/Seitenbaum/Details-Ansicht?slug --> 404 Habt ihr noch eine Idee für mich? Vielen Dank und viele Grüße Sybille |
13-03-20 11:00:27 | funktioniert teilweise |
Felix Pomplun |
Diese Yaml funkioniert bei mir teilweise: routeEnhancers: TtProducts: type: Plugin limitToPages: [167,175] namespace: 'tt_products' routePath: '/{product}' aspects: product: type: PersistedAliasMapper tableName: 'tt_products' routeFieldName: 'slug' die GET-Variable mit dem Hash bleiben aber in der URL |
13-03-20 11:24:01 | backPID und cat |
Franz Holzinger |
Für jeden tt_products Url Parameter muss ein weiterer Eintrag in der YAML Datei gemacht werden. Wenn mehrere Url-Paramter gleichzeitig vorkommen können, dann muss außerdem ein solcher Kombinationseintrag gemacht werden. Für backPID muss ein Eintrag über aspects gemachtr werden. Danach sollte auch ide cHash Anzeige nicht mehr da sein. |
9-04-20 10:45:03 | Enhancer |
Björn Hahnefeld |
Ich würde mich sehr freuen, wenn es einen kompletten Enhancer hier geben würde. Ich bin selbst gerade dabei, von 8.7 auf 9.5 umzustellen. Das hat an sich gut geklappt, aber insbesondere bei tt_products kämpfe ich für eine gelungene Umstellung noch 1. mit einem korrekt funktionierenden Enhancer 2. mit der Ajax-Geschichte, was aber der Autor schon weiß. Ich würde mich freuen, wenn beides bald läuft :) |
9-04-20 11:22:43 | Beispiel Produktliste |
Franz Holzinger |
Hier ein funktionierendes Beispiel für eine Produktliste mit Link auf Einzelansicht und backPid. In limitToPages müssen die ids der Seiten eingetragen werden, auf denen die List Plugins liegen. TtProducts-Liste: type: Plugin limitToPages: [99,120] routePath: '{product}/b-{backPID}' namespace: 'tt_products' requirements: | product: '[0-9]{1,6}' | backPID: '[0-9]{1,6}' aspects: | product: | type: PersistedAliasMapper | tableName: 'tt_products' | routeFieldName: 'slug' | backPID: | type: StaticRangeMapper | start: '1' | end: '1000' Ich habe die senkrechten Striche ergänzt, weil im Forum sonst die führenden Leerzeichen wieder gelöscht werden. Die Leerzeichen sind hier aber unverzichtbar. Ohne sie funktioniert es nämlich nicht. Diese Striche müssen aber unbedingt gelöscht werden! Im TYPO3 Backend müssen die Slug Felder der Produkte ausgefüllt sein. Sonst gibt es nur eine Fehlermeldung wegen nicht gefundener Seite. |
9-04-20 11:43:29 | Enhancer |
Björn Hahnefeld |
Was bedeutet denn dieses limitToPages? In unseren Fall ist es nämlich so, dass unter jeder Listenansicht eine eigene Detail-Seite hängt. Das sind aber mittlerweile duzende Seiten... |
9-04-20 15:00:08 | limitToPages |
Franz Holzinger |
limitToPages: Beschränkt die Gültigkeit der Konfiguration auf die angebenen Seiten Die Einstellung limitToPages muss aus Geschwindigkeitsgründen unbedingt verwendet werden. Denn die sprechende Url muss ja in TYPO3 wieder zurück aufgelöst werden. Das geht meiner Meinung nach viel schneller, wenn die tt_products Konfiguration auf den Seiten ohne tt_products gar nicht berücksichtigt werden muss. TYPO3 muss dann nicht probieren, ob ein Url-Teil wie z.B. 'produkt1' im Slug Feld eines Produktes vorkommt, um ein tt_proucts[product]=32 mit der uid=32 dieses Produktes zu generieren. Bei limitToPages müssen alle Seiten-Ids mit Shop Plugins Listenansicht eingetragen werden. |
9-04-20 17:00:04 | Enhancer |
Björn Hahnefeld |
Das klingt an sich stimmig und schlüssig. Aber in unserem Fall ist es so, dass wir bestimmt mittlerweile 100 Unterseiten haben, auf denen das Plug-in in dieser Ansicht verwendet wird. Zudem kann ja die Einstellung nicht von einem Redakteur geändert/ergänzt werden, weswegen dann schon wieder Unstimmigkeiten auftreten können. |
15-04-20 15:18:50 | Wiki tt_products |
Franz Holzinger |
Ich habe das config.yaml von Björn Hahnefeld nun als Beispiel für die Wiki Seite zur Verfügung gestellt bekommen. Dort gibt es weitere Informationen zum Thema "Routing Enhancer mit tt_products". Dieser Link zur Wiki-Seite also: https://wiki.typo3.org/Tt_products#Speaking_Url |
29-06-20 10:54:38 | Enhancer Fehler |
Felix Pomplun |
Vielen Dank für die sehr nützlichen Hilfen! Die 'config.yml' funktioniert einwandfrei. Allerdings werden die URL's bei manchen Produkten in der Detailansicht nicht vollständig umgeformt, die 'tt_products[cat]' wird hier noch mit dem Hash versehen. Meine erste Idee war, das es eine Inkonsistenz in der Datenbank bei den Kategorien gibt. Die Datenbank sieht für mich aber gut aus. Kann das am fehlenden limitToPages in der 'config.yaml' liegen? Das Typoscript für die Detailseiten ist überall gleich, deshalb bin ich etwas ratlos. |
29-06-20 23:19:16 | welche Produkte? |
Franz Holzinger |
Womöglich gibt es noch einen Fehler. Aber bei welchen Produkten kommt es zu Fehlern? limitToPages dient nur dazu, dass das Routing Service weniger Arbeit bei Nicht-Shop Seiten hat. Denn wenn das Routing Service weiß, dass es sich um die tt_products Teile auf gewissen Seiten nicht kümmern muss, dann sollte alles ein wenig schneller gehen. Es könnten sich auch mehrere Extensions in die Quere kommen. |
30-06-20 09:49:48 | welche Produkte? |
Felix Pomplun |
Ok, das mit dem 'limitToPages' habe ich verstanden. Die Produkte und Kategorien sind in einem Systemordner zusammgefasst. es existieren hier 26 Kategorien. Bei den Produkten der Kategorien 1-5 und 12-17 funktioniert das Routing, wie es soll. Bei den anderen Produkten bleibt die 'tt_products[cat]' mit dem Hash in der URL. Alle Produkte werden auf der gleichen Detailseite ausgegeben, am TS liegt es dann wohl nicht. Deshalb war meine Überlegung, das es vielleicht an der Syntax der DB-Einträge liegt (Leerzeichen o.ä.), oder redudanten Datensätzen. Die DB ist aber soweit in Ordnung. Ich hab ein Skript darüber laufen lassen, welches Leerzeichen entfernt, das hat aber nichts gebracht. Es sind über 130 Kategorien mit 586 Produkten im System. Der Fehler tritt nur bei einem kleinen Teil auf. Die Kategorien bilden die Bauformen und Baugrößen unserer Geräte ab und sehen für mich alle in Ordnung aus. |
7-07-20 16:18:47 | Enhancer Fehler |
Felix Pomplun |
So, ich habe jetzt endlich den Fehler gefunden: Auf den betreffenden Detailseiten waren default cad's gesetzt. Das habe ich Vollpfosten übersehen... |
5-08-21 22:43:33 | URL wird nicht umgesetzt |
Nadine Wohlrabe |
Hey Zusammen, ich habe folgende config.yaml, aber das geht leider nicht: routeEnhancers: TtProducts-Liste: type: Plugin limitToPages: [28,29,30,31,32,34,35,84] routePath: '{product}/b-{backPID}' namespace: 'tt_products' requirements: product: '[0-9]{1,6}' backPID: '[0-9]{1,6}' aspects: product: type: PersistedAliasMapper tableName: 'tt_products' routeFieldName: 'slug' backPID: type: StaticRangeMapper start: '1' end: '1000' Jemand eine Idee, bzw. wer kann eine Posten? |
< Zurück zum Forum |