Bug #103691
openRechecking links after edit in linkvalidator will always result in link being removed because of wrong linktypes
0%
Description
Reproduce¶
1. On pages with broken links, run "Check links" in the linkvalidator module
2. Jump to "Report" and click "edit" action button for one of the links
3. Change the link - but make sure it is still broken
4. Save and close
The broken links should now still be in the list of broken links, but it is removed
Analyze¶
The reason that this happens is that wrong linktypes array is passed to the function LinkAnalyzer::checkLinks.
In function checkLinks, compare value of second parameter $linkTypes.
1. On full check:
LinkvalidatorController calls LinkAnalyzer::getLinkStatistics()
with first parameter $linkTypes (which is a modified list of $this->checkOpt['check'] where the link type is the value, not the array
LinkAnalyzer::checkLinks is called with second parameter $linkTypes:
[ 0 => 'external' 1 => 'file' 2 => 'db' ]
2. On recheck
LinkvalidatorController calls LinkAnalyzer::recheckLinks()
with first parameter $this->checkOpt['check']
[ 'external' => 1 'file' => 1 'db' => 1 ]
Versions¶
- v11
- v12
- v13