Feature: #87085 - Fallback options for slug fields

See forge#87085

Description

In case of SEO optimizations and the daily work of an editor, now it is possible to define a list of fields in the slug configuration as nested array:

'columns' => [
   'slug' => [
      'config' => [
         'generatorOptions' => [
            // use value of 'nav_title'. If 'nav_title' is empty, use value of 'title'
            'fields' => [['nav_title', 'title']]
         ]
      ]
   ],
]
Copied!

The fallback field can also be combined with other fields:

'columns' => [
   'slug' => [
      'config' => [
         'generatorOptions' => [
            // Concatenate path segments. In first segment, use 'nav_title' or 'title'.
            'fields' => [['nav_title', 'title'], 'other_field']
         ]
      ]
   ],
]
Copied!

Hint

In this context:

  • ['nav_title', 'title'] is the same as [['nav_title'], ['title']]
  • ['nav_title', 'title'] is not the same as [['nav_title', 'title']]

Examples

Configuration value Values of an example page record Resulting slug
[['nav_title', 'title']] ['title' => 'Products', 'nav_title' => ''] /products
[['title', 'subtitle']] ['title' => 'Products', 'subtitle' => 'Product subtitle'] /products
['title', 'subtitle'] or [['title'], ['subtitle']] ['title' => 'Products', 'subtitle' => 'Product subtitle'] /products/product-subtitle
['nav_title', 'title'], 'subtitle' ['title' => 'Products', 'nav_title' => 'Best products', 'subtitle' => 'Product subtitle'] /best-products/product-subtitle
['seo_title', 'title'], ['nav_title', 'subtitle'] ['title' => 'Products', 'nav_title' => 'Best products', 'subtitle' => 'Product subtitle', 'seo_title' => 'SEO product title'] /seo-product-title/products