Index: linkchecker.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/linkchecker/linkchecker.module,v retrieving revision 1.7.2.143 diff -u -r1.7.2.143 linkchecker.module --- linkchecker.module 12 Sep 2010 13:29:12 -0000 1.7.2.143 +++ linkchecker.module 25 Jan 2011 20:47:20 -0000 @@ -1197,6 +1197,24 @@ // they may also not be able to fix the source node of the reference. $filters_blacklist = array_keys(array_filter(variable_get('linkchecker_filter_blacklist', explode('|', LINKCHECKER_DEFAULT_FILTER_BLACKLIST)))); + // TODO: + // Move this code outside of this function into a module hook function. + // Maybe there are other modules that require hacks like this. + // + // By default, views module adds hover links to the content 'view'. + // This is bad as the input filters will always see, what the current user + // can see and linkchecker will therefore save the hover links and tries to + // check them later for validity, but will receive a HTTP 403 status error + // for anonymous permission reasons. + // + // Linkchecker can only workaround by overriding the settings variable to + // disable the hover links, while running the input filters on content. + global $conf; + $setting_views_no_hover_links = variable_get('views_no_hover_links', FALSE); + if (empty($setting_views_no_hover_links)) { + $conf['views_no_hover_links'] = TRUE; + } + // Give filters the chance to escape HTML-like data such as code or formulas. foreach ($filters as $filter) { if (!in_array($filter->module . '/' . $filter->delta, $filters_blacklist)) { @@ -1211,6 +1229,9 @@ } } + // Restore views original setting. + $conf['views_no_hover_links'] = $setting_views_no_hover_links; + // Store in cache with a minimum expiration time of 1 day. if ($cache) { cache_set($cache_id, $text, 'cache_filter', time() + (60 * 60 * 24));