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
Slug Konfiguration (ab TYPO3 9.5)
routeEnhancers:
PageTypeSuffix:
type: PageType
map:
openimmo.json: 1508582933
OpenimmoImmobiliePlugin:
type: Extbase
limitToPages:
# Page uid of list/search-page and show/detail-page
- 395
- 593
- 508
extension: Openimmo
plugin: Immobilie
routes:
- routePath: '/{immobilie_slug}'
_controller: 'Immobilie::show'
_arguments:
immobilie_slug: immobilie
-
routePath: '/'
_controller: 'Immobilie::search'
-
routePath: '/{immobilie_search}'
_controller: 'Immobilie::search'
_arguments:
immobilie_search: search
defaultController: 'Immobilie::search'
defaults:
immobilie_search: ''
requirements:
immobilie_search: 'restore'
aspects:
immobilie_slug:
type: PersistedAliasMapper
tableName: tx_openimmo_domain_model_immobilie
routeFieldName: slug
routeValuePrefix: /
fallbackValue: '0' # Fallback on `immobilie.uid = 0` to have a proper 404-handling in our controller!
OpenimmoRequestPlugin:
type: Extbase
limitToPages:
# Page uid of the request-page
- 396
extension: Openimmo
plugin: Request
routes:
- routePath: '/{immobilie_slug}'
_controller: 'Immobilie::request'
_arguments:
immobilie_slug: immobilie
defaultController: 'Immobilie::request'
aspects:
immobilie_slug:
type: PersistedAliasMapper
tableName: tx_openimmo_domain_model_immobilie
routeFieldName: slug
routeValuePrefix: /
Suchliste und Detailseite getrennt konfigurieren
Bei der obigen Konfiguration kann es zu Problemen mit dem immobilie_search=restore-Parameter kommen. Will der Benutzer bspw. von der Detailseite zurück auf die Suchliste springen, sorgt ein immobilie_search=restore Parameter dafür, dass die letzte Suche wieder hergestellt wird. Sprich die richtige Paginationsseite angewählt wird und ggf. die zuletzt angesehene Immobilie hervorgehoben wird.
Wird nun der immobilie_search=restore Parameter sprechend in die URL eingebunden (z. B. https://typo3-12-13.openimmo13.ddev.site/list/filtered-list/restore) denkt das Routing, es solle die Immobilie mit dem Slug restore in der Single-View anzeigen. Um dem entgegen zu wirken, kann die Konfiguration zerteilt werden und dann den Abschnitt OpenimmoImmobiliePlugin ersetzen:
OpenimmoImmobilieShowPlugin:
type: Extbase
limitToPages:
# Page uids for detail pages
- 246
- 6
extension: Openimmo
plugin: Immobilie
routes:
-
routePath: '/{immobilie_slug}'
_controller: 'Immobilie::show'
_arguments:
immobilie_slug: immobilie
aspects:
immobilie_slug:
type: PersistedAliasMapper
tableName: tx_openimmo_domain_model_immobilie
routeFieldName: slug
routeValuePrefix: /
fallbackValue: '0'
OpenimmoImmobilieSearchPlugin:
type: Extbase
limitToPages:
# Page uids for search pages
- 64
extension: Openimmo
plugin: Immobilie
routes:
-
routePath: /
_controller: 'Immobilie::search'
-
routePath: '/{immobilie_search}'
_controller: 'Immobilie::search'
_arguments:
immobilie_search: search
defaultController: 'Immobilie::search'
defaults:
immobilie_search: ''
requirements:
immobilie_search: restore
Realurl Konfiguration
$configuration = [
'postVarSets' => array(
'_DEFAULT' => array(
// EXT:openimmo start
'zeige' => array(
array(
'GETvar' => 'tx_openimmo_immobilie[controller]',
'valueMap' => array(
'generator' => 'Pdf',
),
'noMatch' => 'bypass',
),
array(
'GETvar' => 'tx_openimmo_immobilie[action]',
'valueMap' => array(
'details' => 'show',
),
'noMatch' => 'bypass',
),
array(
'GETvar' => 'tx_openimmo_immobilie[immobilie]',
'lookUpTable' => array(
'table' => 'tx_openimmo_domain_model_immobilie',
'id_field' => 'uid',
'alias_field' => 'CONCAT(objektnr_extern,\'_\',objekttitel)',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
array(
'GETvar' => 'tx_openimmo_immobilie[createPdf]',
'valueMap' => array(
'pdf' => '1',
),
'noMatch' => 'bypass',
),
),
'stellen' => array(
array(
'GETvar' => 'tx_openimmo_request[controller]',
'valueMap' => array(
//'uebersicht' => 'Reference',
),
'noMatch' => 'bypass',
),
array(
'GETvar' => 'tx_openimmo_request[action]',
'valueMap' => array(
//'details' => 'show',
),
'noMatch' => 'bypass',
),
array(
'GETvar' => 'tx_openimmo_request[immobilie]',
'lookUpTable' => array(
'table' => 'tx_openimmo_domain_model_immobilie',
'id_field' => 'uid',
'alias_field' => 'CONCAT(objektnr_extern,\'_\',objekttitel)',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
),
// EXT:openimmo end
),
),
'fixedPostVars' => array(
'immobilieDetailConfiguration' => array(
array(
'GETvar' => 'tx_openimmo_immobilie[action]',
'valueMap' => array(
'show' => '',
),
'noMatch' => 'bypass'
),
array(
'GETvar' => 'tx_openimmo_immobilie[immobilie]',
'lookUpTable' => array(
'table' => 'tx_openimmo_domain_model_immobilie',
'id_field' => 'uid',
'alias_field' => 'CONCAT(objektnr_extern, \'_\', objekttitel)',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
array (
'GETvar' => 'tx_openimmo_immobilie[createPdf]',
'valueMap' => array (
'pdf' => '1',
),
'noMatch' => 'bypass'
)
),
'395' => 'immobilieDetailConfiguration',
),
];
