Bug #99529
closedDuplicate slugs with collisions using TCA type "slug" and records with sys_language_uid = -1
100%
Description
Here, there is a collision with uid=4 and uid=5 as well as uid=4 and uid=6. They all have the slug 'hallo-2' which would be ok if the language differs, but sys_language_uid=-1 means the record will be shown for all languages
select uid,sys_language_uid,deleted,hidden,slug,title from db.tx_sypetsexampleslug_something; +-----+------------------+---------+--------+-------------------+---------------------+ | uid | sys_language_uid | deleted | hidden | slug | title | +-----+------------------+---------+--------+-------------------+---------------------+ | 1 | 0 | 0 | 0 | hallo | hallo | | 2 | 0 | 0 | 0 | halloeoe-usw-blah | hallöö usw. blah | | 3 | 0 | 0 | 0 | hallo-1 | hallo | | 4 | -1 | 0 | 0 | hallo-2 | hallo | | 5 | 6 | 0 | 0 | hallo-2 | hallo | | 6 | 0 | 0 | 0 | hallo-2 | hallo | +-----+------------------+---------+--------+-------------------+---------------------+
Reproduce¶
There is a minimal extension to reproduce issue which works with v12: https://github.com/sypets/sypets_example_slug
1. Use an extension with slug field (e.g. calendarize or sypets_example_slug)
2. Create several records with the same slugs. Create at least one record with sys_language_uid=-1 (you may have to save once and then generate the slug again to create the duplicate)
The problem can be reproduced with news + TYPO3 v11, calendarize and TYPO3 v11 and TYPO3 v12 and the example extension sypets_example_slug.
or check existing content for extensions, e.g.
news (language 0 or -1):
select path_segment,count(*) as c from tx_news_domain_model_news where not hidden and not deleted and (sys_language_uid=0 || sys_language_uid=-1) group by path_segment order by c;
calendarize (language 0 or -1):
select slug,count(*) as c from tx_calendarize_domain_model_event where not hidden and not deleted and (sys_language_uid=0 || sys_language_uid=-1) group by slug order by c;
Versions¶
- reproduced with latest main branch (v12)
- can be reproduced with v11 using EXT:calendarize, see issue: https://github.com/lochmueller/calendarize/issues/731
Source code example¶
// slug field
'slug' => [
'exclude' => false,
'label' => 'slug',
'config' => [
'type' => 'slug',
'generatorOptions' => [
'fields' => ['title'],
'fieldSeparator' => '/',
'prefixParentPageSlug' => true,
'replacements' => [
'/' => '',
],
],
'fallbackCharacter' => '-',
'eval' => 'unique',
'default' => ''
]
],
Updated by Gerrit Code Review almost 2 years ago
- Status changed from New to Under Review
Patch set 1 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/77383
Updated by Gerrit Code Review almost 2 years ago
Patch set 2 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/77383
Updated by Gerrit Code Review almost 2 years ago
Patch set 3 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/77383
Updated by Sybille Peters almost 2 years ago
- Subject changed from It is possible to create duplicate slugs with collisions using TCA type "slug" and records with sys_language_uid = -1 to Duplicate slugs with collisions using TCA type "slug" and records with sys_language_uid = -1
Updated by Sybille Peters almost 2 years ago
- Related to Bug #98629: Saving a record with TCA type=slug and sys_language_uid=1 may result in duplicate slug added
Updated by Gerrit Code Review almost 2 years ago
Patch set 4 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/77383
Updated by Gerrit Code Review almost 2 years ago
Patch set 5 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/77383
Updated by Gerrit Code Review almost 2 years ago
Patch set 1 for branch 11.5 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/77407
Updated by Sybille Peters almost 2 years ago
- Status changed from Under Review to Resolved
- % Done changed from 0 to 100
Applied in changeset 8261087318b6179c211572caf133a0e69f530d9e.
Updated by Benni Mack almost 2 years ago
- Status changed from Resolved to Closed
Updated by Georg Ringer 5 months ago
- Related to Bug #98456: Slug generation for language ID -1 added