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']]
         ]
      ]
   ],
]

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']
         ]
      ]
   ],
]

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