Loading...
Navigation überspringen
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',
    ),
];

Kontaktanfrage

Du kannst uns jederzeit kontaktieren

Stop! Playing in the meantime?
Stop! Playing in the meantime?
Stop! Playing in the meantime?

Stop! Playing in the meantime?

Break the highscore

Press Start
Contact request
Screenreader label
Security question
L___________WQK______
P_I____4______1___LJI
3W2___IU4___82T______
__K____P______F___7L2
__C_________7B3______