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
16D_________L97______
4______L____9_____ZTO
8GZ___C18___BQO______
3_K____C____6_H___MJN
DQF_________L7W______