我想将所有指向不存在的Wiki页面的链接重定向到MediaWiki实例之外的另一个网址。我想避免为此写自己的扩展;也就是说,应该有一种方法可以通过简单的配置来实现,但文档并没有真正说明。
答案 0 :(得分:3)
我不知道配置选项,但您可以使用LinkEnd
hook并检查“已损坏”选项:
$wgHooks['LinkEnd'][] = function( $dummy, Title $target, array $options, &$html, array &$attribs, &$ret )
{
if( in_array( 'broken', $options ) ) $attribs['href'] = 'http://yourlinkhere';
return true;
};
这可以直接放在LocalSettings.php
中,而无需编辑任何其他文件。
答案 1 :(得分:0)
我不认为MediaWiki可以开箱即用,但你当然可以加入一些javascript来截取点击红色链接:
$('a.new').click(function(e) {
e.preventDefault();
window.location.href = 'http://www.example.com';
});
默认情况下MediaWiki附带jQuery,因此无需进一步更改即可使用。
答案 2 :(得分:0)
这是一个老问题,但我能够通过以下方式完成(MediaWiki 1.28):
$wgMultiBoilerplateOptions[ "New page template" ] = "Template:Preload";
# if a link is to create a new page, add querystring parameter to pre-populate with template
$wgHooks["HtmlPageLinkRendererBegin"][] = function( $dummy, $target, &$html, &$customAttribs, &$query, &$options, &$ret ) {
# if the target does not exist
$exists = $target -> exists();
if ( !$exists ) {
# add querystring parameter to set template, which will pre-populate empty new page
$query["boilerplate"] = "Template:Preload";
}
return true;
};