Manual:Hooks/LinkBegin/ru
File:OOjs UI icon alert-destructive.svg | <translate> This feature was removed from MediaWiki core in version <tvar name=ver>1.36.0</tvar> (after being deprecated in <tvar name=4>1.28.0</tvar>).</translate> <translate> Please see <tvar name=page>HtmlPageLinkRendererBegin</tvar> for an alternative way to use this feature.</translate> |
LinkBegin | |
---|---|
<translate> Available from <tvar name=1><translate> version <tvar </tvar></translate> <translate> Removed in <tvar name=1><translate> version <tvar (Gerrit change 593874)</tvar></translate> Used when generating internal and interwiki links in Linker::link(), before processing starts. | |
<translate> Define function:</translate> | public static function onLinkBegin( $dummy, $target, &$html, &$customAttribs, &$query, &$options, &$ret ) { ... }
|
<translate> Attach hook:</translate> | <translate> In <tvar name=1>extension.json</tvar>:</translate>
{
"Hooks": {
"LinkBegin": "MediaWiki\\Extension\\MyExtension\\Hooks::onLinkBegin"
}
}
|
<translate> Called from:</translate> | <translate> File(s):</translate> linker/LinkRenderer.php <translate> Function(s):</translate> runLegacyBeginHook |
<translate> Interface:</translate> | LinkBeginHook.php |
<translate> For more information about attaching hooks, see <tvar name=1>Руководство:Прерывания (хуки) </tvar>.</translate>
<translate> For examples of extensions using this hook, see <tvar name=cat>Category:LinkBegin extensions/ru</tvar>.</translate>
Warning
In MediaWiki 1.28 it was superseded with HtmlPageLinkRendererBegin .
LinkBegin
is considered outdated.
Details
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
'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
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.