Bitte beachte, dass sich diese Dokumentation auf die neuste Version dieser Erweiterung bezieht. Wenn eine ältere Version eingesetzt wird, kann diese abweichen. Die jeweils passende Dokumentation befindet sich im Dokumentation-Verzeichnis der Erweiterung.
Sprechende URLs
Allgemeines
Die URL-Hashes in den URLs in der Fahrzeugsuche, werden hauptsächlich für das Routing verwendet, welche dann den State der Single-Page Fahrzeugsuche festlegen. Dabei kennt die Fahrzeugsuche generell erstmal die States:
#list
#details
#bookmarks
#request
#research
Diese States werden mit den in den TypoScript-Konstanten konfigurierten URLs verknüpft, um URLs den eigenen Anforderungen anzupassen. Wir gehen davon aus, dass dein Fahrzeugsuche-Plugin auf der Seite https://www.typo3-fahrzeugsuche.de/fahrzeugsuche/
platziert ist. Somit ist das Verhalten wie folgt:
- Ist in der Konstante
{$themes.configuration.extension.fahrzeugsuche.urls.list}
der Werthttps://www.typo3-fahrzeugsuche.de/fahrzeugsuche/
definiert, dann verwendet die Fahrzeugsuche bspw. für Zurück-Buttons zur Liste die URLhttps://www.typo3-fahrzeugsuche.de/fahrzeugsuche/#list
. - Ist in der Konstante
{$themes.configuration.extension.fahrzeugsuche.urls.details}}
der Werthttps://www.typo3-fahrzeugsuche.de/fahrzeugsuche/fahrzeug-details/%1$s
definiert, dann verwendet die Fahrzeugsuche die URLhttps://www.typo3-fahrzeugsuche.de/fahrzeugsuche/fahrzeug-details/A123456#details-super-modernes-auto
- etc.
Hinweis:
Bei einer Detail-URL wie
https://www.typo3-fahrzeugsuche.de/fahrzeugsuche/fahrzeug-details/A123456#details-super-modernes-auto
oderhttps://www.typo3-fahrzeugsuche.de/fahrzeugsuche/?tx_fahrzeugsuche_fahrzeugsuche[fahrzeug]=%1$s#details-super-modernes-auto
wird erst serverseitig der Fahrzeug-Parameter ausgewertet. Ist dieser vorhanden und gültig, wird er viadata-fahrzeugsuche-show-fahrzeug-on-initialization
Attribut an die Fahrzeugsuche übergeben. Diese öffnet dann beim Laden direkt das angegebene Fahrzeug. Sollte kein gültiger Fahrzeug-Parameter vorhanden sein, so versucht die Fahrzeugsuche das zu ladene Fahrzeug via URL-Hash zu finden.
Für die Konstanten kann zwischen Production- und Development-Environment eine einfache TypoScript-Kondition verwendet werden:
#
# Fahrzeugsuche URLs
themes.configuration.extension.fahrzeugsuche.urls.request = https://www.typo3-fahrzeugsuche.de/fahrzeugsuche/fahrzeug-anfrage/%1$s
themes.configuration.extension.fahrzeugsuche.urls.list = https://www.typo3-fahrzeugsuche.de/fahrzeugsuche/
themes.configuration.extension.fahrzeugsuche.urls.research = https://www.typo3-fahrzeugsuche.de/fahrzeugsuche/suchauftrag/
themes.configuration.extension.fahrzeugsuche.urls.sitemap = https://www.typo3-fahrzeugsuche.de/fahrzeugsuche/fahrzeug-details/%1$s
themes.configuration.extension.fahrzeugsuche.urls.details = https://www.typo3-fahrzeugsuche.de/fahrzeugsuche/fahrzeug-details/%1$s
themes.configuration.extension.fahrzeugsuche.urls.bookmarks = https://www.typo3-fahrzeugsuche.de/fahrzeugsuche/merkzettel/
#
# Local DDEV
[request.getHeaders()['host'][0] == 'fahrzeugsuche.ddev.site']
themes.configuration.extension.fahrzeugsuche.urls.request = https://fahrzeugsuche.ddev.site/fahrzeugsuche/fahrzeug-anfrage/%1$s
themes.configuration.extension.fahrzeugsuche.urls.list = https://fahrzeugsuche.ddev.site/fahrzeugsuche/
themes.configuration.extension.fahrzeugsuche.urls.research = https://fahrzeugsuche.ddev.site/fahrzeugsuche/suchauftrag/
themes.configuration.extension.fahrzeugsuche.urls.sitemap = https://fahrzeugsuche.ddev.site/fahrzeugsuche/fahrzeug-details/%1$s
themes.configuration.extension.fahrzeugsuche.urls.details = https://fahrzeugsuche.ddev.site/fahrzeugsuche/fahrzeug-details/%1$s
themes.configuration.extension.fahrzeugsuche.urls.bookmarks = https://fahrzeugsuche.ddev.site/fahrzeugsuche/merkzettel/
[global]
Des weiteren werden URLs auf klassische Weise via Routes bereitgestellt, was im nächsten Abschnitt behandelt wird.
Slug-Konfiguration (ab TYPO3 9.5)
routeEnhancers:
PageTypeSuffix:
type: PageType
map:
fahrzeugsuche-sitemap.xml: 1519148087
fahrzeugsuche.json: 1469968203
FahrzeugsucheDetailsPlugin:
type: Extbase
extension: Fahrzeugsuche
plugin: Fahrzeugsuche
routes:
-
routePath: '/fahrzeug-details/{fahrzeug_id}'
_controller: 'Fahrzeugsuche::search'
_arguments:
fahrzeug_id: fahrzeug
-
routePath: '/fahrzeug-pdf/{account_id}/{fahrzeug_id}'
_controller: 'Fahrzeugsuche::createPdf'
_arguments:
account_id: account
fahrzeug_id: fahrzeugId
-
routePath: '/fahrzeug-bookmarks-pdf/{bookmarks}'
_controller: 'Fahrzeugsuche::createBookmarksPdf'
_arguments:
bookmarks: bookmarks
defaultController: 'Fahrzeugsuche::search'
requirements:
account_id: '^[a-zA-Z0-9].*$'
fahrzeug_id: '^[a-zA-Z0-9].*$'
bookmarks: '^[a-zA-Z0-9].*$'
Realurl-Konfiguration (bis TYPO3 9.5)
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array (
'_DEFAULT' => array (
'postVarSets' => array (
'_DEFAULT' => array (
// EXT:fahrzeugsuche start
'fahrzeug-details' => array(
array(
'GETvar' => 'tx_fahrzeugsuche_fahrzeugsuche[fahrzeug]',
),
),
'fahrzeug-pdf' => array(
array(
'GETvar' => 'tx_fahrzeugsuche_fahrzeugsuche[controller]',
'valueMap' => array(),
'noMatch' => 'bypass',
),
array(
'GETvar' => 'tx_fahrzeugsuche_fahrzeugsuche[action]',
'valueMap' => array(
'pdf' => 'createPdf',
'bookmarks-pdf' => 'createBookmarksPdf',
),
'noMatch' => 'bypass',
),
array(
'GETvar' => 'tx_fahrzeugsuche_fahrzeugsuche[account]',
),
array(
'GETvar' => 'tx_fahrzeugsuche_fahrzeugsuche[fahrzeugId]',
),
),
// EXT:fahrzeugsuche end
),
),
),
);