Jump to content
MediaWiki

Manual:Hooks/LinkBegin

From mediawiki.org
This feature was removed from MediaWiki core in version 1.36.0 (after being deprecated in 1.28.0). Please see HtmlPageLinkRendererBegin for an alternative way to use this feature.
LinkBegin
Available from version 1.14.0
Removed in version 1.36.0 (Gerrit change 593874)
Used when generating internal and interwiki links in Linker::link(), before processing starts.
Define function:
public static function onLinkBegin( $dummy, $target, &$html, &$customAttribs, &$query, &$options, &$ret ) { ... }
Attach hook: In extension.json:
{
"Hooks":{
"LinkBegin":"MediaWiki\\Extension\\MyExtension\\Hooks::onLinkBegin"
}
}
Called from: File(s): linker/LinkRenderer.php
Function(s): runLegacyBeginHook
Interface: LinkBeginHook.php

For more information about attaching hooks, see Manual:Hooks .
For examples of extensions using this hook, see Category:LinkBegin extensions.

Warning

[edit ]

In MediaWiki 1.28 it was superseded with HtmlPageLinkRendererBegin . LinkBegin is considered outdated.

Details

[edit ]

Return false to skip default processing and return $ret. See documentation for Linker::link() for details on the expected meanings of parameters.

  • $dummy: used to be a skin, but that eliminated.
  • $target: the Title that the link is pointing to.
  • &$html
  • &$customAttribs: the HTML attributes (such as title and class; href is ignored) that the ‎<a> tag should have, in associative array form, with keys and values unescaped. Should be merged with default values, with a value of false meaning to suppress the attribute. Other attributes will replace default attributes.
  • &$query: the query string to add to the generated URL (the bit after the "?"), in associative array form, with keys and values unescaped. Query keys and values will be URL-encoded.
  • &$options: the options. Can include 'known', 'broken', 'noclasses', 'forcearticlepath', 'http', or 'https'.
  • &$ret: the value to return if your hook returns false.

$options values

[edit ]
  • 'known': Page is known to exist, so don't check if it does.
  • 'broken': Page is known not to exist, so don't check if it does.
  • 'noclasses': Don't add any classes automatically (includes "new", "stub", "mw-redirect", "extiw"). Only use the class attribute provided, if any, so you get a simple blue link with no funny icons.
  • 'forcearticlepath': Use the article path always, even with a querystring. Has compatibility issues on some setups, so avoid wherever possible.
  • 'http': Force a full URL with http:// as the scheme.
  • 'https': Force a full URL with https:// as the scheme.

Example

[edit ]

The following code will show all wikilinks as broken (i.e. as red links) by changing the $customAttribs class to "new":

$wgHooks['LinkBegin'][] = 'ExampleExtension::exampleExtensionLinkBegin';
class ExampleExtension {
	public static function exampleExtensionLinkBegin( $dummy, $target, &$html, &$customAttribs, &$query,
		&$options, &$ret ) {
		$customAttribs['class'] = 'new';
		return true;
	}
}

Another way to achieve the same result would be to change $ret instead of $customAttribs and return false, like this:

$wgHooks['LinkBegin'][] = 'ExampleExtension::exampleExtensionLinkBegin';
class ExampleExtension {
	public static function exampleExtensionLinkBegin( $dummy, $target, &$html, &$customAttribs, &$query,
		&$options, &$ret ) {
		$ret = Html::rawElement ( 'a', array ( 'href' => $target->getFullURL(), 'class' => 'new' ),
			$target->getPrefixedDBKey() );
		return false;
	}
}

Note that neither of these examples will have any effect on interwiki links. For that, you'll need to use LinkEnd . See the example.

See also

[edit ]

AltStyle によって変換されたページ (->オリジナル) /