TYPO3 Agency - coding, design and website development

TYPO3 9.5 LTS: Integrované čitateľné URL

URL Segment

  • Do parametrov stránky bola pridaná nová vlastnosť "Segment URL".
  • Všetky odkazy vytvorené v systéme (backend/frontend) používajú túto vlastnosť, ak je nastavená.
  • Jazykové verzie stránky sa zohľadňujú automaticky.
  • Už nie sú nutné rozšírenia tretích strán na generovanie čitateľných URL.

TYPO3 9.5 LTS: Integrované čitateľné URL

Nový TCA type "slug"

Bol definovaný nový TCA typ slug pre URL segment.
Definujte URL na generovanie webových adries.

’type’ => ’slug’,
’config’ => [
’generatorOptions’ => [
’fields’ => [’title’, ’nav_title’],
’fieldSeparator’ => ’/’,
’prefixParentPageSlug’ => true
]
’fallbackCharacter’ => ’-’,
’eval’ => ’uniqueInSite’
]

Tvorba URL - cesty

  • Cesty môžu byť rozšírené o zástupné symboly, napríklad:
    /stranka/produkty/{nazov-produktu}
  • TYPO3 v9 LTS podporuje nasledujúce typy tvorby URL:
    • Jednoduchý - SimpleEnhancer
    • Plugin - PluginEnhancer
    • Extbase Plugin - ExtbasePluginEnhancer
  • Konfigurácia sa nachádza v súbore config.yml (zatiaľ neexistuje UI).
  • Môžu byť registrované aj vlastné typy v ext_localconf.php:
    $GLOBALS['TYPO3_CONF_VARS']['SYS']['smerovanie']['CustomPlugin'] =
    \MyVendor\MyPackage\Routing\CustomEnhancer::class;

Príklady jednotlivých typov

SimpleEnhancer
Zvyčajne používa pre jednoduché argumenty GET, ktoré nepochádzajú z pluginov.

routeEnhancers
  Categories:
    type: Simple
    routePath: '/cmd/{category_id}/{scope_id}'
    _arguments:
      category_id: 'category/id'
      scope_id: 'scope/id'

PluginEnhancer
Zvyčajne sa používa pre argumenty, ktoré sú vytvorené s názvom `tx_myplugin_pi1` ako menný priestor v parametri GET/POST.
Používa sa napríklad pre systémový plugin felogin.

routeEnhancers:
  ForgotPassword:
    type: Plugin
    routePath: '/forgot-pw/{user_id}/{hash}/'
    namespace: 'tx_felogin_pi1'
    _arguments:
      user_id: uid
    requirements:
      user_id: '[a-z]+'
      hash: '[a-z]{0-6}'

ExtbasePluginEnhancer
Umožňuje nakonfigurovať URL pre plugin s viacerými ovládačmi (controllers) + akcie pre jeden konkrétny plugin, ktorý má definovaný namespace.

routeEnhancers:
  BlogExample:
    type: Extbase
    extension: BlogExample
    plugin: Pi1
    routes:
      - { routePath: '/blog/{page}', _controller: 'Blog::list', _arguments: {'page': '@widget_0/currentPage'} }
      - { routePath: '/blog/{slug}', _controller: 'Blog::detail' }
    requirements:
      page: '[0-9]+'
      slug: '.*'

Zakončenie URL podľa typu stránky

Typ Page umožňuje konfigurovať zakončenie URL podľa typu stránky, napr. .html.
Prípona sa pridá na konci URL pomocou StaticValueMapper.
Príklad konfigurácie:

routeEnhancers:
  PageType:
    type: PageType default: ’’
      map:
        ’.html’: 1
        ’menu.json’: 13