Actions
Task #105873
openShould always store page id in tx_linkvalidator_broken_links not pid
Start date:
2025-01-01
Due date:
% Done:
0%
Estimated time:
TYPO3 Version:
14
PHP Version:
Tags:
Complexity:
Sprint Focus:
Description
The tx_linkvalidator_broken_links.record_pid always contains the pid of the content record. For pages, this is inconvenient because we need the uid, not the pid. We always need the page id.
It would be better if we generally store the page id instead of the pid.
The current state requires a lot of awkward DB queries where we have to consider pages and non-pages seperately:
For example:
->where(
$queryBuilder->expr()->or(
$queryBuilder->expr()->and(
$queryBuilder->expr()->in(
'record_uid',
$queryBuilder->quoteArrayBasedValueListToIntegerList($pageIdsChunk)
),
$queryBuilder->expr()->eq('table_name', $queryBuilder->quote('pages'))
),
$queryBuilder->expr()->and(
$queryBuilder->expr()->in(
'record_pid',
$queryBuilder->quoteArrayBasedValueListToIntegerList($pageIdsChunk)
),
$queryBuilder->expr()->neq('table_name', $queryBuilder->quote('pages'))
)
)
$constraints = [
$queryBuilder->expr()->or(
$queryBuilder->expr()->and(
$queryBuilder->expr()->in(
'record_uid',
$queryBuilder->quoteArrayBasedValueListToIntegerList($pageIdsChunk)
),
$queryBuilder->expr()->eq('table_name', $queryBuilder->quote('pages'))
),
$queryBuilder->expr()->and(
$queryBuilder->expr()->in(
'record_pid',
$queryBuilder->quoteArrayBasedValueListToIntegerList($pageIdsChunk)
),
$queryBuilder->expr()->neq('table_name', $queryBuilder->quote('pages'))
)
),
etc. ....
Updated by Sybille Peters 13 days ago
- Related to Bug #105413: Linkvalidator BE-Module wrong permissions for invalid links in page attributes added
Actions