Bug #89182
Updated by Sybille Peters about 4 years ago
Some checks should only be performed if content is relevant. For example: tt_content.bodytext : depends on ctype (e.g. is usually not relevant for plugins) pages.url : depends on doktype The problem is currently, if page or content element type is change, the content is not removed from the fields which are now no longer relevant, so in older sites where this had been changed, you may get a lot of "broken links" for content that is not rendered in FE and is irrelevant. h2 Reproduce # Create a content element, e.g. "text & media" # Add a broken link to the content (tt_content.bodytext) # Now change the content type, e.g. to plugin # We recheck for broken links for that page # We look at linkvalidator report h2. Actual result The broken link will be displayed h2. Expected result The broken link in the element "plugin" should not be displayed, because tt_content.bodytext is not relevant if content type is plugin h2. Possible solution It should be possible to Possible ideas: * *automatic* (preferred): Handle this in a restriction_builder per table.field. We can get the information, which fields are editable for a content element via TCA: 'interface' => 'showRecordFieldList'. If the editor can edit the field (permissions) is already checked in #84214 * configure: Add restrictions to the query via TSconfig h3. Automatic (TCA) Examples: tt_content * Get content type from tt_content.ctype * bootstrap_package accordion_item has 'interface' => 'showRecordFieldsList': .. bodytext so we should check that. Examples: pages * canonical_link * url (depends on doktype) * tt_content.bodytext: depends on ctype (should not be 'header', ' h3. Configure TSconfig <pre> mod.linkvalidator { # this is already existing TSconfig which defineds the table / field combinations searchFields = { pages = media,url } # this could be additional restrictions for the fields searchRestrictions = { pages.url { ... } } </pre>