Extension:Logotipo/ru

Довольно простой пример анализатора функции: #logotipo: принимает один параметр (URL, указывающий на изображение) и копирует это значение в $wgLogo.

Любые специальные символы удаляются и кэшируется отдельная страница, на которой эта функция была отключена. Затем функция возвращает пустую строку.

Один из примеров использования этого расширения: http://desciclopedia.org/wiki/Rede_Globo - эта страница шуточно заменяет логотип "батат" в логотип сети Globo TV.

Код расширение logotipo.php, должен быть сохранён в виде файла на сервер, который затем связывается (с использованием require_once) в LocalSettings.php:

logotipo.php
parser function to change the site logo ($wgLogo) on a per-page basis', );

// Register the parser function with the parser $wgHooks['ParserFirstCallInit'][] = 'wfLogotipoFunction_Setup';

$wgHooks['LanguageGetMagic'][] = 'wfLogotipoFunction_Magic';
 * 1) Add a hook to initialise as a MediaWiki magic word

function wfLogotipoFunction_Setup( &$parser ) { # Set a function hook associating the "logotipo" magic word with our function $parser->setFunctionHook( 'logotipo', 'wfLogotipoFunction_Render' ); return true; }
 * 1) Setup functions

function wfLogotipoFunction_Magic( &$magicWords, $langCode ) { # Add the magic word # The first array element is case sensitive, in this case it is not case sensitive # All remaining elements are synonyms for our parser function $magicWords['logotipo'] = array( 0, 'logotipo' ); # return true, otherwise other parser function extensions won't load. return true; }

function wfLogotipoFunction_Render( &$parser, $param1 = '' ) { global $wgLogo;
 * 1) The #logotipo: parser function itself
 * 2) This merely sets $wgLogo to a user-supplied URL, special characters removed,
 * 3) for the currently-displayed MediaWiki page.

# The parser function itself # The input parameter is a full URL of the desired logo for display, # which is simply copied into $wgLogo; any special characters are # removed and page caching is disabled for this one page.

$parser->disableCache; $wgLogo = htmlspecialchars( $param1 ); return ''; }