parent::__construct();
// Register the given Config object as the bootstrap config service.
- $this->defineService( 'BootstrapConfig', function() use ( $config ) {
+ $this->defineService( 'BootstrapConfig', function () use ( $config ) {
return $config;
} );
}
}
$previousValue = self::$instance;
self::$instance = $store;
- return new ScopedCallback( function() use ( $previousValue ) {
+ return new ScopedCallback( function () use ( $previousValue ) {
self::$instance = $previousValue;
} );
}
use MediaWiki\MediaWikiServices;
return [
- 'DBLoadBalancerFactory' => function( MediaWikiServices $services ) {
+ 'DBLoadBalancerFactory' => function ( MediaWikiServices $services ) {
$mainConfig = $services->getMainConfig();
$lbConf = MWLBFactory::applyDefaultConfig(
return new $class( $lbConf );
},
- 'DBLoadBalancer' => function( MediaWikiServices $services ) {
+ 'DBLoadBalancer' => function ( MediaWikiServices $services ) {
// just return the default LB from the DBLoadBalancerFactory service
return $services->getDBLoadBalancerFactory()->getMainLB();
},
- 'SiteStore' => function( MediaWikiServices $services ) {
+ 'SiteStore' => function ( MediaWikiServices $services ) {
$rawSiteStore = new DBSiteStore( $services->getDBLoadBalancer() );
// TODO: replace wfGetCache with a CacheFactory service.
return new CachingSiteStore( $rawSiteStore, $cache );
},
- 'SiteLookup' => function( MediaWikiServices $services ) {
+ 'SiteLookup' => function ( MediaWikiServices $services ) {
$cacheFile = $services->getMainConfig()->get( 'SitesCacheFile' );
if ( $cacheFile !== false ) {
}
},
- 'ConfigFactory' => function( MediaWikiServices $services ) {
+ 'ConfigFactory' => function ( MediaWikiServices $services ) {
// Use the bootstrap config to initialize the ConfigFactory.
$registry = $services->getBootstrapConfig()->get( 'ConfigRegistry' );
$factory = new ConfigFactory();
return $factory;
},
- 'MainConfig' => function( MediaWikiServices $services ) {
+ 'MainConfig' => function ( MediaWikiServices $services ) {
// Use the 'main' config from the ConfigFactory service.
return $services->getConfigFactory()->makeConfig( 'main' );
},
- 'InterwikiLookup' => function( MediaWikiServices $services ) {
+ 'InterwikiLookup' => function ( MediaWikiServices $services ) {
global $wgContLang; // TODO: manage $wgContLang as a service
$config = $services->getMainConfig();
return new ClassicInterwikiLookup(
);
},
- 'StatsdDataFactory' => function( MediaWikiServices $services ) {
+ 'StatsdDataFactory' => function ( MediaWikiServices $services ) {
return new BufferingStatsdDataFactory(
rtrim( $services->getMainConfig()->get( 'StatsdMetricPrefix' ), '.' )
);
},
- 'EventRelayerGroup' => function( MediaWikiServices $services ) {
+ 'EventRelayerGroup' => function ( MediaWikiServices $services ) {
return new EventRelayerGroup( $services->getMainConfig()->get( 'EventRelayerConfig' ) );
},
- 'SearchEngineFactory' => function( MediaWikiServices $services ) {
+ 'SearchEngineFactory' => function ( MediaWikiServices $services ) {
return new SearchEngineFactory( $services->getSearchEngineConfig() );
},
- 'SearchEngineConfig' => function( MediaWikiServices $services ) {
+ 'SearchEngineConfig' => function ( MediaWikiServices $services ) {
global $wgContLang;
return new SearchEngineConfig( $services->getMainConfig(), $wgContLang );
},
- 'SkinFactory' => function( MediaWikiServices $services ) {
+ 'SkinFactory' => function ( MediaWikiServices $services ) {
$factory = new SkinFactory();
$names = $services->getMainConfig()->get( 'ValidSkinNames' );
return $factory;
},
- 'WatchedItemStore' => function( MediaWikiServices $services ) {
+ 'WatchedItemStore' => function ( MediaWikiServices $services ) {
$store = new WatchedItemStore(
$services->getDBLoadBalancer(),
new HashBagOStuff( [ 'maxKeys' => 100 ] ),
return $store;
},
- 'WatchedItemQueryService' => function( MediaWikiServices $services ) {
+ 'WatchedItemQueryService' => function ( MediaWikiServices $services ) {
return new WatchedItemQueryService( $services->getDBLoadBalancer() );
},
- 'CryptRand' => function( MediaWikiServices $services ) {
+ 'CryptRand' => function ( MediaWikiServices $services ) {
$secretKey = $services->getMainConfig()->get( 'SecretKey' );
return new CryptRand(
[
// for a little more variance
'wfWikiID',
// If we have a secret key set then throw it into the state as well
- function() use ( $secretKey ) {
+ function () use ( $secretKey ) {
return $secretKey ?: '';
}
],
);
},
- 'CryptHKDF' => function( MediaWikiServices $services ) {
+ 'CryptHKDF' => function ( MediaWikiServices $services ) {
$config = $services->getMainConfig();
$secret = $config->get( 'HKDFSecret' ) ?: $config->get( 'SecretKey' );
);
},
- 'MediaHandlerFactory' => function( MediaWikiServices $services ) {
+ 'MediaHandlerFactory' => function ( MediaWikiServices $services ) {
return new MediaHandlerFactory(
$services->getMainConfig()->get( 'MediaHandlers' )
);
},
- 'MimeAnalyzer' => function( MediaWikiServices $services ) {
+ 'MimeAnalyzer' => function ( MediaWikiServices $services ) {
$logger = LoggerFactory::getInstance( 'Mime' );
$mainConfig = $services->getMainConfig();
$params = [
return new MimeMagic( $params );
},
- 'ProxyLookup' => function( MediaWikiServices $services ) {
+ 'ProxyLookup' => function ( MediaWikiServices $services ) {
$mainConfig = $services->getMainConfig();
return new ProxyLookup(
$mainConfig->get( 'SquidServers' ),
);
},
- 'Parser' => function( MediaWikiServices $services ) {
+ 'Parser' => function ( MediaWikiServices $services ) {
$conf = $services->getMainConfig()->get( 'ParserConf' );
return ObjectFactory::constructClassInstance( $conf['class'], [ $conf ] );
},
- 'LinkCache' => function( MediaWikiServices $services ) {
+ 'LinkCache' => function ( MediaWikiServices $services ) {
return new LinkCache(
$services->getTitleFormatter(),
$services->getMainWANObjectCache()
);
},
- 'LinkRendererFactory' => function( MediaWikiServices $services ) {
+ 'LinkRendererFactory' => function ( MediaWikiServices $services ) {
return new LinkRendererFactory(
$services->getTitleFormatter(),
$services->getLinkCache()
);
},
- 'LinkRenderer' => function( MediaWikiServices $services ) {
+ 'LinkRenderer' => function ( MediaWikiServices $services ) {
global $wgUser;
if ( defined( 'MW_NO_SESSION' ) ) {
}
},
- 'GenderCache' => function( MediaWikiServices $services ) {
+ 'GenderCache' => function ( MediaWikiServices $services ) {
return new GenderCache();
},
- '_MediaWikiTitleCodec' => function( MediaWikiServices $services ) {
+ '_MediaWikiTitleCodec' => function ( MediaWikiServices $services ) {
global $wgContLang;
return new MediaWikiTitleCodec(
);
},
- 'TitleFormatter' => function( MediaWikiServices $services ) {
+ 'TitleFormatter' => function ( MediaWikiServices $services ) {
return $services->getService( '_MediaWikiTitleCodec' );
},
- 'TitleParser' => function( MediaWikiServices $services ) {
+ 'TitleParser' => function ( MediaWikiServices $services ) {
return $services->getService( '_MediaWikiTitleCodec' );
},
- 'MainObjectStash' => function( MediaWikiServices $services ) {
+ 'MainObjectStash' => function ( MediaWikiServices $services ) {
$mainConfig = $services->getMainConfig();
$id = $mainConfig->get( 'MainStash' );
return \ObjectCache::newFromParams( $mainConfig->get( 'ObjectCaches' )[$id] );
},
- 'MainWANObjectCache' => function( MediaWikiServices $services ) {
+ 'MainWANObjectCache' => function ( MediaWikiServices $services ) {
$mainConfig = $services->getMainConfig();
$id = $mainConfig->get( 'MainWANCache' );
return \ObjectCache::newWANCacheFromParams( $params );
},
- 'LocalServerObjectCache' => function( MediaWikiServices $services ) {
+ 'LocalServerObjectCache' => function ( MediaWikiServices $services ) {
$mainConfig = $services->getMainConfig();
if ( function_exists( 'apc_fetch' ) ) {
return \ObjectCache::newFromParams( $mainConfig->get( 'ObjectCaches' )[$id] );
},
- 'VirtualRESTServiceClient' => function( MediaWikiServices $services ) {
+ 'VirtualRESTServiceClient' => function ( MediaWikiServices $services ) {
$config = $services->getMainConfig()->get( 'VirtualRestConfig' );
$vrsClient = new VirtualRESTServiceClient( new MultiHttpClient( [] ) );
return $vrsClient;
},
- 'ConfiguredReadOnlyMode' => function( MediaWikiServices $services ) {
+ 'ConfiguredReadOnlyMode' => function ( MediaWikiServices $services ) {
return new ConfiguredReadOnlyMode( $services->getMainConfig() );
},
- 'ReadOnlyMode' => function( MediaWikiServices $services ) {
+ 'ReadOnlyMode' => function ( MediaWikiServices $services ) {
return new ReadOnlyMode(
$services->getConfiguredReadOnlyMode(),
$services->getDBLoadBalancer()
$allFields = get_object_vars( $row );
$rcKeys = array_filter(
array_keys( $allFields ),
- function( $key ) {
+ function ( $key ) {
return substr( $key, 0, 3 ) === 'rc_';
}
);
}
$previousValue = $this->deferredUpdatesAddCallableUpdateCallback;
$this->deferredUpdatesAddCallableUpdateCallback = $callback;
- return new ScopedCallback( function() use ( $previousValue ) {
+ return new ScopedCallback( function () use ( $previousValue ) {
$this->deferredUpdatesAddCallableUpdateCallback = $previousValue;
} );
}
}
$previousValue = $this->revisionGetTimestampFromIdCallback;
$this->revisionGetTimestampFromIdCallback = $callback;
- return new ScopedCallback( function() use ( $previousValue ) {
+ return new ScopedCallback( function () use ( $previousValue ) {
$this->revisionGetTimestampFromIdCallback = $previousValue;
} );
}
// Calls DeferredUpdates::addCallableUpdate in normal operation
call_user_func(
$this->deferredUpdatesAddCallableUpdateCallback,
- function() use ( $job ) {
+ function () use ( $job ) {
$job->run();
}
);
<?php
/**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
<?php
/**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
<?php
/**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/**
* Created on Jan 29, 2015
*
- * Copyright © 2015 Brad Jorsch bjorsch@wikimedia.org
+ * Copyright © 2015 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
<?php
/**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* Created on Aug 29, 2014
*
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* Created on Dec 22, 2014
*
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
<?php
/**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* Copyright © 2006 Yuri Astrakhan "<Firstname><Lastname>@gmail.com"
* Copyright © 2008 Brion Vibber <brion@wikimedia.org>
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/**
* Created on Oct 3, 2014
*
- * Copyright © 2014 Brad Jorsch "bjorsch@wikimedia.org"
+ * Copyright © 2014 Wikimedia Foundation and contributors
*
* Heavily based on ApiQueryDeletedrevs,
* Copyright © 2007 Roan Kattouw "<Firstname>.<Lastname>@gmail.com"
/**
* Created on Sep 27, 2015
*
- * Copyright © 2015 Brad Jorsch "bjorsch@wikimedia.org"
+ * Copyright © 2015 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
<?php
/**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* Created on Aug 19, 2014
*
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* Created on Nov 14, 2013
*
- * Copyright © 2013 Brad Jorsch
+ * Copyright © 2013 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/**
* Created on Oct 3, 2014
*
- * Copyright © 2014 Brad Jorsch "bjorsch@wikimedia.org"
+ * Copyright © 2014 Wikimedia Foundation and contributors
*
* Heavily based on ApiQueryDeletedrevs,
* Copyright © 2007 Roan Kattouw "<Firstname>.<Lastname>@gmail.com"
if ( $this->fld_watched ) {
foreach ( $timestamps as $namespaceId => $dbKeys ) {
$this->watched[$namespaceId] = array_map(
- function( $x ) {
+ function ( $x ) {
return $x !== false;
},
$dbKeys
$timestamps[$row->page_namespace][$row->page_title] = $revTimestamp - $age;
}
$titlesWithThresholds = array_map(
- function( LinkTarget $target ) use ( $timestamps ) {
+ function ( LinkTarget $target ) use ( $timestamps ) {
return [
$target, $timestamps[$target->getNamespace()][$target->getDBkey()]
];
$titlesWithThresholds = array_merge(
$titlesWithThresholds,
array_map(
- function( LinkTarget $target ) {
+ function ( LinkTarget $target ) {
return [ $target, null ];
},
$this->missing
/**
* Created on January 21, 2013
*
- * Copyright © 2013 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2013 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* @file
* @since 1.21
- * @author Brad Jorsch
*/
/**
/**
* Created on December 31, 2012
*
- * Copyright © 2012 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2012 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* @file
* @since 1.21
- * @author Brad Jorsch
*/
/**
$titles = $searchEngine->extractTitles( $searchEngine->completionSearchWithVariants( $search ) );
if ( $resultPageSet ) {
- $resultPageSet->setRedirectMergePolicy( function( array $current, array $new ) {
+ $resultPageSet->setRedirectMergePolicy( function ( array $current, array $new ) {
if ( !isset( $current['index'] ) || $new['index'] < $current['index'] ) {
$current['index'] = $new['index'];
}
*
* Created on August 8, 2014
*
- * Copyright © 2014 Brad Jorsch bjorsch@wikimedia.org
+ * Copyright © 2014 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
}
if ( isset( $this->prop['groupmemberships'] ) ) {
- $data[$key]['groupmemberships'] = array_map( function( $ugm ) {
+ $data[$key]['groupmemberships'] = array_map( function ( $ugm ) {
return [
'group' => $ugm->getGroup(),
'expiry' => ApiResult::formatExpiry( $ugm->getExpiry() ),
<?php
/**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
<?php
/**
- * Copyright © 2016 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2016 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/**
* Created on Jun 25, 2013
*
- * Copyright © 2013 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2013 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/**
* Created on Feb 25, 2015
*
- * Copyright © 2015 Brad Jorsch "bjorsch@wikimedia.org"
+ * Copyright © 2015 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* Created on Jun 18, 2012
*
- * Copyright © 2012 Brad Jorsch
+ * Copyright © 2012 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
"Dj"
]
},
- "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|Dokumentáció]]\n* [[mw:Special:MyLanguage/API:FAQ|GYIK]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Levelezőlista]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-bejelentések]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Hibabejelentések és kérések]\n</div>\n<strong>Státusz:</strong> Minden ezen a lapon látható funkciónak működnie kell, de az API jelenleg is aktív fejlesztés alatt áll, és bármikor változhat. Iratkozz fel a [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce levelezőlistára] a frissítések követéséhez.\n\n<strong>Hibás kérések:</strong> Ha az API hibás kérést kap, egy HTTP-fejlécet küld vissza „MediaWiki-API-Error” kulccsal, és a fejléc értéke és a visszaküldött hibakód ugyanarra az értékre lesz állítva. További információért lásd: [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Hibák és figyelmeztetések]].\n\n<strong>Tesztelés:</strong> Az API-kérések könnyebb teszteléséhez használható az [[Special:ApiSandbox|API-homokozó]].",
"apihelp-main-param-action": "Milyen műveletet hajtson végre.",
"apihelp-main-param-format": "A kimenet formátuma.",
"apihelp-main-param-smaxage": "Az <code>s-maxage</code> gyorsítótár-vezérlő HTTP-fejléc beállítása ennyi másodpercre. A hibák soha nincsenek gyorsítótárazva.",
"apihelp-main-param-errorformat": "A figyelmeztetések és hibaüzenetek formátuma.\n; plaintext: Wikiszöveg eltávolított HTML-címkékkel és a HTML-entitások (pl. &amp;) kicserélésével.\n; wikitext: Feldolgozatlan wikiszöveg.\n; html: HTML.\n; raw: Az üzenet azonosítója és paraméterei.\n; none: Szöveges kimenet mellőzése, csak hibakódok.\n; bc: A MediaWiki 1.29 előtti formátum. A <var>errorlang</var> és <var> erroruselocal</var> paraméterek figyelmen kívül lesznek hagyva.",
"apihelp-main-param-errorlang": "A figyelmeztetésekhez és hibaüzenetekhez használandó nyelv. A <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> a <kbd>siprop=languages</kbd> paraméterrel visszaadja a lehetséges nyelvkódok listáját, vagy <kbd>content</kbd> a wiki nyelvbeállításához, illetve <kbd>uselang</kbd> a <var>uselang</var> paraméter értékéhez.",
"apihelp-main-param-errorsuselocal": "Ha meg van adva, a hibaüzenetek a helyileg testreszabott üzeneteket fogják használni a {{ns:MediaWiki}} névtérből.",
- "apihelp-block-description": "Szerkesztő blokkolása",
+ "apihelp-block-summary": "Szerkesztő blokkolása",
"apihelp-block-param-user": "Blokkolandó felhasználónév, IP-cím vagy IP-címtartomány. Nem használható együtt a <var>$1userid</var> paraméterrel.",
"apihelp-block-param-userid": "A blokkolandó felhasználó numerikus azonosítója. Nem használható a <var>$1user</var> paraméterrel együtt.",
"apihelp-block-param-expiry": "Lejárat ideje. Lehet relatív (pl. <kbd>5 months</kbd>, <kbd>2 weeks</kbd>) vagy abszolút (pl. <kbd>2014-09-18T12:34:56Z</kbd>). Ha <kbd>infinite</kbd>-re, <kbd>indefinite</kbd>-re vagy <kbd>never</kbd>-re állítod, a blokk soha nem fog lejárni.",
"apihelp-block-param-watchuser": "A szerkesztő vagy IP-cím szerkesztői- és vitalapjának figyelése.",
"apihelp-block-example-ip-simple": "A <kbd>192.0.2.5</kbd> IP-cím blokkolása három napra <kbd>First strike</kbd> indoklással.",
"apihelp-block-example-user-complex": "<kbd>Vandal</kbd> blokkolása határozatlan időre <kbd>Vandalism</kbd> indoklással, új fiók létrehozásának és e-mail küldésének megakadályozása.",
- "apihelp-checktoken-description": "Egy <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> kéréssel szerzett token érvényességének vizsgálata.",
+ "apihelp-checktoken-summary": "Egy <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> kéréssel szerzett token érvényességének vizsgálata.",
"apihelp-checktoken-param-type": "A tesztelendő token típusa.",
"apihelp-checktoken-param-token": "A tesztelendő token.",
"apihelp-checktoken-param-maxtokenage": "A token megengedett legnagyobb kora másodpercekben.",
"apihelp-checktoken-example-simple": "Egy <kbd>csrf</kbd> token érvényességének vizsgálata.",
- "apihelp-clearhasmsg-description": "A <code>hasmsg</code> jelzés törlése az aktuális felhasználónak.",
+ "apihelp-clearhasmsg-summary": "A <code>hasmsg</code> jelzés törlése az aktuális felhasználónak.",
"apihelp-clearhasmsg-example-1": "A <code>hasmsg</code> jelzés törlése az aktuális felhasználónak.",
"apihelp-clientlogin-example-login": "A bejelentkezési folyamat elkezdése <kbd>Example</kbd> felhasználónévvel és <kbd>ExamplePassword</kbd> jelszóval.",
"apihelp-clientlogin-example-login2": "A bejelentkezés folytatása <samp>UI</samp> válasz után a kétlépcsős azonosításra, az <var>OATHToken</var> paraméternek <kbd>987654</kbd> értéket megadva.",
- "apihelp-compare-description": "Két lap közötti különbség kiszámítása.\n\nMindkét laphoz kötelező megadni egy lapváltozat-azonosítót, címet vagy lapazonosítót.",
"apihelp-compare-param-fromtitle": "Az első összehasonlítandó lap címe.",
"apihelp-compare-param-fromid": "Az első összehasonlítandó lap lapazonosítója.",
"apihelp-compare-param-fromrev": "Az első összehasonlítandó lapváltozat azonosítója.",
"apihelp-compare-param-toid": "A második összehasonlítandó lap lapazonosítója.",
"apihelp-compare-param-torev": "A második összehasonlítandó lapváltozat azonosítója.",
"apihelp-compare-example-1": "Az 1-es és 2-es lapváltozat összehasonlítása.",
- "apihelp-createaccount-description": "Új felhasználói fiók létrehozása.",
+ "apihelp-createaccount-summary": "Új felhasználói fiók létrehozása.",
"apihelp-createaccount-example-create": "<kbd>Example</kbd> felhasználói fiók létrehozásának elkezdése <kbd>ExamplePassword</kbd> jelszóval.",
"apihelp-createaccount-param-name": "Felhasználónév.",
"apihelp-createaccount-param-password": "Jelszó (figyelmen kívül hagyva, ha a <var>$1mailpassword</var> be van állítva).",
"apihelp-createaccount-param-language": "A felhasználó alapértelmezett nyelvkódja (opcionális, alapértelmezetten a tartalom nyelve).",
"apihelp-createaccount-example-pass": "<kbd>testuser</kbd> felhasználó létrehozása <kbd>test123</kbd> jelszóval.",
"apihelp-createaccount-example-mail": "<kbd>testmailuser</kbd> felhasználó létrehozása, véletlenszerű jelszó elküldése e-mailben.",
- "apihelp-delete-description": "Lap törlése.",
+ "apihelp-delete-summary": "Lap törlése.",
"apihelp-delete-param-title": "A törlendő lap címe. Nem használható együtt a <var>$1pageid</var> paraméterrel.",
"apihelp-delete-param-pageid": "A törlendő lap lapazonosítója. Nem használható együtt a <var>$1title</var> paraméterrel.",
"apihelp-delete-param-reason": "A törlés indoka. Ha nincs beállítva, automatikusan generált indoklás helyettesíti.",
"apihelp-delete-param-oldimage": "A törlendő régi kép neve az [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]] által adott formátumban.",
"apihelp-delete-example-simple": "<kbd>Main Page</kbd> törlése.",
"apihelp-delete-example-reason": "<kbd>Main Page</kbd> törlése <kbd>Preparing for move</kbd> indoklással.",
- "apihelp-disabled-description": "Ez a modul le lett tiltva.",
- "apihelp-edit-description": "Lapok létrehozása és szerkesztése.",
+ "apihelp-disabled-summary": "Ez a modul le lett tiltva.",
+ "apihelp-edit-summary": "Lapok létrehozása és szerkesztése.",
"apihelp-edit-param-title": "A szerkesztendő lap címe. Nem használható együtt a <var>$1pageid</var> paraméterrel.",
"apihelp-edit-param-pageid": "A szerkesztendő lap lapazonosítója. Nem használható együtt a <var>$1title</var> paraméterrel.",
"apihelp-edit-param-section": "A szerkesztendő szakasz száma. <kbd>0</kbd> a bevezetőhöz, <kbd>new</kbd> új szakaszhoz.",
"apihelp-edit-example-edit": "Lap szerkesztése",
"apihelp-edit-example-prepend": "<kbd>__NOTOC__</kbd> hozzáadása a lap elejére.",
"apihelp-edit-example-undo": "Az 13579–13585. változatok visszavonása automatikus szerkesztési összefoglalóval.",
- "apihelp-emailuser-description": "E-mail küldése",
+ "apihelp-emailuser-summary": "E-mail küldése",
"apihelp-emailuser-param-target": "Az e-mail címzettje.",
"apihelp-emailuser-param-subject": "A levél tárgya.",
"apihelp-emailuser-param-text": "Szövegtörzs.",
"apihelp-emailuser-param-ccme": "Másolat küldése magamnak.",
"apihelp-emailuser-example-email": "E-mail küldése <kbd>WikiSysop</kbd> felhasználónak <kbd>Content</kbd> szöveggel.",
- "apihelp-expandtemplates-description": "Minden sablon kibontása a wikiszövegben.",
+ "apihelp-expandtemplates-summary": "Minden sablon kibontása a wikiszövegben.",
"apihelp-expandtemplates-param-title": "Lap címe.",
"apihelp-expandtemplates-param-text": "Az átalakítandó wikiszöveg.",
"apihelp-expandtemplates-param-revid": "Változatazonosító a <nowiki>{{REVISIONID}}</nowiki> és hasonló változók kibontásához.",
"apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "A lapra vonatkozó JavaScript-változók.",
"apihelp-expandtemplates-param-includecomments": "A HTML-megjegyzések szerepeljenek-e a kimenetben.",
"apihelp-expandtemplates-example-simple": "A <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd> wikiszöveg kibontása.",
- "apihelp-feedcontributions-description": "Egy felhasználó közreműködéseinek lekérése hírcsatornaként.",
+ "apihelp-feedcontributions-summary": "Egy felhasználó közreműködéseinek lekérése hírcsatornaként.",
"apihelp-feedcontributions-param-feedformat": "A hírcsatorna formátuma.",
"apihelp-feedcontributions-param-user": "A lekérendő felhasználók.",
"apihelp-feedcontributions-param-namespace": "A közreműködések szűrése ezen névtérre.",
"apihelp-feedcontributions-param-hideminor": "Apró szerkesztések kihagyása.",
"apihelp-feedcontributions-param-showsizediff": "A változatok közötti méretkülönbség lekérése.",
"apihelp-feedcontributions-example-simple": "<kbd>Example</kbd> felhasználó közreműködéseinek lekérése.",
- "apihelp-feedrecentchanges-description": "A friss változtatások lekérése hírcsatornaként.",
+ "apihelp-feedrecentchanges-summary": "A friss változtatások lekérése hírcsatornaként.",
"apihelp-feedrecentchanges-param-feedformat": "A hírcsatorna formátuma.",
"apihelp-feedrecentchanges-param-namespace": "Az eredmények szűrése erre a névtérre.",
"apihelp-feedrecentchanges-param-invert": "Minden névtér a kiválasztott kivételével.",
"apihelp-feedrecentchanges-param-categories_any": "Inkább a megadott kategóriák bármelyikében szereplő lapok szerkesztéseinek megjelenítése.",
"apihelp-feedrecentchanges-example-simple": "Friss változtatások megjelenítése.",
"apihelp-feedrecentchanges-example-30days": "Az elmúlt 30 nap friss változtatásainak megjelenítése.",
- "apihelp-feedwatchlist-description": "A figyelőlista lekérése hírcsatornaként.",
+ "apihelp-feedwatchlist-summary": "A figyelőlista lekérése hírcsatornaként.",
"apihelp-feedwatchlist-param-feedformat": "A hírcsatorna formátuma.",
"apihelp-feedwatchlist-param-hours": "Az utóbbi ennyi órában szerkesztett lapok listázása.",
"apihelp-feedwatchlist-param-linktosections": "Hivatkozás közvetlenül a módosított szakaszra, ha lehetséges.",
"apihelp-feedwatchlist-example-default": "A figyelőlista-hírcsatorna megjelenítése.",
"apihelp-feedwatchlist-example-all6hrs": "A figyelt lapok összes változtatásának megjelenítése az elmúlt 6 órában.",
- "apihelp-filerevert-description": "Egy fájl visszaállítása egy régebbi verzióra.",
+ "apihelp-filerevert-summary": "Egy fájl visszaállítása egy régebbi verzióra.",
"apihelp-filerevert-param-filename": "Célfájlnév, {{ns:6}}: (File:) előtag nélkül",
"apihelp-filerevert-param-comment": "Feltöltési összefoglaló.",
"apihelp-filerevert-param-archivename": "A visszaállítandó változat archív neve.",
"apihelp-filerevert-example-revert": "<kbd>Wiki.png</kbd> visszaállítása a <kbd>2011-03-05T15:27:40Z</kbd>-kori változatra.",
- "apihelp-help-description": "Súgó megjelenítése a megadott modulokhoz.",
+ "apihelp-help-summary": "Súgó megjelenítése a megadott modulokhoz.",
"apihelp-help-param-submodules": "Súgó megjelenítése a megadott modul almoduljaihoz is.",
"apihelp-help-param-recursivesubmodules": "Súgó megjelenítése az almodulokhoz rekurzívan.",
"apihelp-help-param-helpformat": "A súgó kimeneti formátuma.",
"apihelp-help-example-recursive": "Minden súgó egy lapon.",
"apihelp-help-example-help": "Súgó magához a súgó modulhoz.",
"apihelp-help-example-query": "Súgó két lekérdező almodulhoz.",
- "apihelp-imagerotate-description": "Egy vagy több kép elforgatása.",
+ "apihelp-imagerotate-summary": "Egy vagy több kép elforgatása.",
"apihelp-imagerotate-param-rotation": "A kép forgatása ennyi fokkal az óramutató járásával megegyező irányban.",
"apihelp-imagerotate-example-simple": "<kbd>Example.png</kbd> elforgatása <kbd>90</kbd> fokkal.",
"apihelp-imagerotate-example-generator": "Az összes kép elforgatása a <kbd>Category:Flip</kbd> kategóriában <kbd>180</kbd> fokkal.",
- "apihelp-import-description": "Egy lap importálása egy másik wikiből vagy XML-fájlból.\n\nA HTTP POST-kérést fájlfeltöltésként kell elküldeni (multipart/form-data használatával) a <var>xml</var> paraméter használatakor.",
"apihelp-import-param-xml": "Feltöltött XML-fájl.",
"apihelp-import-param-interwikisource": "Wikiközi importálásnál: forráswiki.",
"apihelp-import-param-interwikipage": "Wikiközi importálásnál: az importálandó lap.",
"apihelp-import-param-namespace": "Importálás ebbe a névtérbe. Nem használható együtt a <var>$1rootpage</var> paraméterrel.",
"apihelp-import-param-rootpage": "Importálás ennek a lapnak az allapjaként. Nem használható együtt a <var>$1namespace</var> paraméterrel.",
"apihelp-import-example-import": "[[meta:Help:ParserFunctions]] importálása a 100-as névtérbe teljes laptörténettel.",
- "apihelp-linkaccount-description": "Egy harmadik fél szolgáltató fiókjának kapcsolása a jelenlegi felhasználóhoz.",
+ "apihelp-linkaccount-summary": "Egy harmadik fél szolgáltató fiókjának kapcsolása a jelenlegi felhasználóhoz.",
"apihelp-linkaccount-example-link": "Összekapcsolás elkezdése <kbd>Example</kbd> szolgáltató fiókjával.",
- "apihelp-login-description": "Bejelentkezés és hitelesítő sütik lekérése.\n\nEz a művelet csak [[Special:BotPasswords|botjelszavakkal]] használandó; a fő fiókkal való használat elavult és figyelmeztetés nélkül sikertelen lehet. A fő fiókkal való biztonságos bejelentkezéshez használd az <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd> paramétert.",
- "apihelp-login-description-nobotpasswords": "Bejelentkezés és hitelesítő sütik lekérése.\n\nEz a művelet elavult és figyelmeztetés nélkül sikertelen lehet. A biztonságos bejelentkezéshez használd az <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd> paramétert.",
"apihelp-login-param-name": "Szerkesztőnév.",
"apihelp-login-param-password": "Jelszó.",
"apihelp-login-param-domain": "Tartomány (opcionális)",
"apihelp-login-param-token": "Az első kérésben megszerzett bejelentkezési token.",
"apihelp-login-example-gettoken": "Egy bejelentkezés token lekérése.",
"apihelp-login-example-login": "Bejelentkezés.",
- "apihelp-logout-description": "Kijelentkezés és munkamenetadatok törlése.",
+ "apihelp-logout-summary": "Kijelentkezés és munkamenetadatok törlése.",
"apihelp-logout-example-logout": "Aktuális felhasználó kijelentkeztetése.",
- "apihelp-managetags-description": "A változtatáscímkék kezelése.",
+ "apihelp-managetags-summary": "A változtatáscímkék kezelése.",
"apihelp-managetags-param-operation": "A végrehajtandó feladat:\n;create: Új változtatáscímke létrehozása kézi használatra.\n;delete: Egy változtatáscímke eltávolítása az adatbázisból, beleértve az eltávolítását minden lapváltozatról, frissváltoztatások-bejegyzésről és naplóbejegyzésről, ahol használatban van.\n;activate: Egy változtatáscímke aktiválása, lehetővé téve a felhasználóknak a kézi használatát.\n;deactivate: Egy változtatáscímke deaktiválása, a felhasználók megakadályozása a kézi használatban.",
"apihelp-managetags-param-tag": "A létrehozandó, törlendő, aktiválandó vagy deaktiválandó címke. Létrehozás esetén adott nevű címke nem létezhet. Törlés esetén a címkének léteznie kell. Aktiválás esetén a címkének léteznie kell, és nem használhatja más kiterjesztés. Deaktiválás esetén a címkének aktívnak és kézzel definiáltnak kell lennie.",
"apihelp-managetags-param-reason": "Opcionális indoklás a címke létrehozásához, törléséhez, aktiválásához vagy deaktiválásához.",
"apihelp-managetags-example-delete": "<kbd>vandlaism</kbd> címke törlése <kbd>Misspelt</kbd> indoklással",
"apihelp-managetags-example-activate": "<kbd>spam</kbd> címke aktiválása <kbd>For use in edit patrolling</kbd> indoklással",
"apihelp-managetags-example-deactivate": "<kbd>spam</kbd> címke deaktiválása <kbd>No longer required</kbd> indoklással",
- "apihelp-mergehistory-description": "Laptörténetek egyesítése",
+ "apihelp-mergehistory-summary": "Laptörténetek egyesítése",
"apihelp-mergehistory-param-reason": "Laptörténet egyesítésének oka.",
- "apihelp-move-description": "Egy lap átnevezése.",
+ "apihelp-move-summary": "Egy lap átnevezése.",
"apihelp-move-param-from": "Az átnevezendő lap címe. Nem használható együtt a <var>$1fromid</var> paraméterrel.",
"apihelp-move-param-fromid": "Az átnevezendő lap lapazonosítója. Nem használható együtt a <var>$1from</var> paraméterrel.",
"apihelp-move-param-to": "A lap új címe.",
"apihelp-move-param-watchlist": "A lap hozzáadása a figyelőlistához vagy eltávolítása onnan feltétel nélkül, a beállítások használata vagy a figyelőlista érintetlenül hagyása.",
"apihelp-move-param-ignorewarnings": "Figyelmeztetések figyelmen kívül hagyása.",
"apihelp-move-example-move": "<kbd>Badtitle</kbd> átnevezése <kbd>Goodtitle</kbd> címre átirányítás készítése nélkül.",
- "apihelp-opensearch-description": "Keresés a wikin az OpenSearch protokoll segítségével.",
+ "apihelp-opensearch-summary": "Keresés a wikin az OpenSearch protokoll segítségével.",
"apihelp-opensearch-param-search": "A keresőkifejezés.",
"apihelp-opensearch-param-limit": "Találatok maximális száma.",
"apihelp-opensearch-param-namespace": "A keresendő névterek.",
"apihelp-opensearch-param-redirects": "Hogyan kezelje az átirányításokat:\n;return: Magának az átirányításnak a visszaadása.\n;resolve: A céllap visszaadása. Lehet, hogy kevesebb mint <var>$1limit</var> találatot ad vissza.\nTörténeti okokból az alapértelmezés „return” <kbd>$1format=json</kbd> esetén és „resolve” más formátumoknál.",
"apihelp-opensearch-param-format": "A kimenet formátuma.",
"apihelp-opensearch-example-te": "<kbd>Te</kbd>-vel kezdődő lapok keresése.",
- "apihelp-options-description": "A jelenlegi felhasználó beállításainak módosítása.\n\nCsak a MediaWiki vagy kiterjesztései által kínált, valamint a <code>userjs-</code> előtagú (felhasználói parancsfájloknak szánt) beállítások állíthatók be.",
"apihelp-options-param-reset": "Beállítások visszaállítása a wiki alapértelmezéseire.",
"apihelp-options-param-resetkinds": "A visszaállítandó beállítások típusa(i) a <var>$1reset</var> paraméter használatakor.",
"apihelp-options-param-change": "Változtatások listája név=érték formátumban (pl. <kbd>skin=vector</kbd>). Ha nincs érték megadva (egyenlőségjel sem szerepel – pl. <kbd>beállítás|másik|…</kbd>), a beállítások visszaállnak az alapértelmezett értékre. Ha bármilyen érték tartalmaz függőleges vonal karaktert (<kbd>|</kbd>), használd az [[Special:ApiHelp/main#main/datatypes|alternatív elválasztókaraktert]] a megfelelő működéshez.",
"apihelp-options-example-reset": "Minden beállítás visszaállítása",
"apihelp-options-example-change": "A <kbd>skin</kbd> és a <kbd>hideminor</kbd> beállítások módosítása.",
"apihelp-options-example-complex": "Minden beállítás visszaállítása, majd a <kbd>skin</kbd> és a <kbd>nickname</kbd> beállítása.",
- "apihelp-paraminfo-description": "Információk lekérése API-modulokról.",
+ "apihelp-paraminfo-summary": "Információk lekérése API-modulokról.",
"apihelp-paraminfo-param-modules": "Modulnevek (az <var>action</var> és <var>format</var> paraméterek értékei vagy <kbd>main</kbd>). Megadhatók almodulok <kbd>+</kbd> elválasztással vagy minden almodul <kbd>+*</kbd>, illetve rekurzívan minden almodul <kbd>+**</kbd> végződéssel.",
"apihelp-paraminfo-param-helpformat": "A súgószövegek formátuma.",
"apihelp-paraminfo-param-querymodules": "Lekérdező modul(ok) neve (a <var>prop</var>, <var>meta</var> vagy <var>list</var> paraméter értéke). Használd a <kbd>$1modules=query+foo</kbd> formát a <kbd>$1querymodules=foo</kbd> helyett.",
"apihelp-paraminfo-param-formatmodules": "Formázómodul(ok) neve (a <var>format</var> paraméter értéke). Használd a <var>$1modules</var> paramétert helyette.",
"apihelp-paraminfo-example-1": "Információk megjelenítése az <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd> és <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> lekérdezésekhez.",
"apihelp-paraminfo-example-2": "Információk megjelenítése az <kbd>[[Special:ApiHelp/query|action=query]]</kbd> összes almoduljához.",
- "apihelp-parse-description": "Tartalom feldolgozása.\n\nLásd az <kbd>[[Special:ApiHelp/query|action=query]]</kbd> számos prop-modulját a információk lekérésére a lap aktuális változatáról.\n\nTöbbféle módon megadható a feldolgozandó szöveg:\n# Egy lap vagy lapváltozat megadásával, a <var>$1page</var>, <var>$1pageid</var> vagy <var>$1oldid</var> paraméterrel.\n# Magának a tartalomnak a megadásával, a <var>$1text</var>, <var>$1title</var> és <var>$1contentmodel</var> paraméterrel.\n# Csak egy összefoglaló feldolgozása. A <var>$1prop</var> paraméternek üresnek kell lennie.",
"apihelp-parse-param-title": "A lapnak a címe, amihez a szöveg tartozik. Ha nincs megadva, a <var>$1contentmodel</var> paraméter kötelező, és a cím [[API]] lesz.",
"apihelp-parse-param-text": "A feldolgozandó szöveg. Használd a <var>$1title</var> vagy <var>$1contentmodel</var> paramétert a tartalommodell megadásához.",
"apihelp-parse-param-summary": "Feldolgozandó szerkesztési összefoglaló.",
"apihelp-parse-paramvalue-prop-sections": "A feldolgozott wikiszövegben talált szakaszok.",
"apihelp-parse-paramvalue-prop-revid": "A feldolgozott lap lapváltozat-azonosítója.",
"apihelp-parse-paramvalue-prop-displaytitle": "A feldolgozott wikiszöveghez tartozó cím.",
- "apihelp-parse-paramvalue-prop-headitems": "<span class=\"apihelp-deprecated\">Elavult.</span> A <code><head></code> HTML-címkébe kerülő elemek.",
+ "apihelp-parse-paramvalue-prop-headitems": "A <code><head></code> HTML-címkébe kerülő elemek.",
"apihelp-parse-paramvalue-prop-headhtml": "A lap feldolgozott <code><head></code> HTML-címkéje.",
"apihelp-parse-paramvalue-prop-modules": "A lapon használt ResourceLoader-modulok. A betöltésükhöz használd a <code>mw.loader.using()</code> függvényt. Vagy a <kbd>jsconfigvars</kbd>, vagy az <kbd>encodedjsconfigvars</kbd> paramétert kötelező együtt használni ezzel a paraméterrel.",
"apihelp-parse-paramvalue-prop-jsconfigvars": "A lapra jellemző JavaScript-változók. A használatukhoz állítsd be őket az <code>mw.config.set()</code> függvénnyel.",
"apihelp-parse-example-text": "Wikiszöveg feldolgozása.",
"apihelp-parse-example-texttitle": "Wikiszöveg feldolgozása a lapcím megadásával.",
"apihelp-parse-example-summary": "Egy szerkesztési összefoglaló feldolgozása.",
- "apihelp-patrol-description": "Egy lap vagy lapváltozat ellenőrzöttnek jelölése (patrol).",
+ "apihelp-patrol-summary": "Egy lap vagy lapváltozat ellenőrzöttnek jelölése (patrol).",
"apihelp-patrol-param-rcid": "Az ellenőrzendő frissváltoztatások-azonosító.",
"apihelp-patrol-param-revid": "Az ellenőrzendő lapváltozat azonosítója (oldid).",
"apihelp-patrol-example-rcid": "Egy friss változtatás ellenőrzöttnek jelölése.",
"apihelp-patrol-example-revid": "Egy lapváltozat ellenőrzöttnek jelölése.",
- "apihelp-protect-description": "Egy lap védelmi szintjének változtatása.",
+ "apihelp-protect-summary": "Egy lap védelmi szintjének változtatása.",
"apihelp-protect-param-title": "A levédendő/feloldandó lap címe. Nem használható együtt a <var>$1pageid</var> paraméterrel.",
"apihelp-protect-param-pageid": "A levédendő/feloldandó lap lapazonosítója. Nem használható együtt a <var>$1title</var> paraméterrel.",
"apihelp-protect-param-protections": "Védelmi szintek, <kbd>típus=szint</kbd> formátumban (pl. <kbd>edit=sysop</kbd>). Az <kbd>all</kbd> szint azt jelenti, hogy mindenki végrehajthatja az adott műveletet, vagyis nincs korlátozás.\n\n<strong>Megjegyzés:</strong> Minden nem listázott művelet védelme el lesz távolítva.",
"apihelp-protect-example-protect": "Lap levédése.",
"apihelp-protect-example-unprotect": "Egy lap védelmének feloldása a korlátozások <kbd>all</kbd>-ra állításával (vagyis mindenki végrehajthatja a műveleteket).",
"apihelp-protect-example-unprotect2": "Egy lap védelmének feloldása semmilyen védelem beállításával.",
- "apihelp-purge-description": "A gyorsítótár ürítése a megadott lapoknál.",
+ "apihelp-purge-summary": "A gyorsítótár ürítése a megadott lapoknál.",
"apihelp-purge-param-forcelinkupdate": "A linktáblák frissítése.",
"apihelp-purge-param-forcerecursivelinkupdate": "A linktábla frissítése a megadott lapokra és minden olyan lapra, ami a megadott lapokat beilleszti sablonként.",
"apihelp-purge-example-simple": "A gyorsítótár ürítése a <kbd>Main Page</kbd> és <kbd>API</kbd> lapoknál.",
"apihelp-purge-example-generator": "A gyorsítótár ürítése az első 10 fő névtérbeli lapnál.",
- "apihelp-query-description": "Adatok lekérése a MediaWikiből és a MediaWikiről.\n\nMinden adatmódosításhoz először a <kbd>query</kbd> segítségével szereznie kell egy tokent a rosszindulatú oldalak visszaéléseinek elhárítására.",
"apihelp-query-param-prop": "A lapokról lekérendő tulajdonságok.",
"apihelp-query-param-list": "Lekérendő listák.",
"apihelp-query-param-meta": "Lekérendő metaadatok.",
"apihelp-query-param-rawcontinue": "Nyers <samp>query-continue</samp> adatok visszaadása a folytatáshoz.",
"apihelp-query-example-revisions": "[[Special:ApiHelp/query+siteinfo|Wikiinformációk]] és a <kbd>Main Page</kbd> [[Special:ApiHelp/query+revisions|laptörténetének]] lekérése.",
"apihelp-query-example-allpages": "Az <kbd>API/</kbd> kezdetű lapok laptörténetének lekérése.",
- "apihelp-query+allcategories-description": "Az összes kategória visszaadása.",
+ "apihelp-query+allcategories-summary": "Az összes kategória visszaadása.",
"apihelp-query+allcategories-param-from": "A kategóriák listázása ettől a címtől.",
"apihelp-query+allcategories-param-to": "A kategóriák listázása eddig a címig.",
"apihelp-query+allcategories-param-prefix": "Ezzel kezdődő című kategóriák keresése.",
"apihelp-query+allcategories-paramvalue-prop-hidden": "Rejtett-e a kategória a <code>__HIDDENCAT__</code> kapcsolóval.",
"apihelp-query+allcategories-example-size": "Kategóriák listázása a bennük lévő lapok számával.",
"apihelp-query+allcategories-example-generator": "Információk lekérése magukról a kategórialapokról, amiknek a címe <kbd>List</kbd> kezdetű.",
- "apihelp-query+alldeletedrevisions-description": "Egy felhasználó vagy egy névtér összes törölt szerkesztésének listázása.",
+ "apihelp-query+alldeletedrevisions-summary": "Egy felhasználó vagy egy névtér összes törölt szerkesztésének listázása.",
"apihelp-query+alldeletedrevisions-paraminfo-useronly": "Csak az <var>$3user</var> paraméterrel együtt használható.",
"apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Nem használható együtt az <var>$3user</var> paraméterrel.",
"apihelp-query+alldeletedrevisions-param-start": "A listázás kezdő időbélyege.",
"apihelp-query+alldeletedrevisions-param-generatetitles": "Generátorként használva címek visszaadása lapváltozat-azonosítók helyett.",
"apihelp-query+alldeletedrevisions-example-user": "<kbd>Example</kbd> 50 legutóbbi törölt szerkesztésének listázása.",
"apihelp-query+alldeletedrevisions-example-ns-main": "A fő névtér első 50 törölt szerkesztésének listázása.",
- "apihelp-query+allfileusages-description": "Az összes fájlhasználat listázása, beleértve a nem létező fájlokét is.",
+ "apihelp-query+allfileusages-summary": "Az összes fájlhasználat listázása, beleértve a nem létező fájlokét is.",
"apihelp-query+allfileusages-param-from": "Listázás ettől a címtől vagy fájltól.",
"apihelp-query+allfileusages-param-to": "Listázás eddig a címig vagy fájlig.",
"apihelp-query+allfileusages-param-prefix": "Ezzel kezdődő nevű fájlok keresése.",
"apihelp-query+allfileusages-example-unique": "Különböző fájlnevek listázása.",
"apihelp-query+allfileusages-example-unique-generator": "Az összes fájlnév lekérése, hiányzók megjelölése.",
"apihelp-query+allfileusages-example-generator": "A fájlokat használó lapok lekérése.",
- "apihelp-query+allimages-description": "Az összes kép visszaadása.",
+ "apihelp-query+allimages-summary": "Az összes kép visszaadása.",
"apihelp-query+allimages-param-sort": "Rendezési szempont.",
"apihelp-query+allimages-param-dir": "A listázás iránya.",
"apihelp-query+allimages-param-from": "Listázás ettől a fájlnévtől. Csak az <kbd>$1sort=name</kbd> paraméterrel együtt használható.",
"apihelp-query+allimages-example-recent": "A legutóbb feltöltött fájlok listázása, hasonló a [[Special:NewFiles]] laphoz.",
"apihelp-query+allimages-example-mimetypes": "<kbd>image/png</kbd> vagy <kbd>image/gif</kbd> MIME-típusú fájlok listázása",
"apihelp-query+allimages-example-generator": "Információk 4 fájlról <kbd>T</kbd>-től kezdve.",
- "apihelp-query+alllinks-description": "Egy adott névtérbe mutató összes hivatkozás visszaadása.",
+ "apihelp-query+alllinks-summary": "Egy adott névtérbe mutató összes hivatkozás visszaadása.",
"apihelp-query+alllinks-param-from": "Listázás ettől a hivatkozástól.",
"apihelp-query+alllinks-param-to": "Listázás eddig a hivatkozásig.",
"apihelp-query+alllinks-param-prefix": "Ezzel kezdődő című hivatkozott lapok keresése.",
"apihelp-query+alllinks-example-unique": "Különböző hivatkozott lapok listázása.",
"apihelp-query+alllinks-example-unique-generator": "Az összes hivatkozott lap lekérése, hiányzók megjelölése.",
"apihelp-query+alllinks-example-generator": "A hivatkozásokat tartalmazó lapok lekérése.",
- "apihelp-query+allmessages-description": "A wiki felületüzeneteinek lekérése.",
+ "apihelp-query+allmessages-summary": "A wiki felületüzeneteinek lekérése.",
"apihelp-query+allmessages-param-messages": "A visszaadandó üzenetek. A <kbd>*</kbd> (alapértelmezés) az összes üzenetet jelenti.",
"apihelp-query+allmessages-param-prop": "A lekérendő tulajdonságok.",
"apihelp-query+allmessages-param-nocontent": "Ne tartalmazza a kimenet az üzenetek tartalmát.",
"apihelp-query+allmessages-param-prefix": "Ezzel kezdődő nevű üzenetek visszaadása.",
"apihelp-query+allmessages-example-ipb": "<kbd>ipb-</kbd> előtagú üzenetek lekérése.",
"apihelp-query+allmessages-example-de": "Az <kbd>august</kbd> és <kbd>mainpage</kbd> üzenetek lekérése német nyelven.",
- "apihelp-query+allpages-description": "Egy adott névtér összes lapjának visszaadása.",
+ "apihelp-query+allpages-summary": "Egy adott névtér összes lapjának visszaadása.",
"apihelp-query+allpages-param-from": "A lapok listázása ettől a címtől.",
"apihelp-query+allpages-param-to": "A lapok listázása eddig a címig.",
"apihelp-query+allpages-param-prefix": "Ezzel kezdődő című lapok keresése.",
"apihelp-query+allpages-example-B": "Lapok listázása <kbd>B</kbd>-től kezdve.",
"apihelp-query+allpages-example-generator": "Információk 4 lapról <kbd>T</kbd>-től kezdve.",
"apihelp-query+allpages-example-generator-revisions": "Az első két nem átirányító lap tartalmának megjelenítése <kbd>Re</kbd>-től kezdve.",
- "apihelp-query+allredirects-description": "Egy adott névtérbe mutató összes átirányítás listázása.",
+ "apihelp-query+allredirects-summary": "Egy adott névtérbe mutató összes átirányítás listázása.",
"apihelp-query+allredirects-param-from": "Listázás ettől az átirányításcímtől.",
"apihelp-query+allredirects-param-to": "Listázás eddig az átirányításcímig.",
"apihelp-query+allredirects-param-prefix": "Ezzel kezdődő című céllapok keresése.",
"apihelp-query+allredirects-example-unique": "Különböző céllapok listázása.",
"apihelp-query+allredirects-example-unique-generator": "Az összes céllap lekérése, hiányzók megjelölése.",
"apihelp-query+allredirects-example-generator": "Az átirányításokat tartalmazó lapok lekérése.",
- "apihelp-query+allrevisions-description": "Az összes lapváltozat listázása.",
+ "apihelp-query+allrevisions-summary": "Az összes lapváltozat listázása.",
"apihelp-query+allrevisions-param-start": "A listázás kezdő időbélyege.",
"apihelp-query+allrevisions-param-end": "A lista végét jelentő időbélyeg.",
"apihelp-query+allrevisions-param-user": "Csak ezen felhasználó szerkesztéseinek listázása.",
"apihelp-query+mystashedfiles-paramvalue-prop-size": "A fájlméret és a kép dimenziói (szélessége és magassága).",
"apihelp-query+mystashedfiles-paramvalue-prop-type": "A fájl MIME-típusa és médiatípusa.",
"apihelp-query+mystashedfiles-param-limit": "A lekérendő fájlok száma.",
- "apihelp-query+alltransclusions-description": "Az összes beillesztés listázása ({{x}} kóddal beillesztett lapok), beleértve a nem létező lapokét is.",
+ "apihelp-query+alltransclusions-summary": "Az összes beillesztés listázása ({{x}} kóddal beillesztett lapok), beleértve a nem létező lapokét is.",
"apihelp-query+alltransclusions-param-from": "Listázás ettől a beillesztett laptól.",
"apihelp-query+alltransclusions-param-to": "Listázás eddig a beillesztett lapig.",
"apihelp-query+alltransclusions-param-prefix": "Ezzel kezdődő című beillesztett lapok keresése.",
"apihelp-query+alltransclusions-example-unique": "Különböző beillesztett címek listázása.",
"apihelp-query+alltransclusions-example-unique-generator": "Az összes beillesztett lap lekérése, hiányzók megjelölése.",
"apihelp-query+alltransclusions-example-generator": "A beillesztéseket tartalmazó lapok lekérése.",
- "apihelp-query+allusers-description": "Az összes regisztrált felhasználó visszaadása.",
+ "apihelp-query+allusers-summary": "Az összes regisztrált felhasználó visszaadása.",
"apihelp-query+allusers-param-from": "A felhasználók listázása ettől a névtől.",
"apihelp-query+allusers-param-to": "A felhasználók listázása eddig a névig.",
"apihelp-query+allusers-param-prefix": "Ezzel kezdődő nevű felhasználók keresése.",
"apihelp-query+allusers-param-activeusers": "Csak az elmúlt $1 napban aktív felhasználók listázása.",
"apihelp-query+allusers-param-attachedwiki": "Az <kbd>$1prop=centralids</kbd> paraméter mellett annak jelzése, hogy a felhasználó össze van-e kapcsolva a megadott wikivel.",
"apihelp-query+allusers-example-Y": "A felhasználók listázása <kbd>Y</kbd>-tól kezdve.",
- "apihelp-query+authmanagerinfo-description": "Információk lekérése az aktuális azonosítási státuszról.",
+ "apihelp-query+authmanagerinfo-summary": "Információk lekérése az aktuális azonosítási státuszról.",
"apihelp-query+authmanagerinfo-param-securitysensitiveoperation": "Annak ellenőrzése, hogy a felhasználó jelenlegi azonosítási státusza megfelelő-e a megadott biztonságkritikus művelethez.",
"apihelp-query+authmanagerinfo-param-requestsfor": "Információk lekérése a megadott azonosítási művelethez szükséges azonosítási kérésekről.",
"apihelp-query+authmanagerinfo-example-login": "Egy bejelentkezés elkezdéséhez használható kérések lekérése.",
"apihelp-query+authmanagerinfo-example-login-merged": "Egy bejelentkezés elkezdéséhez használható kérések lekérése, az űrlapmezők összevonásával.",
"apihelp-query+authmanagerinfo-example-securitysensitiveoperation": "Annak ellenőrzése, hogy a hitelesítés megfelelő-e a <kbd>foo</kbd> művelethez.",
- "apihelp-query+backlinks-description": "Egy adott lapra hivatkozó más lapok megkeresése.",
+ "apihelp-query+backlinks-summary": "Egy adott lapra hivatkozó más lapok megkeresése.",
"apihelp-query+backlinks-param-title": "A keresendő cím. Nem használható együtt a <var>$1pageid</var> paraméterrel.",
"apihelp-query+backlinks-param-pageid": "A keresendő lapazonosító. Nem használható együtt a <var>$1title</var> paraméterrel.",
"apihelp-query+backlinks-param-namespace": "A listázandó névtér.",
"apihelp-query+backlinks-param-redirect": "Ha a hivatkozó lap átirányítás, az arra hivatkozó lapok keresése szintén. A maximális limit feleződik.",
"apihelp-query+backlinks-example-simple": "A <kbd>Main Page</kbd> lapra mutató hivatkozások keresése.",
"apihelp-query+backlinks-example-generator": "Információk lekérése a <kbd>Main Page</kbd>-re hivatkozó lapokról.",
- "apihelp-query+blocks-description": "Az összes blokkolt felhasználó és IP-cím listázása.",
+ "apihelp-query+blocks-summary": "Az összes blokkolt felhasználó és IP-cím listázása.",
"apihelp-query+blocks-param-start": "A listázás kezdő időbélyege.",
"apihelp-query+blocks-param-end": "A lista végét jelentő időbélyeg.",
"apihelp-query+blocks-param-ids": "A listázandó blokkok blokkazonosítói (opcionális).",
"apihelp-query+blocks-param-show": "Csak a megadott feltételeknek megfelelő elemek megjelenítése.\nPéldául csak IP-címek végtelen blokkjainak megjelenítéséhez állítsd <kbd>$1show=ip|!temp</kbd> értékre.",
"apihelp-query+blocks-example-simple": "Blokkok listázása.",
"apihelp-query+blocks-example-users": "<kbd>Alice</kbd> és <kbd>Bob</kbd> blokkjainak listázása.",
- "apihelp-query+categories-description": "A lapok összes kategóriájának listázása.",
+ "apihelp-query+categories-summary": "A lapok összes kategóriájának listázása.",
"apihelp-query+categories-param-prop": "A kategóriákhoz lekérendő további tulajdonságok:",
"apihelp-query+categories-paramvalue-prop-timestamp": "A kategória hozzáadásának időbélyege.",
"apihelp-query+categories-paramvalue-prop-hidden": "A <code>__HIDDENCAT__</code> kapcsolóval elrejtett kategóriák megjelölése.",
"apihelp-query+categories-param-dir": "A listázás iránya.",
"apihelp-query+categories-example-simple": "Az <kbd>Albert Einstein</kbd> lap kategóriáinak lekérése.",
"apihelp-query+categories-example-generator": "Információk lekérése az <kbd>Albert Einstein</kbd> lap kategóriáiról.",
- "apihelp-query+categoryinfo-description": "Információk lekérése a megadott kategóriákról.",
+ "apihelp-query+categoryinfo-summary": "Információk lekérése a megadott kategóriákról.",
"apihelp-query+categoryinfo-example-simple": "Információk lekérése a <kbd>Category:Foo</kbd> és a <kbd>Category:Bar</kbd> kategóriáról.",
- "apihelp-query+categorymembers-description": "Egy kategória összes tagjának listázása.",
+ "apihelp-query+categorymembers-summary": "Egy kategória összes tagjának listázása.",
"apihelp-query+categorymembers-param-title": "A listázandó kategória (kötelező). Tartalmaznia kell a <kbd>{{ns:category}}:</kbd> előtagot. Nem használható együtt a <var>$1pageid</var> paraméterrel.",
"apihelp-query+categorymembers-param-pageid": "A listázandó kategória lapazonosítója. Nem használható együtt a <var>$1title</var> paraméterrel.",
"apihelp-query+categorymembers-param-prop": "Visszaadandó információk:",
"apihelp-query+categorymembers-param-endsortkey": "Használd a <var>$1endhexsortkey</var> paramétert helyette.",
"apihelp-query+categorymembers-example-simple": "A <kbd>Category:Physics</kbd> első 10 tagjának lekérése.",
"apihelp-query+categorymembers-example-generator": "Információk lekérése a <kbd>Category:Physics</kbd> első 10 tagjáról.",
- "apihelp-query+contributors-description": "Egy lap bejelentkezett közreműködői listájának, valamint az anonim közreműködők számának lekérése.",
+ "apihelp-query+contributors-summary": "Egy lap bejelentkezett közreműködői listájának, valamint az anonim közreműködők számának lekérése.",
"apihelp-query+contributors-param-group": "Csak a megadott felhasználócsoportok tagjainak visszaadása. Ez nem tartalmazza az implicit vagy automatikusan hozzáadott csoportokat, mint a *, a user vagy az autoconfirmed.",
"apihelp-query+contributors-param-excludegroup": "A megadott felhasználócsoportok tagjainak kihagyása. Ez nem tartalmazza az implicit vagy automatikusan hozzáadott csoportokat, mint a *, a user vagy az autoconfirmed.",
"apihelp-query+contributors-param-rights": "Csak a megadott jogosultságokkal rendelkező felhasználók visszaadása. Ez nem tartalmazza azokat a jogosultságokat, amiket implicit vagy automatikusan hozzáadott csoportok adnak meg, mint a *, a user vagy az autoconfirmed.",
"apihelp-query+deletedrevs-example-mode2": "<kbd>Bob</kbd> felhasználó utolsó 50 törölt szerkesztésének listázása (2. mód).",
"apihelp-query+deletedrevs-example-mode3-main": "Az első 50 törölt lapváltozat listázása a fő névtérben (3. mód).",
"apihelp-query+deletedrevs-example-mode3-talk": "Az első 50 törölt lapváltozat listázása a {{ns:talk}} névtérben (3. mód).",
- "apihelp-query+disabled-description": "Ez a lekérdezőmodul le lett tiltva.",
+ "apihelp-query+disabled-summary": "Ez a lekérdezőmodul le lett tiltva.",
"apihelp-query+duplicatefiles-param-limit": "A visszaadandó duplikátumok száma.",
"apihelp-query+duplicatefiles-param-dir": "A listázás iránya.",
"apihelp-query+duplicatefiles-param-localonly": "Csak helyi fájlok keresése.",
"apihelp-query+duplicatefiles-example-simple": "[[:File:Albert Einstein Head.jpg]] duplikátumainak keresése.",
"apihelp-query+duplicatefiles-example-generated": "Az összes fájl duplikátumainak keresése.",
- "apihelp-query+embeddedin-description": "A megadott lapot beillesztő összes lap lekérése.",
+ "apihelp-query+embeddedin-summary": "A megadott lapot beillesztő összes lap lekérése.",
"apihelp-query+embeddedin-param-title": "A keresendő lap címe. Nem használható együtt az <var>$1pageid</var> paraméterrel.",
"apihelp-query+embeddedin-param-pageid": "A keresendő lap lapazonosítója. Nem használható együtt az <var>$1title</var> paraméterrel.",
"apihelp-query+embeddedin-param-namespace": "A listázandó névtér.",
"apihelp-query+embeddedin-param-limit": "A visszaadandó lapok maximális száma.",
"apihelp-query+embeddedin-example-simple": "A <kbd>Template:Stub</kbd> lapot beillesztő lapok megjelenítése.",
"apihelp-query+embeddedin-example-generator": "Információk lekérése a <kbd>Template:Stub</kbd> lapot beillesztő lapokról.",
- "apihelp-query+extlinks-description": "A megadott lapokon található összes külső (nem interwiki) link visszaadása.",
"apihelp-query+extlinks-param-limit": "A visszaadandó linkek száma.",
"apihelp-query+extlinks-param-protocol": "Az URL protokollja. Ha üres és az <var>$1query</var> paraméter meg van adva, a protokoll <kbd>http</kbd>. Hagyd ezt és az <var>$1query</var> paramétert is üresen az összes külső link listázásához.",
"apihelp-query+extlinks-example-simple": "A <kbd>Main Page</kbd> lapon található összes külső hivatkozás listájának lekérése.",
- "apihelp-query+exturlusage-description": "Egy megadott URL-t tartalmazó lapok visszaadása.",
+ "apihelp-query+exturlusage-summary": "Egy megadott URL-t tartalmazó lapok visszaadása.",
"apihelp-query+exturlusage-param-prop": "Visszaadandó információk:",
"apihelp-query+exturlusage-paramvalue-prop-ids": "A lap lapazonosítója.",
"apihelp-query+exturlusage-paramvalue-prop-title": "A lap címe és névterének azonosítója.",
"apihelp-query+exturlusage-param-namespace": "A listázandó névtér.",
"apihelp-query+exturlusage-param-limit": "A visszaadandó lapok száma.",
"apihelp-query+exturlusage-example-simple": "A <kbd>http://www.mediawiki.org</kbd> URL-re hivatkozó lapok megjelenítése.",
- "apihelp-query+filearchive-description": "Az összes törölt fájl visszaadása.",
+ "apihelp-query+filearchive-summary": "Az összes törölt fájl visszaadása.",
"apihelp-query+filearchive-param-from": "A fájlok listázása ettől a címtől.",
"apihelp-query+filearchive-param-to": "A fájlok listázása eddig a címig.",
"apihelp-query+filearchive-param-prefix": "Ezzel kezdődő című fájlok keresése.",
"apihelp-query+filearchive-paramvalue-prop-bitdepth": "A verzió bitmélysége.",
"apihelp-query+filearchive-paramvalue-prop-archivename": "Az archivált verzió fájlneve a nem legújabb verziók esetén.",
"apihelp-query+filearchive-example-simple": "Az összes törölt fájl listázása.",
- "apihelp-query+filerepoinfo-description": "Metainformációk visszaadása a wikin beállított fájltárolókról.",
+ "apihelp-query+filerepoinfo-summary": "Metainformációk visszaadása a wikin beállított fájltárolókról.",
"apihelp-query+filerepoinfo-example-simple": "Információk lekérése a fájltárolókról.",
- "apihelp-query+fileusage-description": "A megadott fájlokat használó lapok lekérése.",
+ "apihelp-query+fileusage-summary": "A megadott fájlokat használó lapok lekérése.",
"apihelp-query+fileusage-param-prop": "Lekérendő tulajdonságok:",
"apihelp-query+fileusage-paramvalue-prop-pageid": "A lapok lapazonosítói.",
"apihelp-query+fileusage-paramvalue-prop-title": "A lapok címei.",
"apihelp-query+fileusage-param-show": "Szűrés az átirányítások alapján:\n;redirect: Csak átirányítások visszaadása.\n;!redirect: Átirányítások elrejtése.",
"apihelp-query+fileusage-example-simple": "A [[:File:Example.jpg]] képet használó lapok listázása.",
"apihelp-query+fileusage-example-generator": "Információk lekérése a [[:File:Example.jpg]] képet használó lapokról.",
- "apihelp-query+imageinfo-description": "Fájlinformációk és fájltörténet lekérése.",
+ "apihelp-query+imageinfo-summary": "Fájlinformációk és fájltörténet lekérése.",
"apihelp-query+imageinfo-param-prop": "A lekérendő fájlinformációk:",
"apihelp-query+imageinfo-paramvalue-prop-timestamp": "A feltöltött verzió időbélyege.",
"apihelp-query+imageinfo-paramvalue-prop-user": "Az egyes fájlverziók feltöltői.",
"apihelp-query+imageinfo-param-localonly": "Csak helyi fájlok keresése.",
"apihelp-query+imageinfo-example-simple": "Információk lekérése a [[:File:Albert Einstein Head.jpg]] aktuális verziójáról.",
"apihelp-query+imageinfo-example-dated": "Információk lekérése a [[:File:Test.jpg]] 2008-as és korábbi verzióiról.",
- "apihelp-query+images-description": "A megadott lapokon használt összes fájl visszaadása.",
+ "apihelp-query+images-summary": "A megadott lapokon használt összes fájl visszaadása.",
"apihelp-query+images-param-limit": "A visszaadandó fájlok száma.",
"apihelp-query+images-param-images": "Csak ezen fájlok listázása. Annak ellenőrzésére alkalmas, hogy egy lap használ-e egy adott fájlt.",
"apihelp-query+images-param-dir": "A listázás iránya.",
"apihelp-query+images-example-simple": "A [[Main Page]] lapon használt fájlok listázása.",
"apihelp-query+images-example-generator": "Információk lekérése a [[Main Page]] lapon használt fájlokról.",
- "apihelp-query+imageusage-description": "A megadott képcímet használó lapok lekérése.",
+ "apihelp-query+imageusage-summary": "A megadott képcímet használó lapok lekérése.",
"apihelp-query+imageusage-param-title": "A keresendő cím. Nem használható együtt az <var>$1pageid</var> paraméterrel.",
"apihelp-query+imageusage-param-pageid": "A keresendő lapazonosító. Nem használható együtt az <var>$1title</var> paraméterrel.",
"apihelp-query+imageusage-param-namespace": "A listázandó névtér.",
"apihelp-query+imageusage-param-redirect": "Ha a hivatkozó lap átirányítás, az arra hivatkozó lapok keresése szintén. A maximális limit feleződik.",
"apihelp-query+imageusage-example-simple": "A [[:File:Albert Einstein Head.jpg]] képet használó lapok megjelenítése.",
"apihelp-query+imageusage-example-generator": "Információk lekérése a [[:File:Albert Einstein Head.jpg]] képet használó lapokról.",
- "apihelp-query+info-description": "Alapvető lapinformációk lekérése.",
+ "apihelp-query+info-summary": "Alapvető lapinformációk lekérése.",
"apihelp-query+info-param-prop": "További lekérendő tulajdonságok:",
"apihelp-query+info-paramvalue-prop-protection": "A lapok védelmi szintjeinek listázása.",
"apihelp-query+info-paramvalue-prop-talkid": "A vitalap lapazonosítója a nem-vitalapoknál.",
"apihelp-query+info-param-token": "Használd a <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> lekérdezést helyette.",
"apihelp-query+info-example-simple": "Információk lekérése a <kbd>Main Page</kbd> lapról.",
"apihelp-query+info-example-protection": "Alapvető és lapvédelmi információk lekérése a <kbd>Main Page</kbd> lapról.",
- "apihelp-query+iwbacklinks-description": "Egy adott interwikilinkre hivatkozó lapok lekérése.\n\nHasználható adott előtagú vagy egy adott címre mutató (megadott előtagú) linkek keresésére. Mindkét paraméter elhagyásával az összes interwikilinket visszaadja.",
"apihelp-query+iwbacklinks-param-prefix": "Az interwiki előtagja.",
"apihelp-query+iwbacklinks-param-title": "A keresendő interwikilink. Az <var>$1blprefix</var> paraméterrel együtt használandó.",
"apihelp-query+iwbacklinks-param-limit": "A visszaadandó lapok maximális száma.",
"apihelp-query+iwbacklinks-param-dir": "A listázás iránya.",
"apihelp-query+iwbacklinks-example-simple": "A [[wikibooks:Test]] könyvre hivatkozó lapok lekérése.",
"apihelp-query+iwbacklinks-example-generator": "Információk lekérése a [[wikibooks:Test]] könyvre hivatkozó lapokról.",
- "apihelp-query+iwlinks-description": "A megadott lapokon található összes interwikilink lekérése.",
+ "apihelp-query+iwlinks-summary": "A megadott lapokon található összes interwikilink lekérése.",
"apihelp-query+iwlinks-param-prop": "A nyelvközi hivatkozásokhoz lekérendő további tulajdonságok:",
"apihelp-query+iwlinks-param-limit": "A visszaadandó interwikilinkek száma.",
"apihelp-query+iwlinks-param-prefix": "Csak a megadott előtagú interwikilinkek visszaadása.",
"apihelp-query+iwlinks-param-title": "A keresendő interwikilink. Az <var>$1prefix</var> paraméterrel együtt használandó.",
"apihelp-query+iwlinks-param-dir": "A listázás iránya.",
"apihelp-query+iwlinks-example-simple": "A <kbd>Main Page</kbd> lapon található interwikilinkek lekérése.",
- "apihelp-query+langbacklinks-description": "A megadott nyelvközi hivatkozásra hivatkozó lapok lekérése.\n\nHasználható adott előtagú vagy egy adott címre mutató (megadott előtagú) linkek keresésére. Mindkét paraméter elhagyásával az összes nyelvközi hivatkozást visszaadja.\n\nEz a lekérdezés nem feltétlenül veszi figyelembe a kiterjesztések által hozzáadott nyelvközi hivatkozásokat.",
"apihelp-query+langbacklinks-param-lang": "A nyelvközi hivatkozás nyelve.",
"apihelp-query+langbacklinks-param-title": "A keresendő nyelvközi hivatkozás. Az <var>$1lang</var> paraméterrel együtt használandó.",
"apihelp-query+langbacklinks-param-limit": "A visszaadandó lapok maximális száma.",
"apihelp-query+langbacklinks-param-dir": "A listázás iránya.",
"apihelp-query+langbacklinks-example-simple": "A [[:fr:Test]] lapra hivatkozó lapok lekérése.",
"apihelp-query+langbacklinks-example-generator": "Információk lekérése a [[:fr:Test]] lapra hivatkozó lapokról.",
- "apihelp-query+langlinks-description": "A megadott lapokon található összes nyelvközi hivatkozás lekérése.",
+ "apihelp-query+langlinks-summary": "A megadott lapokon található összes nyelvközi hivatkozás lekérése.",
"apihelp-query+langlinks-param-limit": "A visszaadandó nyelvközi hivatkozások száma.",
"apihelp-query+langlinks-param-prop": "A nyelvközi hivatkozásokhoz lekérendő további tulajdonságok:",
"apihelp-query+langlinks-param-lang": "Csak ezen nyelvű nyelvközi hivatkozások visszaadása.",
"apihelp-query+langlinks-param-dir": "A listázás iránya.",
"apihelp-query+langlinks-param-inlanguagecode": "Nyelvkód a lefordított nyelvneveknek.",
"apihelp-query+langlinks-example-simple": "A <kbd>Main Page</kbd> lapon található nyelvközi hivatkozások lekérése.",
- "apihelp-query+links-description": "A megadott lapokon található összes hivatkozás lekérése.",
+ "apihelp-query+links-summary": "A megadott lapokon található összes hivatkozás lekérése.",
"apihelp-query+links-param-namespace": "Csak az ezen névterekbe mutató hivatkozások visszaadása.",
"apihelp-query+links-param-limit": "A visszaadandó hivatkozások száma.",
"apihelp-query+links-param-titles": "Csak ezen címekre mutató hivatkozások listázása. Annak ellenőrzésére alkalmas, hogy egy lap hivatkozik-e egy adott lapra.",
"apihelp-query+links-example-simple": "A <kbd>Main Page</kbd> lapon található hivatkozások lekérése.",
"apihelp-query+links-example-generator": "Információk lekérése a <kbd>Main Page</kbd> lapon lévő hivatkozások céllapjairól.",
"apihelp-query+links-example-namespaces": "A <kbd>Main Page</kbd> lapon található, {{ns:user}} és {{ns:template}} névterekbe mutató hivatkozások lekérése.",
- "apihelp-query+linkshere-description": "A megadott lapra hivatkozó lapok lekérése.",
+ "apihelp-query+linkshere-summary": "A megadott lapra hivatkozó lapok lekérése.",
"apihelp-query+linkshere-param-prop": "Lekérendő tulajdonságok:",
"apihelp-query+linkshere-paramvalue-prop-pageid": "A lapok lapazonosítói.",
"apihelp-query+linkshere-paramvalue-prop-title": "A lapok címei.",
"apihelp-query+linkshere-param-show": "Szűrés az átirányítások alapján:\n;redirect: Csak átirányítások visszaadása.\n;!redirect: Átirányítások elrejtése.",
"apihelp-query+linkshere-example-simple": "A [[Main Page]] lapra hivatkozó lapok listázása.",
"apihelp-query+linkshere-example-generator": "Információk lekérése a [[Main Page]] lapra hivatkozó lapokról.",
- "apihelp-query+logevents-description": "Naplóbejegyzések lekérése.",
"apihelp-query+logevents-param-prop": "Lekérendő tulajdonságok:",
"apihelp-query+logevents-paramvalue-prop-ids": "A naplóbejegyzés azonosítója.",
"apihelp-query+logevents-paramvalue-prop-title": "Az eseményben érintett lap címe.",
"apihelp-query+logevents-param-tag": "Csak ezzel a címkével ellátott bejegyzések listázása.",
"apihelp-query+logevents-param-limit": "A visszaadandó bejegyzések száma.",
"apihelp-query+logevents-example-simple": "A legutóbbi naplóbejegyzések listázása.",
- "apihelp-query+pagepropnames-description": "A wikin elérhető laptulajdonságnevek listázása.",
+ "apihelp-query+pagepropnames-summary": "A wikin elérhető laptulajdonságnevek listázása.",
"apihelp-query+pagepropnames-param-limit": "A visszaadandó nevek maximális száma.",
"apihelp-query+pagepropnames-example-simple": "Az első 10 tulajdonságnév lekérése.",
- "apihelp-query+pageprops-description": "A lap tartalmában meghatározott különböző laptulajdonságok lekérése.",
+ "apihelp-query+pageprops-summary": "A lap tartalmában meghatározott különböző laptulajdonságok lekérése.",
"apihelp-query+pageprops-param-prop": "Csak ezen laptulajdonságok listázása (az [[Special:ApiHelp/query+pagepropnames|action=query&list=pagepropnames]] visszaadja a használatban lévő laptulajdonságokat). Annak ellenőrzésére alkalmas, hogy egy lap benne használ-e egy adott laptulajdonságot.",
"apihelp-query+pageprops-example-simple": "A <kbd>Main Page</kbd> és <kbd>MediaWiki</kbd> lap tulajdonságainak lekérése.",
- "apihelp-query+pageswithprop-description": "Egy adott laptulajdonságot használó lapok listázása.",
+ "apihelp-query+pageswithprop-summary": "Egy adott laptulajdonságot használó lapok listázása.",
"apihelp-query+pageswithprop-param-propname": "A listázandó laptulajdonság (az [[Special:ApiHelp/query+pagepropnames|action=query&list=pagepropnames]] visszaadja a használatban lévő laptulajdonságokat).",
"apihelp-query+pageswithprop-param-prop": "Visszaadandó információk:",
"apihelp-query+pageswithprop-paramvalue-prop-ids": "A lap lapazonosítója.",
"apihelp-query+prefixsearch-param-offset": "Kihagyandó találatok száma.",
"apihelp-query+prefixsearch-example-simple": "<kbd>meaning</kbd> kezdetű lapcímek keresése.",
"apihelp-query+prefixsearch-param-profile": "Használandó keresőprofil.",
- "apihelp-query+protectedtitles-description": "Létrehozás ellen védett lapok listázása.",
+ "apihelp-query+protectedtitles-summary": "Létrehozás ellen védett lapok listázása.",
"apihelp-query+protectedtitles-param-namespace": "Címek listázása csak ezekben a névterekben.",
"apihelp-query+protectedtitles-param-level": "Csak ilyen védelmi szintű címek listázása.",
"apihelp-query+protectedtitles-param-limit": "A visszaadandó lapok maximális száma.",
"apihelp-query+protectedtitles-paramvalue-prop-level": "Védelmi szint.",
"apihelp-query+protectedtitles-example-simple": "A védett címek listázása.",
"apihelp-query+protectedtitles-example-generator": "A fő névtérben lévő védett címekre mutató hivatkozások lekérése.",
- "apihelp-query+querypage-description": "Egy QueryPage-alapú speciális lap listájának lekérése.",
+ "apihelp-query+querypage-summary": "Egy QueryPage-alapú speciális lap listájának lekérése.",
"apihelp-query+querypage-param-limit": "Megjelenítendő találatok száma.",
"apihelp-query+querypage-example-ancientpages": "A [[Special:Ancientpages]] eredményeinek lekérése.",
"apihelp-query+random-param-namespace": "Lapok visszaadása csak ezekből a névterekből.",
"apihelp-query+random-param-filterredir": "Szűrés átirányítások alapján.",
"apihelp-query+random-example-simple": "Két lap visszaadása találomra a fő névtérből.",
"apihelp-query+random-example-generator": "Lapinformációk lekérése két véletlenszerűen kiválasztott fő névtérbeli lapról.",
- "apihelp-query+recentchanges-description": "A friss változtatások listázása.",
+ "apihelp-query+recentchanges-summary": "A friss változtatások listázása.",
"apihelp-query+recentchanges-param-start": "Listázás ettől az időbélyegtől.",
"apihelp-query+recentchanges-param-end": "Listázás eddig az időbélyegig.",
"apihelp-query+recentchanges-param-namespace": "A változtatások szűrése ezekre a névterekre.",
"apihelp-query+recentchanges-param-toponly": "Csak a lapok legfrissebb változtatásának visszaadása.",
"apihelp-query+recentchanges-example-simple": "Friss változtatások listázása.",
"apihelp-query+recentchanges-example-generator": "Lapinformációk lekérése az ellenőrizetlen változtatásokról (patrol).",
- "apihelp-query+redirects-description": "A megadott lapokra mutató átirányítások lekérése.",
+ "apihelp-query+redirects-summary": "A megadott lapokra mutató átirányítások lekérése.",
"apihelp-query+redirects-param-prop": "Lekérendő tulajdonságok:",
"apihelp-query+redirects-paramvalue-prop-pageid": "Az átirányítások lapazonosítói.",
"apihelp-query+redirects-paramvalue-prop-title": "Az átirányítások címei.",
"apihelp-query+revisions+base-paramvalue-prop-content": "A változat szövege.",
"apihelp-query+revisions+base-paramvalue-prop-tags": "A változat címkéi.",
"apihelp-query+revisions+base-param-limit": "A visszaadandó változatok maximális száma.",
- "apihelp-query+revisions+base-param-expandtemplates": "A sablonok kibontása a változat tartalmában (az <kbd>$1prop=content</kbd> paraméterrel együtt használandó).",
+ "apihelp-query+revisions+base-param-expandtemplates": "Használd a <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> lekérdezést helyette. A sablonok kibontása a változat tartalmában (az <kbd>$1prop=content</kbd> paraméterrel együtt használandó).",
"apihelp-query+revisions+base-param-section": "Csak ezen szakasz tartalmának lekérése.",
- "apihelp-query+search-description": "Teljes szöveges keresés végrehajtása.",
+ "apihelp-query+search-summary": "Teljes szöveges keresés végrehajtása.",
"apihelp-query+search-param-search": "Erre az értékre illeszkedő lapcímek és tartalom keresése. Használható lehet speciális keresési funkciók meghívására a wiki keresőmotorjától függően.",
"apihelp-query+search-param-namespace": "Keresés csak ezekben a névterekben.",
"apihelp-query+search-param-what": "A végrehajtandó keresési típus.",
"apihelp-query+search-paramvalue-prop-redirecttitle": "Az illeszkedő átirányítás címe.",
"apihelp-query+search-paramvalue-prop-sectiontitle": "Az illeszkedő szakaszcím.",
"apihelp-query+search-paramvalue-prop-isfilematch": "A fájl tartalma illeszkedik-e.",
- "apihelp-query+search-paramvalue-prop-score": "<span class=\"apihelp-deprecated\">Elavult és figyelmen kívül hagyva.</span>",
- "apihelp-query+search-paramvalue-prop-hasrelated": "<span class=\"apihelp-deprecated\">Elavult és figyelmen kívül hagyva.</span>",
+ "apihelp-query+search-paramvalue-prop-score": "Figyelmen kívül hagyva.",
+ "apihelp-query+search-paramvalue-prop-hasrelated": "Figyelmen kívül hagyva.",
"apihelp-query+search-param-limit": "A visszaadandó lapok maximális száma.",
"apihelp-query+search-param-interwiki": "Interwiki-találatok befoglalása az eredménybe, ha elérhetők.",
"apihelp-query+search-param-backend": "A használandó keresőmotor, ha nem az alapértelmezett.",
"apihelp-query+search-example-simple": "Keresés a <kbd>meaning</kbd> szóra.",
"apihelp-query+search-example-text": "Keresés a <kbd>meaning</kbd> szóra a lapok szövegében.",
"apihelp-query+search-example-generator": "Lapinformációk lekérése a <kbd>meaning</kbd> szóra kapott találatokról.",
- "apihelp-query+siteinfo-description": "Általános információk lekérése a wikiről.",
+ "apihelp-query+siteinfo-summary": "Általános információk lekérése a wikiről.",
"apihelp-query+siteinfo-param-prop": "A lekérendő információk:",
"apihelp-query+siteinfo-paramvalue-prop-general": "Általános rendszerinformációk.",
"apihelp-query+siteinfo-paramvalue-prop-statistics": "Wikistatisztikák.",
"apihelp-query+siteinfo-param-numberingroup": "A egyes felhasználócsoportokba tartozó felhasználók számának listázása.",
"apihelp-query+siteinfo-example-simple": "Wikiinformációk lekérése.",
"apihelp-query+siteinfo-example-interwiki": "A helyi interwiki-előtagok listájának lekérése.",
- "apihelp-query+tags-description": "Változtatáscímkék listázása.",
+ "apihelp-query+tags-summary": "Változtatáscímkék listázása.",
"apihelp-query+tags-param-limit": "A listázandó címkék maximális száma.",
"apihelp-query+tags-param-prop": "Lekérendő tulajdonságok:",
"apihelp-query+tags-paramvalue-prop-name": "A címke neve.",
"apihelp-query+tags-paramvalue-prop-hitcount": "A címkével rendelkező lapváltozatok és naplóbejegyzések száma.",
"apihelp-query+tags-paramvalue-prop-defined": "A címke definiálva van-e.",
"apihelp-query+tags-example-simple": "Az elérhető címkék listázása.",
- "apihelp-query+templates-description": "A megadott lapokra beillesztett összes lap visszaadása.",
+ "apihelp-query+templates-summary": "A megadott lapokra beillesztett összes lap visszaadása.",
"apihelp-query+templates-param-namespace": "Csak ezekben a névterekben található sablonok visszaadása.",
"apihelp-query+templates-param-limit": "A visszaadandó sablonok száma.",
"apihelp-query+templates-param-templates": "Csak ezen sablonok listázása. Annak ellenőrzésére alkalmas, hogy egy lap beilleszt-e egy adott sablont.",
"apihelp-query+templates-example-simple": "A <kbd>Main Page</kbd> lapon használt sablonok lekérése.",
"apihelp-query+templates-example-generator": "Információk lekérése a <kbd>Main Page</kbd> lapon használt sablonlapokról.",
"apihelp-query+templates-example-namespaces": "A <kbd>Main Page</kbd> lapon használt {{ns:user}} és {{ns:template}} névtérbeli sablonok lekérése.",
- "apihelp-query+tokens-description": "Tokenek lekérése adatmódosító műveletekhez.",
+ "apihelp-query+tokens-summary": "Tokenek lekérése adatmódosító műveletekhez.",
"apihelp-query+tokens-param-type": "Lekérendő tokentípusok.",
"apihelp-query+tokens-example-simple": "Egy csrf token lekérése (alapértelmezett).",
"apihelp-query+tokens-example-types": "Egy watch és egy patrol token lekérése.",
- "apihelp-query+transcludedin-description": "A megadott lapokat beillesztő lapok lekérése.",
+ "apihelp-query+transcludedin-summary": "A megadott lapokat beillesztő lapok lekérése.",
"apihelp-query+transcludedin-param-prop": "Lekérendő tulajdonságok:",
"apihelp-query+transcludedin-paramvalue-prop-pageid": "A lapok lapazonosítói.",
"apihelp-query+transcludedin-paramvalue-prop-title": "A lapok címei.",
"apihelp-query+transcludedin-param-show": "Szűrés az átirányítások alapján:\n;redirect: Csak átirányítások visszaadása.\n;!redirect: Átirányítások elrejtése.",
"apihelp-query+transcludedin-example-simple": "A <kbd>Main Page</kbd> lapot beillesztő lapok listájának lekérése.",
"apihelp-query+transcludedin-example-generator": "Információk lekérése a <kbd>Main Page</kbd> lapot beillesztő lapokról.",
- "apihelp-query+usercontribs-description": "Egy felhasználó összes szerkesztésének lekérése.",
+ "apihelp-query+usercontribs-summary": "Egy felhasználó összes szerkesztésének lekérése.",
"apihelp-query+usercontribs-param-limit": "A visszaadott szerkesztések maximális száma.",
"apihelp-query+usercontribs-param-start": "Visszaadás ettől az időbélyegtől.",
"apihelp-query+usercontribs-param-end": "Visszaadás eddig az időbélyegig.",
"apihelp-query+usercontribs-param-toponly": "Csak a legfrissebbnek számító szerkesztések visszaadása.",
"apihelp-query+usercontribs-example-user": "<kbd>Example</kbd> szerkesztéseinek megjelenítése.",
"apihelp-query+usercontribs-example-ipprefix": "<kbd>192.0.2.</kbd> kezdetű IP-címek szerkesztéseinek megjelenítése.",
- "apihelp-query+userinfo-description": "Információk lekérése az aktuális felhasználóról.",
+ "apihelp-query+userinfo-summary": "Információk lekérése az aktuális felhasználóról.",
"apihelp-query+userinfo-param-prop": "Visszaadandó információk:",
"apihelp-query+userinfo-paramvalue-prop-blockinfo": "Blokkolva van-e az aktuális felhasználó, és ha igen, akkor ki és miért blokkolta.",
"apihelp-query+userinfo-paramvalue-prop-groups": "A jelenlegi felhasználó összes csoportjának listája.",
"apihelp-query+userinfo-paramvalue-prop-rights": "A jelenlegi felhasználó jogosultságainak listája.",
"apihelp-query+userinfo-paramvalue-prop-changeablegroups": "A jelenlegi felhasználó által hozzáadható és eltávolítható csoportok listája.",
"apihelp-query+userinfo-paramvalue-prop-options": "A jelenlegi felhasználó beállításai.",
- "apihelp-query+userinfo-paramvalue-prop-preferencestoken": "<span class=\"apihelp-deprecated\">Elavult.</span> A jelenlegi felhasználó beállításainak megváltoztatásához szükséges token lekérése.",
+ "apihelp-query+userinfo-paramvalue-prop-preferencestoken": "A jelenlegi felhasználó beállításainak megváltoztatásához szükséges token lekérése.",
"apihelp-query+userinfo-paramvalue-prop-editcount": "A jelenlegi felhasználó szerkesztésszáma.",
"apihelp-query+userinfo-paramvalue-prop-ratelimits": "A jelenlegi felhasználóra érvényes sebességkorlátozások.",
"apihelp-query+userinfo-paramvalue-prop-realname": "A felhasználó valódi neve.",
"apihelp-query+userinfo-param-attachedwiki": "A felhasználó össze van-e kapcsolva az ezen azonosítójú wikivel, az <kbd>$1prop=centralids</kbd> paraméterrel együtt használandó.",
"apihelp-query+userinfo-example-simple": "Információk lekérése az aktuális felhasználóról.",
"apihelp-query+userinfo-example-data": "További információk lekérése az aktuális felhasználóról.",
- "apihelp-query+users-description": "Információk lekérése felhasználók listájáról.",
+ "apihelp-query+users-summary": "Információk lekérése felhasználók listájáról.",
"apihelp-query+users-param-prop": "Visszaadandó információk:",
"apihelp-query+users-paramvalue-prop-blockinfo": "Blokkolva van-e a felhasználó, és ha igen, akkor ki és miért blokkolta.",
"apihelp-query+users-paramvalue-prop-groups": "A felhasználó összes csoportjának listája.",
"apihelp-query+users-param-userids": "A lekérendő felhasználók azonosítóinak listája.",
"apihelp-query+users-param-token": "Használd a <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> lekérdezést helyette.",
"apihelp-query+users-example-simple": "Információk lekérése <kbd>Example</kbd> felhasználóról.",
- "apihelp-query+watchlist-description": "A felhasználó figyelőlistáján szereplő lapok friss változtatásainak lekérése.",
+ "apihelp-query+watchlist-summary": "A felhasználó figyelőlistáján szereplő lapok friss változtatásainak lekérése.",
"apihelp-query+watchlist-param-allrev": "Egy lap összes változtatásának lekérése a megadott időszakból.",
"apihelp-query+watchlist-param-start": "Listázás ettől az időbélyegtől.",
"apihelp-query+watchlist-param-end": "Listázás eddig az időbélyegig.",
"apihelp-query+watchlist-example-generator": "Lapinformációk lekérése a jelenlegi felhasználó figyelőlistáján szereplő nemrég módosított lapokról.",
"apihelp-query+watchlist-example-generator-rev": "Lapváltozat-információk lekérése a jelenlegi felhasználó figyelőlistáján szereplő friss változtatásokról.",
"apihelp-query+watchlist-example-wlowner": "<kbd>Exapmle</kbd> felhasználó figyelőlistáján szereplő nemrég módosított lapok legfrissebb változatának listázása.",
- "apihelp-query+watchlistraw-description": "A jelenlegi felhasználó figyelőlistáján szereplő összes lap lekérése.",
+ "apihelp-query+watchlistraw-summary": "A jelenlegi felhasználó figyelőlistáján szereplő összes lap lekérése.",
"apihelp-query+watchlistraw-param-namespace": "Lapok listázása csak ezekben a névterekben.",
"apihelp-query+watchlistraw-param-limit": "A kérésenként visszaadandó eredmények száma.",
"apihelp-query+watchlistraw-param-prop": "További lekérendő tulajdonságok:",
"apihelp-query+watchlistraw-param-totitle": "Listázás eddig a címig (névtérelőtaggal).",
"apihelp-query+watchlistraw-example-simple": "A jelenlegi felhasználó figyelőlistáján szereplő lapok lekérése.",
"apihelp-query+watchlistraw-example-generator": "Lapinformációk lekérése a jelenlegi felhasználó figyelőlistáján szereplő lapokról.",
- "apihelp-removeauthenticationdata-description": "A jelenlegi felhasználó hitelesítési adatainak eltávolítása.",
+ "apihelp-removeauthenticationdata-summary": "A jelenlegi felhasználó hitelesítési adatainak eltávolítása.",
"apihelp-removeauthenticationdata-example-simple": "Kísérlet a jelenlegi felhasználó <kbd>FooAuthenticationRequest</kbd> kéréshez kapcsolódó adatainak eltávolítására.",
- "apihelp-resetpassword-description": "Jelszó-visszaállító e-mail küldése a felhasználónak.",
- "apihelp-resetpassword-description-noroutes": "Nem érhetők el jelszó-visszaállítási módok.\n\nEngedélyezz néhány módot a <var>[[mw:Special:MyLanguage/Manual:$wgPasswordResetRoutes|$wgPasswordResetRoutes]]</var> PHP-változóval a modul használatához.",
+ "apihelp-resetpassword-summary": "Jelszó-visszaállító e-mail küldése a felhasználónak.",
"apihelp-resetpassword-param-user": "A visszaállítandó felhasználó.",
"apihelp-resetpassword-param-email": "A visszaállítandó felhasználó e-mail-címe.",
"apihelp-resetpassword-example-user": "Jelszó-visszaállító e-mail küldése <kbd>Example</kbd> felhasználónak.",
"apihelp-resetpassword-example-email": "Jelszó-visszaállító e-mail küldése az összes <kbd>user@example.com</kbd> e-mail-című felhasználónak.",
- "apihelp-revisiondelete-description": "Változatok törlése és helyreállítása.",
+ "apihelp-revisiondelete-summary": "Változatok törlése és helyreállítása.",
"apihelp-revisiondelete-param-ids": "A törlendő lapváltozatok azonosítói.",
"apihelp-revisiondelete-param-reason": "A törlés vagy helyreállítás indoklása.",
"apihelp-revisiondelete-example-revision": "A <kbd>12345</kbd> lapváltozat tartalmának elrejtése a <kbd>Main Page</kbd> lapon.",
"apihelp-revisiondelete-example-log": "A <kbd>67890</kbd> naplóbejegyzés összes adatának elrejtése <kbd>BLP violation</kbd> indoklással.",
- "apihelp-rollback-description": "A lap legutóbbi változtatásának visszavonása.\n\nHa a lap utolsó szerkesztője egymás után több szerkesztést végzett, az összes visszavonása.",
"apihelp-rollback-param-title": "A visszaállítandó lap címe. Nem használható együtt a <var>$1pageid</var> paraméterrel.",
"apihelp-rollback-param-pageid": "A visszaállítandó lap lapazonosítója. Nem használható együtt a <var>$1title</var> paraméterrel.",
"apihelp-rollback-param-summary": "Egyéni szerkesztési összefoglaló. Ha üres, az alapértelmezett összefoglaló lesz használatban.",
"apihelp-rollback-param-markbot": "A visszavont és a visszavonó szerkesztések botszerkesztésnek jelölése.",
"apihelp-rollback-param-watchlist": "A lap hozzáadása a figyelőlistához vagy eltávolítása onnan feltétel nélkül, a beállítások használata vagy a figyelőlista érintetlenül hagyása.",
- "apihelp-rsd-description": "Egy RSD-séma (Really Simple Discovery) exportálása.",
+ "apihelp-rsd-summary": "Egy RSD-séma (Really Simple Discovery) exportálása.",
"apihelp-rsd-example-simple": "Az RSD-séma exportálása.",
- "apihelp-setnotificationtimestamp-description": "A figyelt lapok értesítési időbélyegének frissítése.\n\nEz érinti a módosított lapok kiemelését a figyelőlistán és a laptörténetekben, valamint az e-mail-küldést a „{{int:tog-enotifwatchlistpages}}” beállítás engedélyezése esetén.",
"apihelp-setnotificationtimestamp-param-entirewatchlist": "Dolgozás az összes figyelt lapon.",
"apihelp-setnotificationtimestamp-param-timestamp": "Az értesítési időbélyeg állítása erre az időbélyegre.",
"apihelp-setnotificationtimestamp-param-torevid": "Az értesítési időbélyeg állítása erre a lapváltozatra (csak egy lap esetén).",
"apihelp-setnotificationtimestamp-example-page": "A <kbd>Main page</kbd> értesítési állapotának visszaállítása.",
"apihelp-setnotificationtimestamp-example-pagetimestamp": "A <kbd>Main page</kbd> értesítési időbélyegének módosítása, hogy a 2012. január 1-jét követő szerkesztések nem megtekintettek legyenek.",
"apihelp-setnotificationtimestamp-example-allpages": "A <kbd>{{ns:user}}</kbd> névtérbeli lapok értesítési állapotának visszaállítása.",
- "apihelp-setpagelanguage-description": "Egy lap nyelvének módosítása.",
- "apihelp-setpagelanguage-description-disabled": "A lapnyelv módosítása nem engedélyezett ezen a wikin.\n\nEngedélyezd a <var>[[mw:Special:MyLanguage/Manual:$wgPageLanguageUseDB|$wgPageLanguageUseDB]]</var> PHP-változót ezen művelet használatához.",
+ "apihelp-setpagelanguage-summary": "Egy lap nyelvének módosítása.",
+ "apihelp-setpagelanguage-extended-description-disabled": "A lapnyelv módosítása nem engedélyezett ezen a wikin.\n\nEngedélyezd a <var>[[mw:Special:MyLanguage/Manual:$wgPageLanguageUseDB|$wgPageLanguageUseDB]]</var> PHP-változót ezen művelet használatához.",
"apihelp-setpagelanguage-param-title": "A módosítandó lap címe. Nem használható együtt a <var>$1pageid</var> paraméterrel.",
"apihelp-setpagelanguage-param-pageid": "A módosítandó lap azonosítója. Nem használható együtt a <var>$1title</var> paraméterrel.",
"apihelp-setpagelanguage-param-lang": "A lap nyelvének módosítása erre a nyelvkódra. Használd a <kbd>default</kbd> értéket a wiki alapértelmezett tartalomnyelvére való visszaállításhoz.",
"apihelp-setpagelanguage-param-reason": "A módosítás oka.",
"apihelp-setpagelanguage-example-language": "A <kbd>Main Page</kbd> nyelvének módosítása baszkra.",
"apihelp-setpagelanguage-example-default": "A 123 azonosítójú lap nyelvének módosítása a wiki alapértelmezett tartalomnyelvére.",
+ "apihelp-stashedit-summary": "Egy szerkesztés előkészítése a megosztott gyorsítótárban.",
+ "apihelp-stashedit-extended-description": "Ez a modul AJAX segítségével, a szerkesztőűrlapról történő használatra készült a lapmentés teljesítményének javítására.",
+ "apihelp-stashedit-param-title": "A szerkesztett lap címe.",
+ "apihelp-stashedit-param-section": "A szerkesztett szakasz száma. <kbd>0</kbd> a bevezetőhöz, <kbd>new</kbd> új szakaszhoz.",
+ "apihelp-stashedit-param-sectiontitle": "Az új szakasz címe.",
+ "apihelp-stashedit-param-text": "A lap tartalma.",
+ "apihelp-stashedit-param-contentmodel": "Az új tartalom tartalommodellje.",
+ "apihelp-stashedit-param-baserevid": "Az alapváltozat változatazonosítója.",
+ "apihelp-stashedit-param-summary": "Szerkesztési összefoglaló.",
"apihelp-userrights-param-userid": "Felhasználói azonosító.",
"api-help-title": "MediaWiki API súgó",
"api-help-lead": "Ez egy automatikusan generált MediaWiki API-dokumentációs lap.\n\nDokumentáció és példák: https://www.mediawiki.org/wiki/API",
"apihelp-query+search-paramvalue-prop-sectiontitle": "{{doc-apihelp-paramvalue|query+search|prop|sectiontitle}}",
"apihelp-query+search-paramvalue-prop-categorysnippet": "{{doc-apihelp-paramvalue|query+search|prop|categorysnippet}}",
"apihelp-query+search-paramvalue-prop-isfilematch": "{{doc-apihelp-paramvalue|query+search|prop|isfilematch}}",
- "apihelp-query+search-paramvalue-prop-score": "{{doc-apihelp-paramvalue|query+search|prop|score}}\n{{doc-important|Please do not alter the <code><nowiki>class=\"apihelp-deprecated\"</nowiki></code> attribute}}",
- "apihelp-query+search-paramvalue-prop-hasrelated": "{{doc-apihelp-paramvalue|query+search|prop|hasrelated}}\n{{doc-important|Please do not alter the <code><nowiki>class=\"apihelp-deprecated\"</nowiki></code> attribute}}",
+ "apihelp-query+search-paramvalue-prop-score": "{{doc-apihelp-paramvalue|query+search|prop|score}}\n{{Identical|Ignored}}",
+ "apihelp-query+search-paramvalue-prop-hasrelated": "{{doc-apihelp-paramvalue|query+search|prop|hasrelated}}\n{{Identical|Ignored}}",
"apihelp-query+search-param-limit": "{{doc-apihelp-param|query+search|limit}}",
"apihelp-query+search-param-interwiki": "{{doc-apihelp-param|query+search|interwiki}}",
"apihelp-query+search-param-backend": "{{doc-apihelp-param|query+search|backend}}",
"apihelp-query+recentchanges-example-simple": "最近變更清單",
"apihelp-query+redirects-summary": "回傳連結至指定頁面的所有重新導向。",
"apihelp-query+redirects-param-limit": "要回傳的重新導向數量。",
+ "apihelp-query+search-paramvalue-prop-score": "已忽略",
+ "apihelp-query+search-paramvalue-prop-hasrelated": "已忽略",
"apihelp-query+search-param-limit": "要回傳的頁面總數。",
"apihelp-query+stashimageinfo-summary": "回傳多筆儲藏檔案的檔案資訊。",
"apihelp-query+stashimageinfo-example-simple": "回傳儲藏檔案的檔案資訊。",
}
$attribs = $data['attribs'];
unset( $data['attribs'] );
- $attribs = wfArrayFilterByKey( $attribs, function( $key ) {
+ $attribs = wfArrayFilterByKey( $attribs, function ( $key ) {
return $key === 'class' || Sanitizer::isReservedDataAttribute( $key );
} );
*
* @see \MediaWiki\Logger\LoggerFactory
* @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
*/
class LegacyLogger extends AbstractLogger {
*
* @see \MediaWiki\Logger\LoggerFactory
* @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
*/
class LegacySpi implements Spi {
*
* @see \MediaWiki\Logger\Spi
* @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
*/
class LoggerFactory {
*
* @see https://github.com/Seldaek/monolog
* @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
*/
class MonologSpi implements Spi {
*
* @see \MediaWiki\Logger\LoggerFactory
* @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
*/
class NullSpi implements Spi {
*
* @see \MediaWiki\Logger\LoggerFactory
* @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
*/
interface Spi {
* delegating the formatting to \MediaWiki\Logger\LegacyLogger.
*
* @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2013 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2013 Wikimedia Foundation and contributors
* @see \MediaWiki\Logger\LegacyLogger
*/
class LegacyFormatter extends NormalizerFormatter {
* replacement for \Monolog\Handler\StreamHandler.
*
* @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2013 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2013 Wikimedia Foundation and contributors
*/
class LegacyHandler extends AbstractProcessingHandler {
* will be used to redact the trace information.
*
* @since 1.26
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2015 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2015 Wikimedia Foundation and contributors
*/
class LineFormatter extends MonologLineFormatter {
* default Logstash syslog input handler.
*
* @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2015 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2015 Wikimedia Foundation and contributors
*/
class SyslogHandler extends SyslogUdpHandler {
* wiki / request ID, and MediaWiki version.
*
* @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2013 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2013 Wikimedia Foundation and contributors
*/
class WikiProcessor {
* @return bool|string
*/
public function generateTextDiffBody( $otext, $ntext ) {
- $diff = function() use ( $otext, $ntext ) {
+ $diff = function () use ( $otext, $ntext ) {
$time = microtime( true );
$result = $this->textDiff( $otext, $ntext );
* @param Status $status
* @throws FatalError
*/
- $error = function( $status ) {
+ $error = function ( $status ) {
throw new FatalError( $status->getWikiText() );
};
* @return Closure
*/
protected function getDBFactory() {
- return function( $index ) {
+ return function ( $index ) {
return wfGetLB( $this->wiki )->getConnectionRef( $index, [], $this->wiki );
};
}
* @return Closure
*/
protected function getDBFactory() {
- return function( $index ) {
+ return function ( $index ) {
return wfGetDB( $index );
};
}
if ( $upgrade ) {
$this->upgrading = true;
// Defer updates unless in auto-commit CLI mode
- DeferredUpdates::addCallableUpdate( function() {
+ DeferredUpdates::addCallableUpdate( function () {
$this->upgrading = false; // avoid duplicate updates
try {
$this->upgradeRow();
// And it's not needed anymore after infusing, so we don't put it in JS config at all.
$this->setAttributes( [ 'data-mw-modules' => implode( ',', $this->modules ) ] );
}
- $this->registerConfigCallback( function( &$config ) {
+ $this->registerConfigCallback( function ( &$config ) {
if ( $this->hideIf !== null ) {
$config['hideIf'] = $this->hideIf;
}
$usersArray = explode( "\n", $request->getText( $this->mName ) );
// Remove empty lines
- $usersArray = array_values( array_filter( $usersArray, function( $username ) {
+ $usersArray = array_values( array_filter( $usersArray, function ( $username ) {
return trim( $username ) !== '';
} ) );
return $usersArray;
$services = \MediaWiki\MediaWikiServices::getInstance();
$connection = $status->value;
- $services->redefineService( 'DBLoadBalancerFactory', function() use ( $connection ) {
+ $services->redefineService( 'DBLoadBalancerFactory', function () use ( $connection ) {
return LBFactorySingle::newFromConnection( $connection );
} );
}
// make sure we use the installer config as the main config
$configRegistry = $baseConfig->get( 'ConfigRegistry' );
- $configRegistry['main'] = function() use ( $installerConfig ) {
+ $configRegistry['main'] = function () use ( $installerConfig ) {
return $installerConfig;
};
// Re-insert comments
$pattern = '/' . CSSMin::PLACEHOLDER . '(\d+)x/';
- $source = preg_replace_callback( $pattern, function( $match ) use ( &$comments ) {
+ $source = preg_replace_callback( $pattern, function ( $match ) use ( &$comments ) {
return $comments[ $match[1] ];
}, $source );
if ( $this->liveRing === null || $this->ejectionNextExpiry <= $now ) {
$this->ejectionExpiries = array_filter(
$this->ejectionExpiries,
- function( $expiry ) use ( $now ) {
+ function ( $expiry ) use ( $now ) {
return ( $expiry > $now );
}
);
/**
* Construct objects from configuration instructions.
*
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
*/
class ObjectFactory {
* <https://github.com/phacility/xhprof>. XHProf can be installed as a PECL
* package for use with PHP5 (Zend PHP) and is built-in to HHVM 3.3.0.
*
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
* @since 1.28
*/
class XhprofData {
if ( $this->asyncWrites && !$this->hasVolatileSources( $ops ) ) {
// Bind $scopeLock to the callback to preserve locks
DeferredUpdates::addCallableUpdate(
- function() use ( $backend, $realOps, $opts, $scopeLock, $relevantPaths ) {
+ function () use ( $backend, $realOps, $opts, $scopeLock, $relevantPaths ) {
wfDebugLog( 'FileOperationReplication',
"'{$backend->getName()}' async replication; paths: " .
FormatJson::encode( $relevantPaths ) );
$realOps = $this->substOpBatchPaths( $ops, $backend );
if ( $this->asyncWrites && !$this->hasVolatileSources( $ops ) ) {
DeferredUpdates::addCallableUpdate(
- function() use ( $backend, $realOps ) {
+ function () use ( $backend, $realOps ) {
$backend->doQuickOperations( $realOps );
}
);
$realParams = $this->substOpPaths( $params, $backend );
if ( $this->asyncWrites ) {
DeferredUpdates::addCallableUpdate(
- function() use ( $backend, $method, $realParams ) {
+ function () use ( $backend, $method, $realParams ) {
$backend->$method( $realParams );
}
);
$lSince = microtime( true ); // lock timestamp
- return new ScopedCallback( function() use ( $key, $lSince, $expiry ) {
+ return new ScopedCallback( function () use ( $key, $lSince, $expiry ) {
$latency = .050; // latency skew (err towards keeping lock present)
$age = ( microtime( true ) - $lSince + $latency );
if ( ( $age + $latency ) >= $expiry ) {
}
/**
- * @param string $name Table name
- * @return array (DB name, schema name, table prefix, table name)
+ * Get the table components needed for a query given the currently selected database
+ *
+ * @param string $name Table name in the form of db.schema.table, db.table, or table
+ * @return array (DB name or "" for default, schema name, table prefix, table name)
*/
protected function qualifiedTableComponents( $name ) {
# We reverse the explode so that database.table and table both output the correct table.
}
public function tableExists( $table, $fname = __METHOD__ ) {
- $table = $this->tableName( $table, 'raw' );
- if ( isset( $this->mSessionTempTables[$table] ) ) {
- return true; // already known to exist and won't show in SHOW TABLES anyway
- }
-
// Split database and table into proper variables as Database::tableName() returns
// shared tables prefixed with their database, which do not work in SHOW TABLES statements
- list( $database, $schema, $prefix, $table ) = $this->qualifiedTableComponents( $table );
+ list( $database, , $prefix, $table ) = $this->qualifiedTableComponents( $table );
+ $tableName = "{$prefix}{$table}";
- $table = $prefix . $table;
+ if ( isset( $this->mSessionTempTables[$tableName] ) ) {
+ return true; // already known to exist and won't show in SHOW TABLES anyway
+ }
// We can't use buildLike() here, because it specifies an escape character
// other than the backslash, which is the only one supported by SHOW TABLES
- $encLike = $this->escapeLikeInternal( $table, '\\' );
+ $encLike = $this->escapeLikeInternal( $tableName, '\\' );
- // If the database has been specified (such as for shared tables), add a FROM $database clause
+ // If the database has been specified (such as for shared tables), use "FROM"
if ( $database !== '' ) {
- $database = $this->addIdentifierQuotes( $database );
- $query = "SHOW TABLES FROM $database LIKE '$encLike'";
+ $encDatabase = $this->addIdentifierQuotes( $database );
+ $query = "SHOW TABLES FROM $encDatabase LIKE '$encLike'";
} else {
$query = "SHOW TABLES LIKE '$encLike'";
}
}
class_alias( DatabaseSqlite::class, 'DatabaseSqlite' );
-
}
class_alias( FakeResultWrapper::class, 'FakeResultWrapper' );
-
}
class_alias( DBTransactionError::class, 'DBTransactionError' );
-
$prefix
);
- $this->forEachLB( function( ILoadBalancer $lb ) use ( $prefix ) {
+ $this->forEachLB( function ( ILoadBalancer $lb ) use ( $prefix ) {
$lb->setDomainPrefix( $prefix );
} );
}
$samplingRates = [ '*' => $sampleRate ];
}
if ( $samplingRates ) {
- array_walk( $data, function( $item ) use ( $samplingRates ) {
+ array_walk( $data, function ( $item ) use ( $samplingRates ) {
/** @var $item StatsdData */
foreach ( $samplingRates as $pattern => $rate ) {
if ( fnmatch( $pattern, $item->getKey(), FNM_NOESCAPE ) ) {
* @return array (prefix,VirtualRESTService) or (null,null) if none found
*/
public function getMountAndService( $path ) {
- $cmpFunc = function( $a, $b ) {
+ $cmpFunc = function ( $a, $b ) {
$al = substr_count( $a, '/' );
$bl = substr_count( $b, '/' );
if ( $al === $bl ) {
}
// Function to get IDs that won't collide with keys in $armoredIndexMap
- $idFunc = function() use ( &$curUniqueId ) {
+ $idFunc = function () use ( &$curUniqueId ) {
return $curUniqueId++;
};
$parts = explode( '/', $subPage, 2 );
if ( $parts !== 2 ) {
$slot = $parts[0];
- if ( $slot === 'main' or $slot === '' ) {
+ if ( $slot === 'main' || $slot === '' ) {
return true;
}
}
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
* @since 1.22
*/
+use MediaWiki\MediaWikiServices;
/**
* This class formats patrol log entries.
'oldid' => $oldid,
'diff' => 'prev'
];
- $revlink = Linker::link( $target, htmlspecialchars( $revision ), [], $query );
+ $revlink = MediaWikiServices::getInstance()->getLinkRenderer()->makeLink(
+ $target, $revision, [], $query );
} else {
$revlink = htmlspecialchars( $revision );
}
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
* @since 1.26
*/
+use MediaWiki\MediaWikiServices;
/**
* This class formats protect log entries.
}
public function getActionLinks() {
+ $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
$subtype = $this->entry->getSubtype();
if ( $this->entry->isDeleted( LogPage::DELETED_ACTION ) // Action is hidden
|| $subtype === 'move_prot' // the move log entry has the right action link
// Show history link for all changes after the protection
$title = $this->entry->getTarget();
$links = [
- Linker::link( $title,
- $this->msg( 'hist' )->escaped(),
+ $linkRenderer->makeLink( $title,
+ $this->msg( 'hist' )->text(),
[],
[
'action' => 'history',
// Show change protection link
if ( $this->context->getUser()->isAllowed( 'protect' ) ) {
- $links[] = Linker::linkKnown(
+ $links[] = $linkRenderer->makeKnownLink(
$title,
- $this->msg( 'protect_change' )->escaped(),
+ $this->msg( 'protect_change' )->text(),
[],
[ 'action' => 'protect' ]
);
$oldmetadata =& $params['oldmetadata'];
// unset old metadata entry to ensure metadata goes at the end of the params array
unset( $params['oldmetadata'] );
- $params['oldmetadata'] = array_map( function( $index ) use ( $params, $oldmetadata ) {
+ $params['oldmetadata'] = array_map( function ( $index ) use ( $params, $oldmetadata ) {
$result = [ 'group' => $params['4:array:oldgroups'][$index] ];
if ( isset( $oldmetadata[$index] ) ) {
$result += $oldmetadata[$index];
$newmetadata =& $params['newmetadata'];
// unset old metadata entry to ensure metadata goes at the end of the params array
unset( $params['newmetadata'] );
- $params['newmetadata'] = array_map( function( $index ) use ( $params, $newmetadata ) {
+ $params['newmetadata'] = array_map( function ( $index ) use ( $params, $newmetadata ) {
$result = [ 'group' => $params['5:array:newgroups'][$index] ];
if ( isset( $newmetadata[$index] ) ) {
$result += $newmetadata[$index];
HTMLFileCache::clearFileCache( $title );
$revid = $revision ? $revision->getId() : null;
- DeferredUpdates::addCallableUpdate( function() use ( $title, $revid ) {
+ DeferredUpdates::addCallableUpdate( function () use ( $title, $revid ) {
InfoAction::invalidateCache( $title, $revid );
} );
}
$e = new Exception;
$this->mInParse = $e->getTraceAsString();
- $recursiveCheck = new ScopedCallback( function() {
+ $recursiveCheck = new ScopedCallback( function () {
$this->mInParse = false;
} );
*/
protected function getFunctionReport() {
$data = $this->getFunctionStats();
- usort( $data, function( $a, $b ) {
+ usort( $data, function ( $a, $b ) {
if ( $a['real'] === $b['real'] ) {
return 0;
}
* a drop-in replacement for Xhprof. Just change the XHPROF_FLAGS_* constants
* to TIDEWAYS_FLAGS_*.
*
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
* @ingroup Profiler
* @see Xhprof
* @see https://php.net/xhprof
*/
protected function getFunctionReport() {
$data = $this->getFunctionStats();
- usort( $data, function( $a, $b ) {
+ usort( $data, function ( $a, $b ) {
if ( $a['real'] === $b['real'] ) {
return 0;
}
protected function extractExtensionMessagesFiles( $dir, array $info ) {
if ( isset( $info['ExtensionMessagesFiles'] ) ) {
- $this->globals["wgExtensionMessagesFiles"] += array_map( function( $file ) use ( $dir ) {
+ $this->globals["wgExtensionMessagesFiles"] += array_map( function ( $file ) use ( $dir ) {
return "$dir/$file";
}, $info['ExtensionMessagesFiles'] );
}
protected function processAutoLoader( $dir, array $info ) {
if ( isset( $info['AutoloadClasses'] ) ) {
// Make paths absolute, relative to the JSON file
- return array_map( function( $file ) use ( $dir ) {
+ return array_map( function ( $file ) use ( $dir ) {
return "$dir/$file";
}, $info['AutoloadClasses'] );
} else {
* http://www.gnu.org/copyleft/gpl.html
*
* @file
- * @author Brad Jorsch
*/
/**
if ( $namespaces ) {
// Filter namespaces to only keep valid ones
$validNs = $this->searchableNamespaces();
- $namespaces = array_filter( $namespaces, function( $ns ) use( $validNs ) {
+ $namespaces = array_filter( $namespaces, function ( $ns ) use( $validNs ) {
return $ns < 0 || isset( $validNs[$ns] );
} );
} else {
}
}
- $ns = array_map( function( $space ) {
+ $ns = array_map( function ( $space ) {
return $space == NS_MEDIA ? NS_FILE : $space;
}, $ns );
* @return Title[]
*/
public function extractTitles( SearchSuggestionSet $completionResults ) {
- return $completionResults->map( function( SearchSuggestion $sugg ) {
+ return $completionResults->map( function ( SearchSuggestion $sugg ) {
return $sugg->getSuggestedTitle();
} );
}
protected function processCompletionResults( $search, SearchSuggestionSet $suggestions ) {
$search = trim( $search );
// preload the titles with LinkBatch
- $titles = $suggestions->map( function( SearchSuggestion $sugg ) {
+ $titles = $suggestions->map( function ( SearchSuggestion $sugg ) {
return $sugg->getSuggestedTitle();
} );
$lb = new LinkBatch( $titles );
$lb->setCaller( __METHOD__ );
$lb->execute();
- $results = $suggestions->map( function( SearchSuggestion $sugg ) {
+ $results = $suggestions->map( function ( SearchSuggestion $sugg ) {
return $sugg->getSuggestedTitle()->getPrefixedText();
} );
*/
public static function fromTitles( array $titles ) {
$score = count( $titles );
- $suggestions = array_map( function( $title ) use ( &$score ) {
+ $suggestions = array_map( function ( $title ) use ( &$score ) {
return SearchSuggestion::fromTitle( $score--, $title );
}, $titles );
return new SearchSuggestionSet( $suggestions );
*/
public static function fromStrings( array $titles ) {
$score = count( $titles );
- $suggestions = array_map( function( $title ) use ( &$score ) {
+ $suggestions = array_map( function ( $title ) use ( &$score ) {
return SearchSuggestion::fromText( $score--, $title );
}, $titles );
return new SearchSuggestionSet( $suggestions );
* Subclass of UnexpectedValueException that can be annotated with additional
* data for debug logging.
*
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2016 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2016 Wikimedia Foundation and contributors
* @since 1.27
*/
class MetadataMergeException extends UnexpectedValueException {
*
* Created on Sep 08, 2014
*
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* Created on Sep 08, 2014
*
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
$searchEngine->setLimitOffset( $limit, $offset );
$searchEngine->setNamespaces( [] );
$result = $searchEngine->defaultPrefixSearch( $search );
- return array_map( function( Title $t ) {
+ return array_map( function ( Title $t ) {
return $t->getPrefixedText();
}, $result );
}
$showGrants
),
'default' => array_map(
- function( $g ) {
+ function ( $g ) {
return "grant-$g";
},
$this->botPassword->getGrants()
'tooltips' => array_combine(
array_map( 'MWGrants::getGrantsLink', $showGrants ),
array_map(
- function( $rights ) use ( $lang ) {
+ function ( $rights ) use ( $lang ) {
return $lang->semicolonList( array_map( 'User::getRightDescription', $rights ) );
},
array_intersect_key( MWGrants::getRightsByGrant(), array_flip( $showGrants ) )
)
),
'force-options-on' => array_map(
- function( $g ) {
+ function ( $g ) {
return "grant-$g";
},
MWGrants::getHiddenGrants()
'reason' => [
'type' => 'text',
'name' => 'reason',
- 'validation-callback' => function( $reason ) {
+ 'validation-callback' => function ( $reason ) {
$match = EditPage::matchSummarySpamRegex( $reason );
if ( $match ) {
return $this->msg( 'spamprotectionmatch', $match )->parse();
$permErrors = $this->oldTitle->getUserPermissionsErrors( 'move', $user );
if ( count( $permErrors ) ) {
// Auto-block user's IP if the account was "hard" blocked
- DeferredUpdates::addCallableUpdate( function() use ( $user ) {
+ DeferredUpdates::addCallableUpdate( function () use ( $user ) {
$user->spreadAnyEditBlock();
} );
throw new PermissionsError( 'move', $permErrors );
* @since 1.21
* @file
* @ingroup SpecialPage
- * @author Brad Jorsch
*/
/**
// UNLESS the user can only add this group (not remove it) and the expiry time
// is being brought forward (T156784)
$add = array_filter( $add,
- function( $group ) use ( $groups, $groupExpiries, $removable, $ugms ) {
+ function ( $group ) use ( $groups, $groupExpiries, $removable, $ugms ) {
if ( isset( $groupExpiries[$group] ) &&
!in_array( $group, $removable ) &&
isset( $ugms[$group] ) &&
// make sure $oldUGMs and $newUGMs are in the same order, and serialise
// each UGM object to a simplified array
- $oldUGMs = array_map( function( $group ) use ( $oldUGMs ) {
+ $oldUGMs = array_map( function ( $group ) use ( $oldUGMs ) {
return isset( $oldUGMs[$group] ) ?
self::serialiseUgmForLog( $oldUGMs[$group] ) :
null;
}, $oldGroups );
- $newUGMs = array_map( function( $group ) use ( $newUGMs ) {
+ $newUGMs = array_map( function ( $group ) use ( $newUGMs ) {
return isset( $newUGMs[$group] ) ?
self::serialiseUgmForLog( $newUGMs[$group] ) :
null;
// in their proper section
continue;
}
- $authors = array_map( function( $arr ) {
+ $authors = array_map( function ( $arr ) {
// If a homepage is set, link to it
if ( isset( $arr['homepage'] ) ) {
return "[{$arr['homepage']} {$arr['name']}]";
$bad = array_uintersect_assoc(
$this->allowedHtmlElements,
BalanceSets::$unsupportedSet[BalanceSets::HTML_NAMESPACE],
- function( $a, $b ) {
+ function ( $a, $b ) {
// Ignore the values (just intersect the keys) by saying
// all values are equal to each other.
return 0;
$cache->delete( $key, 1 );
} else {
wfGetDB( DB_MASTER )->onTransactionPreCommitOrIdle(
- function() use ( $cache, $key ) {
+ function () use ( $cache, $key ) {
$cache->delete( $key );
},
__METHOD__
}
// Try to update the DB post-send and only if needed...
- DeferredUpdates::addCallableUpdate( function() use ( $title, $oldid ) {
+ DeferredUpdates::addCallableUpdate( function () use ( $title, $oldid ) {
if ( !$this->getNewtalk() ) {
return; // no notifications to clear
}
$this->reader = $reader;
$this->writer = $writer;
$this->generator = $generator;
- $this->output = function() {
+ $this->output = function () {
}; // nop
}
"specialpage-securitylevel-not-allowed-title": "Не дазволена",
"specialpage-securitylevel-not-allowed": "Выбачайце, вам не дазволена выкарыстоўваць гэтую старонку, бо вашая асоба ня можа быць пацьверджаная.",
"authpage-cannot-login": "Не атрымалася пачаць уваход у сыстэму.",
+ "authpage-cannot-login-continue": "Немагчыма працягнуць уваход у сыстэму. Падобна, што тэрмін вашай сэсіі скончыўся.",
"changecredentials": "Зьмена ўліковых зьвестак",
"removecredentials": "Выдаленьне ўліковых зьвестак",
"removecredentials-submit": "Выдаліць уліковыя зьвесткі",
"apisandbox-submit": "Направи запитване",
"apisandbox-reset": "Изчистване",
"apisandbox-retry": "Повторен опит",
- "apisandbox-loading": "Зареждане на информация за API-модул \"$1\"...",
- "apisandbox-load-error": "Възникна грешка при зареждането на информация за API-модул \"$1\": $2",
+ "apisandbox-loading": "Зареждане на информация за API-модул „$1“...",
+ "apisandbox-load-error": "Възникна грешка при зареждането на информация за API-модул „$1“: $2",
"apisandbox-no-parameters": "Този API-модул няма параметри.",
"apisandbox-helpurls": "Връзки за помощ",
"apisandbox-examples": "Примери",
"apisandbox-dynamic-parameters": "Допълнителни параметри",
"apisandbox-dynamic-parameters-add-label": "Добавяне на параметър:",
"apisandbox-dynamic-parameters-add-placeholder": "Име на параметъра",
- "apisandbox-dynamic-error-exists": "Параметър с име \"$1\" вече съществува.",
+ "apisandbox-dynamic-error-exists": "Параметър с име „$1“ вече съществува.",
"apisandbox-results": "Резултати",
"apisandbox-request-url-label": "URL-адрес на заявката:",
"apisandbox-continue": "Продължаване",
"logempty": "Дневникът не съдържа записи, отговарящи на избрания критерий.",
"log-title-wildcard": "Търсене на заглавия, започващи със",
"showhideselectedlogentries": "Промяна на видимостта на избраните записи",
- "checkbox-select": "Ð\98збеÑ\80и: $1",
+ "checkbox-select": "Ð\98збоÑ\80: $1",
"checkbox-all": "Всички",
- "checkbox-none": "никои",
- "checkbox-invert": "обÑ\8aÑ\80ни избора",
+ "checkbox-none": "Ð\9dикои",
+ "checkbox-invert": "Ð\9eбÑ\80Ñ\8aÑ\89ане на избора",
"allpages": "Всички страници",
"nextpage": "Следваща страница ($1)",
"prevpage": "Предходна страница ($1)",
"watchlistanontext": "За преглеждане и редактиране на списъка за наблюдение се изисква влизане в системата.",
"watchnologin": "Не сте влезли",
"addwatch": "Добавяне към списъка за наблюдение",
- "addedwatchtext": "Страницата „'''[[:$1]]'''“ и беседата ѝ бяха добавени към [[Special:Watchlist|списъка Ви за наблюдение]].",
+ "addedwatchtext": "Страницата „[[:$1]]“ и беседата ѝ бяха добавени към [[Special:Watchlist|списъка Ви за наблюдение]].",
"addedwatchtext-short": "Страницата „$1“ беше добавена към списъка Ви за наблюдение.",
"removewatch": "Премахване от списъка за наблюдение",
"removedwatchtext": "Страницата „[[:$1]]“ и беседата ѝ бяха премахнати от [[Special:Watchlist|списъка Ви за наблюдение]].",
"watchlist-details": "{{PLURAL:$1|Една наблюдавана страница|$1 наблюдавани страници}} от списъка Ви за наблюдение (без беседи).",
"wlheader-enotif": "Известяването по е-поща е включено.",
"wlheader-showupdated": "Страниците, които са били променени след последния път, когато сте ги посетили, са показани в '''получер'''.",
- "wlnote": "{{PLURAL:$1|Показана е последната промяна|Показани са последните '''$1''' промени}} през {{PLURAL:$2|последния час|последните '''$2''' часа}}, започвайки от от $3, $4.",
+ "wlnote": "{{PLURAL:$1|Показана е последната промяна|Показани са последните <strong>$1</strong> промени}} през {{PLURAL:$2|последния час|последните <strong>$2</strong> часа}}, започвайки от от $3, $4.",
"wlshowlast": "Показване на последните $1 часа $2 дни",
"watchlist-hide": "Скриване",
"watchlist-submit": "Показване",
"alreadyrolled": "Редакцията на [[:$1]], направена от [[User:$2|$2]] ([[User talk:$2|Беседа]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]), не може да бъде отменена. Някой друг вече е редактирал страницата или е отменил промените.\n\nПоследната редакция е на [[User:$3|$3]] ([[User talk:$3|Беседа]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
"editcomment": "Резюмето на редакцията беше: <em>$1</em>.",
"revertpage": "Премахване на [[Special:Contributions/$2|редакции на $2]] ([[User talk:$2|беседа]]); възвръщане към последната версия на [[User:$1|$1]]",
- "revertpage-nouser": "Ð\9fÑ\80емаÑ\85наÑ\82и Ñ\80едакÑ\86ии на (Ñ\81кÑ\80иÑ\82о поÑ\82Ñ\80ебиÑ\82елÑ\81ко име) и вÑ\80Ñ\8aÑ\89ане кÑ\8aм последната версия на [[User:$1|$1]]",
+ "revertpage-nouser": "Ð\92Ñ\80Ñ\8aÑ\89ане на Ñ\80едакÑ\86ии на Ñ\81кÑ\80иÑ\82 поÑ\82Ñ\80ебиÑ\82ел до последната версия на [[User:$1|$1]]",
"rollback-success": "Отменени редакции на {{GENDER:$3|$1}};\nвъзвръщане към последната версия на {{GENDER:$4|$2}}.",
"sessionfailure-title": "Прекъсната сесия",
"sessionfailure": "Изглежда има проблем със сесията ви; действието беше отказано като предпазна мярка срещу крадене на сесията. Натиснете бутона за връщане на браузъра, презаредете страницата, от която сте дошли, и опитайте отново.",
"changecontentmodel-model-label": "Нов модел на съдържанието",
"changecontentmodel-reason-label": "Причина:",
"changecontentmodel-submit": "Променяне",
- "changecontentmodel-success-title": "Моделът на съдържание бе променен",
+ "changecontentmodel-success-title": "Моделът на съдържанието беше променен",
"changecontentmodel-success-text": "Типът на съдържанието на [[:$1]] е успешно променен.",
"log-name-contentmodel": "Дневник на промените на модела на съдържанието",
"log-description-contentmodel": "Страницата показва промените в модела на съдържанието на страниците и страниците, създадени с модел на съдържанието различен от този по подразбиране.",
"ipaddressorusername": "IP-адрес или потребител:",
"ipbexpiry": "Срок:",
"ipbreason": "Причина:",
- "ipbreason-dropdown": "* Общи причини за блокиране\n** Въвеждане на невярна информация\n** Премахване на съдържание от страниците\n** Добавяне на спам/нежелани външни препратки\n** Въвеждане на безсмислици в страниците\n** Заплашително поведение/тормоз\n** Злупотреба с няколко потребителски сметки\n** Неприемливо потребителско име",
+ "ipbreason-dropdown": "* Общи причини за блокиране\n** Въвеждане на невярна информация\n** Премахване на съдържание от страниците\n** Добавяне на спам/нежелани външни препратки\n** Въвеждане на безсмислици в страниците\n** Заплашително поведение/тормоз\n** Злоупотреба с няколко потребителски сметки\n** Неприемливо потребителско име",
"ipb-hardblock": "Спиране на възможността влезли потребители да редактират от този IP адрес",
"ipbcreateaccount": "Забрана за създаване на потребителски сметки",
"ipbemailban": "Забрана на потребителя да праща е-поща",
"cant-move-category-page": "Нямате необходимите права за преместване на страници на категории.",
"cant-move-to-category-page": "Нямате необходимите права за преместване на страница в страница на категория.",
"cant-move-subpages": "Нямате права за преместване на подстраници.",
- "namespace-nosubpages": "Именно пространство \"$1\" не позволява подстраници.",
+ "namespace-nosubpages": "Именно пространство „$1“ не позволява подстраници.",
"newtitle": "Ново заглавие:",
"move-watch": "Наблюдаване на страницата",
"movepagebtn": "Преместване",
"recentchanges-legend-plusminus": "(''±123'')",
"recentchanges-submit": "Zobrazit",
"rcfilters-activefilters": "Aktivní filtry",
+ "rcfilters-advancedfilters": "Pokročilé filtry",
"rcfilters-quickfilters": "Uložená nastavení filtrů",
"rcfilters-quickfilters-placeholder-title": "Zatím neuloženy žádné odkazy",
"rcfilters-quickfilters-placeholder-description": "Pokud chcete uložit svá nastavení filtrů a použít je později, klikněte na ikonku záložky v ploše aktivních filtrů níže.",
"logentry-import-upload-details": "$1 {{GENDER:$2|importó}} $3 subiendo un archivo ($4 {{PLURAL:$4|revisión|revisiones}})",
"logentry-import-interwiki": "$1 {{GENDER:$2|importó}} $3 desde otro wiki",
"logentry-import-interwiki-details": "$1 {{GENDER:$2|importó}} $3 desde $5 ($4 {{PLURAL:$4|revisión|revisiones}})",
- "logentry-merge-merge": "$1 {{GENDER:$2|merged}} $3 en $4 (revisiones hasta el $5)",
+ "logentry-merge-merge": "$1 {{GENDER:$2|fusionó}} $3 en $4 (revisiones hasta el $5)",
"logentry-move-move": "$1 {{GENDER:$2|trasladó}} la página $3 a $4",
"logentry-move-move-noredirect": "$1 {{GENDER:$2|trasladó}} la página $3 a $4 sin dejar una redirección",
"logentry-move-move_redir": "$1 {{GENDER:$2|trasladó}} la página $3 a $4 sobre una redirección",
"Gorkaazk",
"Vriullop",
"Osoitz",
- "Mikel Ibaiba"
+ "Mikel Ibaiba",
+ "MarcoAurelio"
]
},
"tog-underline": "Azpimarratu loturak:",
"rollbacklinkcount-morethan": "desegin {{PLURAL:$1|edizio bat|$1 edizio}} baino gehiago",
"rollbackfailed": "Desegiteak huts egin dud",
"cantrollback": "Ezin da aldaketa desegin; erabiltzaile bakarrak hartu du parte.",
- "alreadyrolled": "Ezin da [[User:$2|$2]] ([[User talk:$2|Eztabaida]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) wikilariak «[[$1]]» orrian egindako azken aldaketa desegin;\nbeste norbaitek editatu edo desegin du jadanik.\n\n Azken aldaketa [[User:$3|$3]] ([[User talk:$3|Eztabaida]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) wikilariak egin du.",
+ "alreadyrolled": "Ezin da [[User:$2|$2]] ([[User talk:$2|eztabaida]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) wikilariak «[[:$1]]» orrian egindako azken aldaketa desegin;\nbeste norbaitek editatu edo desegin du jadanik.\n\nAzken aldaketa [[User:$3|$3]] ([[User talk:$3|eztabaida]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) wikilariak egin du.",
"editcomment": "Aldaketaren laburpena: <em>$1</em>.",
"revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) wikilariaren aldaketak deseginda, edukia [[User:$1|$1]] wikilariaren azken bertsiora itzuli da.",
"rollback-success": "$1 wikilariaren aldaketak deseginda,\nedukia $2 wikilariaren azken bertsiora itzuli da.",
"recentchanges-label-minor": "זוהי עריכה משנית",
"recentchanges-label-bot": "עריכה זו בוצעה על־ידי בוט",
"recentchanges-label-unpatrolled": "עריכה זו טרם נבדקה",
- "recentchanges-label-plusminus": "×\92×\95×\93×\9c ×\94×\93×£ ×\94×©×ª× ×\94 ×\91×\9eספר ×\9b×\96×\94 ש×\9c ×\91ת×\99×\9d",
+ "recentchanges-label-plusminus": "גודל הדף השתנה במספר זה של בתים",
"recentchanges-legend-heading": "<strong>מקרא:</strong>",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ({{GENDER:|ראה|ראי|ראו}} גם את [[Special:NewPages|רשימת הדפים החדשים]])",
"recentchanges-legend-plusminus": "(<em>±123</em>)",
"backend-fail-closetemp": "לא הייתה אפשרות לסגור את הקובץ הזמני.",
"backend-fail-read": "לא ניתן היה לקרוא את הקובץ \"$1\".",
"backend-fail-create": "לא ניתן היה לכתוב את הקובץ \"$1\".",
- "backend-fail-maxsize": "×\9c×\90 × ×\99ת×\9f ×\94×\99×\94 ×\9c×\9bת×\95×\91 ×\90ת ×\94ק×\95×\91×¥ \"$1\" ×\9b×\99 ×\94×\95×\90 ×\92×\93×\95×\9c {{PLURAL:$2|×\9e×\91×\99×\99ת ×\90×\97×\93|×\9eÖ¾$2 ×\91ת×\99×\9d}}.",
+ "backend-fail-maxsize": "לא ניתן היה לכתוב את הקובץ \"$1\" כי הוא גדול {{PLURAL:$2|מבית אחד|מ־$2 בתים}}.",
"backend-fail-readonly": "מאגר האחסון לקבצים \"$1\" הוא כרגע במצב קריאה בלבד. הסיבה שניתנה לכך היא: <em>$2</em>",
"backend-fail-synced": "הקובץ \"$1\" נמצא במצב לא עקבי בתוך מאגרי אחסון הקבצים הפנימיים",
"backend-fail-connect": "לא ניתן היה להתחבר למאגר אחסון הקבצים הפנימי \"$1\".",
"exif-compression-4": "CCITT Grupa 4 faks kodiranje",
"exif-copyrighted-true": "Zaštićeno autorskim pravom",
"exif-copyrighted-false": "Status autorskih prava nije postavljen",
- "exif-unknowndate": "Datum nepoznat",
+ "exif-unknowndate": "nepoznat datum",
"exif-orientation-1": "Normalno",
"exif-orientation-2": "Zrcaljeno po horizontali",
"exif-orientation-3": "Zaokrenuto 180°",
"confirm-unwatch-top": "Ukloni ovu stranicu s popisa praćenja?",
"confirm-rollback-button": "U redu",
"confirm-rollback-top": "Ukloniti uređivanja na ovoj stranici?",
+ "percent": "$1 %",
"quotation-marks": "\"$1\"",
"imgmultipageprev": "← prethodna slika",
"imgmultipagenext": "sljedeća slika →",
"mw-widgets-dateinput-no-date": "कोणताही दिनांक निवडला नाही",
"mw-widgets-titleinput-description-new-page": "अद्याप पान अस्तित्वात नाही",
"mw-widgets-titleinput-description-redirect": "$1ला पुनर्निर्देशित करा",
+ "date-range-from": "या दिनांकापासून:",
+ "date-range-to": "या दिनांकापर्यंत:",
"sessionmanager-tie": "हे एकत्रित करु शकत नाही,बहुविध विनंती अधिप्रमाणन प्रकार:$1",
"sessionprovider-generic": "$1 सत्रे",
"sessionprovider-mediawiki-session-cookiesessionprovider": "कुकी-आधारीत सत्रे",
"search-category": "(kategorien $1)",
"search-suggest": "Meinte du: «$1»",
"search-rewritten": "Viser resultat for $1. Søk i staden etter $2.",
- "search-interwiki-caption": "Systerprosjekt",
+ "search-interwiki-caption": "Resultat frå systerprosjekt",
"search-interwiki-default": "Resultat frå $1:",
"search-interwiki-more": "(meir)",
+ "search-interwiki-more-results": "fleire resultat",
"search-relatedarticle": "Relatert",
"searchrelated": "relatert",
"searchall": "alle",
"action-viewmyprivateinfo": "sjå den private informasjonen din",
"action-editmyprivateinfo": "endra den private informasjonen din",
"nchanges": "{{PLURAL:$1|Éi endring|$1 endringar}}",
+ "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sidan sist vitjing}}",
"enhancedrc-history": "historikk",
"recentchanges": "Siste endringar",
"recentchanges-legend": "Alternativ for siste endringar",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sjå dessutan [[Special:NewPages|lista over nye sider]])",
"recentchanges-submit": "Vis",
"rcfilters-activefilters": "Aktive filter",
+ "rcfilters-advancedfilters": "Avanserte filter",
"rcfilters-quickfilters": "Lagra filterinnstillingar",
"rcfilters-quickfilters-placeholder-title": "Ingen lenkjer er lagra enno",
"rcfilters-quickfilters-placeholder-description": "For å lagra filterinnstillingane dine og bruka dei på nytt seinare, klikk på bokmerkeikonet i området for aktive filter under.",
"rcfilters-filter-user-experience-level-learner-description": "Meir røynsle enn «Nykomarar», men mindre enn «Røynde brukarar».",
"rcfilters-filter-user-experience-level-experienced-label": "Røynde brukarar",
"rcfilters-filter-user-experience-level-experienced-description": "Meir enn 30 dagar med aktivitet og 500 endringar.",
+ "rcfilters-filter-bots-label": "Robot",
"rcfilters-filter-bots-description": "Endringar gjorde med automatiske verktøy.",
"rcfilters-filter-humans-label": "Menneske (ikkje robot)",
"rcfilters-filter-patrolled-description": "Endringar merkte som patruljerte.",
"upload-http-error": "Ein HTTP-feil oppstod: $1",
"upload-copy-upload-invalid-domain": "Kopiopplastingar er ikkje tilgjengelege frå dette domenet.",
"upload-dialog-button-cancel": "Bryt av",
+ "upload-dialog-button-back": "Attende",
+ "upload-dialog-button-save": "Lagra",
+ "upload-dialog-button-upload": "Last opp",
+ "upload-form-label-infoform-title": "Detaljar",
"upload-form-label-infoform-name": "Namn",
"upload-form-label-usage-filename": "Filnamn",
"upload-form-label-infoform-categories": "Kategoriar",
"confirm-watch-top": "Legg denne sida til i overvakingslista di?",
"confirm-unwatch-button": "OK",
"confirm-unwatch-top": "Fjern denne sida frå overvakingslista di?",
+ "confirm-rollback-button": "OK",
"quotation-marks": "«$1»",
"imgmultipageprev": "← førre sida",
"imgmultipagenext": "neste side →",
"recentchanges-legend-plusminus": "(<em>±123</em>)",
"recentchanges-submit": "顯示",
"rcfilters-activefilters": "使用中的過濾條件",
+ "rcfilters-advancedfilters": "進階查詢條件",
"rcfilters-quickfilters": "已儲存的查詢條件設定",
"rcfilters-quickfilters-placeholder-title": "尚未儲存任何連結",
"rcfilters-quickfilters-placeholder-description": "要儲存您的篩選器設定並供以後重新使用,點選下方啟用的篩選器區域之內的書籤圖示。",
"rcfilters-filter-lastrevision-label": "最新版本",
"rcfilters-filter-lastrevision-description": "對頁面最近做的更改。",
"rcfilters-filter-previousrevision-label": "早期版本",
- "rcfilters-view-tags": "標籤",
+ "rcfilters-view-tags": "標記的編輯",
"rcnotefrom": "以下{{PLURAL:$5|為}}自 <strong>$3 $4</strong> 以來的變更 (最多顯示 <strong>$1</strong> 筆)。",
"rclistfromreset": "重設日期選擇",
"rclistfrom": "顯示自 $3 $2 以來的新變更",
$this->addArg( 'path', 'Path to extension.json/skin.json file.', true );
}
public function execute() {
- $validator = new ExtensionJsonValidator( function( $msg ) {
+ $validator = new ExtensionJsonValidator( function ( $msg ) {
$this->error( $msg, 1 );
} );
$validator->checkDependencies();
</properties>
</rule>
<file>.</file>
- <arg name="encoding" value="utf8"/>
+ <arg name="encoding" value="UTF-8"/>
<arg name="extensions" value="php,php5,inc,sample"/>
<rule ref="Generic.Files.LineLength">
<exclude-pattern>*/languages/messages/Messages*.php</exclude-pattern>
* @cfg {string} [view='default'] Name of the display group this group
* is a part of.
* @cfg {string} [title] Group title
+ * @cfg {boolean} [hidden] This group is hidden from the regular menu views
* @cfg {string} [separator='|'] Value separator for 'string_options' groups
* @cfg {boolean} [active] Group is active
* @cfg {boolean} [fullCoverage] This filters in this group collectively cover all results
this.type = config.type || 'send_unselected_if_any';
this.view = config.view || 'default';
this.title = config.title || name;
+ this.hidden = !!config.hidden;
this.separator = config.separator || '|';
this.labelPrefixKey = config.labelPrefixKey;
return item.getParamName();
} )
).join( this.getSeparator() );
+ } else if ( this.getType() === 'single_option' ) {
+ // For this group, the parameter is the group name,
+ // and a single item can be selected, or none at all
+ // The item also must be recognized or none is set as
+ // default
+ model.defaultParams[ this.getName() ] = this.getItemByParamName( groupDefault ) ? groupDefault : '';
}
};
/**
* Respond to filterItem update event
*
+ * @param {mw.rcfilters.dm.FilterItem} item Updated filter item
* @fires update
*/
- mw.rcfilters.dm.FilterGroup.prototype.onFilterItemUpdate = function () {
+ mw.rcfilters.dm.FilterGroup.prototype.onFilterItemUpdate = function ( item ) {
// Update state
- var active = this.areAnySelected();
+ var active = this.areAnySelected(),
+ itemName = item && item.getName();
+
+ if ( item.isSelected() && this.getType() === 'single_option' ) {
+ // Change the selection to only be the newly selected item
+ this.getItems().forEach( function ( filterItem ) {
+ if ( filterItem.getName() !== itemName ) {
+ filterItem.toggleSelected( false );
+ }
+ } );
+ }
if ( this.active !== active ) {
this.active = active;
return this.active;
};
+ /**
+ * Get group hidden state
+ *
+ * @return {boolean} Hidden state
+ */
+ mw.rcfilters.dm.FilterGroup.prototype.isHidden = function () {
+ return this.hidden;
+ };
+
/**
* Get group name
*
areAnySelected = false,
buildFromCurrentState = !filterRepresentation,
result = {},
- filterParamNames = {};
+ model = this,
+ filterParamNames = {},
+ getSelectedParameter = function ( filters ) {
+ var item,
+ selected = [];
+
+ // Find if any are selected
+ $.each( filters, function ( name, value ) {
+ if ( value ) {
+ selected.push( name );
+ }
+ } );
+
+ item = model.getItemByName( selected[ 0 ] );
+ return ( item && item.getParamName() ) || '';
+ };
filterRepresentation = filterRepresentation || {};
result[ this.getName() ] = ( values.length === Object.keys( filterRepresentation ).length ) ?
'all' : values.join( this.getSeparator() );
+ } else if ( this.getType() === 'single_option' ) {
+ result[ this.getName() ] = getSelectedParameter( filterRepresentation );
}
return result;
// Otherwise, the filter is selected only if it appears in the parameter values
paramValues.indexOf( filterItem.getParamName() ) > -1;
} );
+ } else if ( this.getType() === 'single_option' ) {
+ // There is parameter that fits a single filter, or none at all
+ this.getItems().forEach( function ( filterItem ) {
+ result[ filterItem.getName() ] = filterItem.getParamName() === paramRepresentation;
+ } );
}
// Go over result and make sure all filters are represented.
return result;
};
+ /**
+ * Get item by its filter name
+ *
+ * @param {string} filterName Filter name
+ * @return {mw.rcfilters.dm.FilterItem} Filter item
+ */
+ mw.rcfilters.dm.FilterGroup.prototype.getItemByName = function ( filterName ) {
+ return this.getItems().filter( function ( item ) {
+ return item.getName() === filterName;
+ } )[ 0 ];
+ };
+
/**
* Get item by its parameter name
*
// Collect views
allViews = {
'default': {
- label: mw.msg( 'rcfilters-filterlist-title' ),
+ title: mw.msg( 'rcfilters-filterlist-title' ),
groups: filterGroups
}
};
viewData.groups.forEach( function ( groupData ) {
var group = groupData.name;
- model.groups[ group ] = new mw.rcfilters.dm.FilterGroup(
- group,
- $.extend( true, {}, groupData, { view: viewName } )
- );
+ if ( !model.groups[ group ] ) {
+ model.groups[ group ] = new mw.rcfilters.dm.FilterGroup(
+ group,
+ $.extend( true, {}, groupData, { view: viewName } )
+ );
+ }
model.groups[ group ].initializeFilters( groupData.filters, groupData.default );
items = items.concat( model.groups[ group ].getItems() );
groupModel.getItems().forEach( function ( filterItem ) {
model.parameterMap[ filterItem.getParamName() ] = filterItem;
} );
- } else if ( groupModel.getType() === 'string_options' ) {
+ } else if (
+ groupModel.getType() === 'string_options' ||
+ groupModel.getType() === 'single_option'
+ ) {
// Group
model.parameterMap[ groupModel.getName() ] = groupModel;
}
/**
* Get the label for the current view
*
+ * @param {string} viewName View name
* @return {string} Label for the current view
*/
- mw.rcfilters.dm.FiltersViewModel.prototype.getCurrentViewLabel = function () {
- return this.views[ this.getCurrentView() ].title;
+ mw.rcfilters.dm.FiltersViewModel.prototype.getViewTitle = function ( viewName ) {
+ viewName = viewName || this.getCurrentView();
+
+ return this.views[ viewName ] && this.views[ viewName ].title;
};
/**
.mw-rcfilters-ui-filterMenuOptionWidget {
&.oo-ui-flaggedElement-muted {
- background-color: #f8f9fa; // Base90 AAA
+ &:not( .oo-ui-optionWidget-selected ) {
+ // Namespaces are muted 'the other way around' when they
+ // are also inverted, so if they are also selected, we
+ // should make sure the selected background is shown rather
+ // than the muted one
+ background-color: #f8f9fa; // Base90 AAA
+ }
.mw-rcfilters-ui-itemMenuOptionWidget-label-title,
.mw-rcfilters-ui-itemMenuOptionWidget-label-desc {
mw.rcfilters.ui.FilterMenuHeaderWidget.prototype.onModelUpdate = function () {
var currentView = this.model.getCurrentView();
- this.setLabel( this.model.getCurrentViewLabel() );
+ this.setLabel( this.model.getViewTitle( currentView ) );
this.invertNamespacesButton.toggle( currentView === 'namespaces' );
this.backButton.toggle( currentView !== 'default' );
* Set the current muted view of the widget based on its state
*/
mw.rcfilters.ui.FilterMenuOptionWidget.prototype.setCurrentMuteState = function () {
- this.setFlags( {
- muted: (
- this.model.isConflicted() ||
- (
- // Item is also muted when any of the items in its group is active
- this.model.getGroupModel().isActive() &&
- // But it isn't selected
- !this.model.isSelected() &&
- // And also not included
- !this.model.isIncluded()
+ if (
+ this.model.getGroupModel().getView() === 'namespaces' &&
+ this.model.isInverted()
+ ) {
+ // This is an inverted behavior than the other rules, specifically
+ // for inverted namespaces
+ this.setFlags( {
+ muted: this.model.isSelected()
+ } );
+ } else {
+ this.setFlags( {
+ muted: (
+ this.model.isConflicted() ||
+ (
+ // Item is also muted when any of the items in its group is active
+ this.model.getGroupModel().isActive() &&
+ // But it isn't selected
+ !this.model.isSelected() &&
+ // And also not included
+ !this.model.isIncluded()
+ )
)
- )
- } );
+ } );
+ }
};
}( mediaWiki ) );
footers: [
{
name: 'viewSelect',
+ sticky: false,
// View select menu, appears on default view only
$element: $( '<div>' )
.append( new mw.rcfilters.ui.ViewSwitchWidget( this.controller, this.model ).$element ),
menuOption = this.menu.getItemFromModel( tagItem.getModel() ),
oldInputValue = this.input.getValue();
+ this.menu.setUserSelecting( true );
+
// Reset input
this.input.setValue( '' );
// user filtered the results
this.getMenu().once(
'itemVisibilityChange',
- function () { widget.scrollToTop( menuOption.$element ); }
+ function () {
+ widget.scrollToTop( menuOption.$element );
+ widget.menu.setUserSelecting( false );
+ }
);
} else {
this.scrollToTop( menuOption.$element );
+ this.menu.setUserSelecting( false );
}
+
};
/**
this.$element.find( '.mw-tagfilter-label' ).closest( 'tr' ).detach();
}
+ if ( !this.$element.find( '.mw-recentchanges-table tr' ).length ) {
+ this.$element.find( 'hr' ).detach();
+ }
+
// Collapse legend
// see resources/src/mediawiki.special/mediawiki.special.changelist.legend.js
this.$element.find( '.mw-changeslist-legend' )
this.model = model;
this.currentView = '';
this.views = {};
+ this.userSelecting = false;
this.inputValue = '';
this.$overlay = config.$overlay || this.$element;
// based on view
config.footers = config.footers || [];
config.footers.forEach( function ( footerData ) {
- var adjustedData = {
- // Wrap the element with our own footer wrapper
- $element: $( '<div>' )
- .addClass( 'mw-rcfilters-ui-menuSelectWidget-footer' )
- .addClass( 'mw-rcfilters-ui-menuSelectWidget-footer-' + footerData.name )
- .append( footerData.$element ),
- views: footerData.views
- };
+ var isSticky = footerData.sticky === undefined ? true : !!footerData.sticky,
+ adjustedData = {
+ // Wrap the element with our own footer wrapper
+ $element: $( '<div>' )
+ .addClass( 'mw-rcfilters-ui-menuSelectWidget-footer' )
+ .addClass( 'mw-rcfilters-ui-menuSelectWidget-footer-' + footerData.name )
+ .append( footerData.$element ),
+ views: footerData.views
+ };
this.footers.push( adjustedData );
- this.$element.append( adjustedData.$element );
+
+ if ( isSticky ) {
+ this.$element.append( adjustedData.$element );
+ } else {
+ this.$body.append( adjustedData.$element );
+ }
}.bind( this ) );
// Switch to the correct view
// Count groups per view
$.each( groups, function ( groupName, groupModel ) {
- viewGroupCount[ groupModel.getView() ] = viewGroupCount[ groupModel.getView() ] || 0;
- viewGroupCount[ groupModel.getView() ]++;
+ if ( !groupModel.isHidden() ) {
+ viewGroupCount[ groupModel.getView() ] = viewGroupCount[ groupModel.getView() ] || 0;
+ viewGroupCount[ groupModel.getView() ]++;
+ }
} );
$.each( groups, function ( groupName, groupModel ) {
var currentItems = [],
view = groupModel.getView();
- if ( viewGroupCount[ view ] > 1 ) {
- // Only add a section header if there is more than
- // one group
- currentItems.push(
- // Group section
- new mw.rcfilters.ui.FilterMenuSectionOptionWidget(
- widget.controller,
- groupModel,
- {
- $overlay: widget.$overlay
- }
- )
- );
- }
+ if ( !groupModel.isHidden() ) {
+ if ( viewGroupCount[ view ] > 1 ) {
+ // Only add a section header if there is more than
+ // one group
+ currentItems.push(
+ // Group section
+ new mw.rcfilters.ui.FilterMenuSectionOptionWidget(
+ widget.controller,
+ groupModel,
+ {
+ $overlay: widget.$overlay
+ }
+ )
+ );
+ }
- // Add items
- widget.model.getGroupFilters( groupName ).forEach( function ( filterItem ) {
- currentItems.push(
- new mw.rcfilters.ui.FilterMenuOptionWidget(
- widget.controller,
- filterItem,
- {
- $overlay: widget.$overlay
- }
- )
- );
- } );
-
- // Cache the items per view, so we can switch between them
- // without rebuilding the widgets each time
- widget.views[ view ] = widget.views[ view ] || [];
- widget.views[ view ] = widget.views[ view ].concat( currentItems );
+ // Add items
+ widget.model.getGroupFilters( groupName ).forEach( function ( filterItem ) {
+ currentItems.push(
+ new mw.rcfilters.ui.FilterMenuOptionWidget(
+ widget.controller,
+ filterItem,
+ {
+ $overlay: widget.$overlay
+ }
+ )
+ );
+ } );
+
+ // Cache the items per view, so we can switch between them
+ // without rebuilding the widgets each time
+ widget.views[ view ] = widget.views[ view ] || [];
+ widget.views[ view ] = widget.views[ view ].concat( currentItems );
+ }
} );
this.switchView( this.model.getCurrentView() );
// Since the method hides/shows items, we don't want to
// call it unless the input actually changed
- if ( this.inputValue !== inputVal ) {
+ if (
+ !this.userSelecting &&
+ this.inputValue !== inputVal
+ ) {
// Parent method
mw.rcfilters.ui.MenuSelectWidget.parent.prototype.updateItemVisibility.call( this );
mw.rcfilters.ui.MenuSelectWidget.prototype.scrollToTop = function () {
this.$body.scrollTop( 0 );
};
+
+ /**
+ * Set whether the user is currently selecting an item.
+ * This is important when the user selects an item that is in between
+ * different views, and makes sure we do not re-select a different
+ * item (like the item on top) when this is happening.
+ *
+ * @param {boolean} isSelecting User is selecting
+ */
+ mw.rcfilters.ui.MenuSelectWidget.prototype.setUserSelecting = function ( isSelecting ) {
+ this.userSelecting = !!isSelecting;
+ };
}( mediaWiki ) );
*/
Title.exists = function ( title ) {
var match,
- type = $.type( title ),
obj = Title.exist.pages;
- if ( type === 'string' ) {
+ if ( typeof title === 'string' ) {
match = obj[ title ];
- } else if ( type === 'object' && title instanceof Title ) {
+ } else if ( title instanceof Title ) {
match = obj[ title.toString() ];
} else {
throw new Error( 'mw.Title.exists: title must be a string or an instance of Title' );
}
- if ( typeof match === 'boolean' ) {
- return match;
+ if ( typeof match !== 'boolean' ) {
+ return null;
}
- return null;
+ return match;
};
/**
@import 'mediawiki.ui/variables';
+// Increase the area of the button, so that the user can move the mouse cursor
+// to the popup without the popup disappearing. (T157544)
+.mediawiki-filewarning-anchor {
+ padding-bottom: 10px;
+ margin-bottom: -10px;
+}
+
.mediawiki-filewarning {
visibility: hidden;
'name' => 'nullLockManager',
'class' => 'NullLockManager',
] ];
- $reset = function() {
+ $reset = function () {
LockManagerGroup::destroySingletons();
};
$setup[] = $reset;
MediaWikiServices::getInstance()->disableService( 'MediaHandlerFactory' );
MediaWikiServices::getInstance()->redefineService(
'MediaHandlerFactory',
- function() {
+ function () {
return new MockMediaHandlerFactory();
}
);
* @return ScopedCallback
*/
protected function createTeardownObject( $teardown, $nextTeardown = null ) {
- return new ScopedCallback( function() use ( $teardown, $nextTeardown ) {
+ return new ScopedCallback( function () use ( $teardown, $nextTeardown ) {
// Schedule teardown snippets in reverse order
$teardown = array_reverse( $teardown );
ConfigFactory $oldFactory,
array $configurations
) {
- return function( MediaWikiServices $services ) use ( $oldFactory, $configurations ) {
+ return function ( MediaWikiServices $services ) use ( $oldFactory, $configurations ) {
$factory = new ConfigFactory();
// clone configurations from $oldFactory that are not overwritten by $configurations
class WfArrayFilterTest extends \PHPUnit_Framework_TestCase {
public function testWfArrayFilter() {
$arr = [ 'a' => 1, 'b' => 2, 'c' => 3 ];
- $filtered = wfArrayFilter( $arr, function( $val, $key ) {
+ $filtered = wfArrayFilter( $arr, function ( $val, $key ) {
return $key !== 'b';
} );
$this->assertSame( [ 'a' => 1, 'c' => 3 ], $filtered );
$arr = [ 'a' => 1, 'b' => 2, 'c' => 3 ];
- $filtered = wfArrayFilter( $arr, function( $val, $key ) {
+ $filtered = wfArrayFilter( $arr, function ( $val, $key ) {
return $val !== 2;
} );
$this->assertSame( [ 'a' => 1, 'c' => 3 ], $filtered );
$arr = [ 'a', 'b', 'c' ];
- $filtered = wfArrayFilter( $arr, function( $val, $key ) {
+ $filtered = wfArrayFilter( $arr, function ( $val, $key ) {
return $key !== 0;
} );
$this->assertSame( [ 1 => 'b', 2 => 'c' ], $filtered );
public function testWfArrayFilterByKey() {
$arr = [ 'a' => 1, 'b' => 2, 'c' => 3 ];
- $filtered = wfArrayFilterByKey( $arr, function( $key ) {
+ $filtered = wfArrayFilterByKey( $arr, function ( $key ) {
return $key !== 'b';
} );
$this->assertSame( [ 'a' => 1, 'c' => 3 ], $filtered );
$arr = [ 'a', 'b', 'c' ];
- $filtered = wfArrayFilterByKey( $arr, function( $key ) {
+ $filtered = wfArrayFilterByKey( $arr, function ( $key ) {
return $key !== 0;
} );
$this->assertSame( [ 1 => 'b', 2 => 'c' ], $filtered );
return [
// Override $html
[
- function( $dummy, $title, $options, &$html, &$attribs, &$ret ) {
+ function ( $dummy, $title, $options, &$html, &$attribs, &$ret ) {
$html = 'foobar';
},
'<a href="/wiki/Special:BlankPage" title="Special:BlankPage">foobar</a>'
],
// Modify $attribs
[
- function( $dummy, $title, $options, &$html, &$attribs, &$ret ) {
+ function ( $dummy, $title, $options, &$html, &$attribs, &$ret ) {
$attribs['bar'] = 'baz';
},
'<a href="/wiki/Special:BlankPage" title="Special:BlankPage" bar="baz">Special:BlankPage</a>'
],
// Fully override return value and abort hook
[
- function( $dummy, $title, $options, &$html, &$attribs, &$ret ) {
+ function ( $dummy, $title, $options, &$html, &$attribs, &$ret ) {
$ret = 'blahblahblah';
return false;
},
$newServices->defineService(
'Test',
- function() use ( $service1 ) {
+ function () use ( $service1 ) {
return $service1;
}
);
$newServices->defineService(
'Test',
- function() use ( &$instantiatorReturnValues ) {
+ function () use ( &$instantiatorReturnValues ) {
return array_shift( $instantiatorReturnValues );
}
);
$newServices->redefineService(
'DBLoadBalancerFactory',
- function() use ( $lbFactory ) {
+ function () use ( $lbFactory ) {
return $lbFactory;
}
);
$newServices->defineService(
'Test',
- function() use ( &$instantiatorReturnValues ) {
+ function () use ( &$instantiatorReturnValues ) {
return array_shift( $instantiatorReturnValues );
}
);
$services->defineService(
'Test',
- function() use ( &$serviceCounter ) {
+ function () use ( &$serviceCounter ) {
$serviceCounter++;
$service = $this->createMock( 'MediaWiki\Services\DestructibleService' );
$service->expects( $this->once() )->method( 'destroy' );
$services->defineService(
'Test',
- function() {
+ function () {
$service = $this->createMock( 'MediaWiki\Services\DestructibleService' );
$service->expects( $this->never() )->method( 'destroy' );
return $service;
$this->assertEmpty( $names );
$name = 'TestService92834576';
- $services->defineService( $name, function() {
+ $services->defineService( $name, function () {
return null;
} );
$name = 'TestService92834576';
$this->assertFalse( $services->hasService( $name ) );
- $services->defineService( $name, function() {
+ $services->defineService( $name, function () {
return null;
} );
$services->defineService(
$name,
- function( $actualLocator, $extra ) use ( $services, $theService, &$count ) {
+ function ( $actualLocator, $extra ) use ( $services, $theService, &$count ) {
$count++;
PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
PHPUnit_Framework_Assert::assertSame( $extra, 'Foo' );
$services->defineService(
'Foo',
- function() {
+ function () {
return new stdClass();
}
);
$services->defineService(
'Bar',
- function() {
+ function () {
return new stdClass();
}
);
$theService = new stdClass();
$name = 'TestService92834576';
- $services->defineService( $name, function( $actualLocator ) use ( $services, $theService ) {
+ $services->defineService( $name, function ( $actualLocator ) use ( $services, $theService ) {
PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
return $theService;
} );
$theService = new stdClass();
$name = 'TestService92834576';
- $services->defineService( $name, function() use ( $theService ) {
+ $services->defineService( $name, function () use ( $theService ) {
return $theService;
} );
$this->setExpectedException( 'MediaWiki\Services\ServiceAlreadyDefinedException' );
- $services->defineService( $name, function() use ( $theService ) {
+ $services->defineService( $name, function () use ( $theService ) {
return $theService;
} );
}
$services = $this->newServiceContainer();
$wiring = [
- 'Foo' => function() {
+ 'Foo' => function () {
return 'Foo!';
},
- 'Bar' => function() {
+ 'Bar' => function () {
return 'Bar!';
},
];
$services = $this->newServiceContainer();
$wiring = [
- 'Foo' => function() {
+ 'Foo' => function () {
return 'Foo!';
},
- 'Bar' => function() {
+ 'Bar' => function () {
return 'Bar!';
},
- 'Car' => function() {
+ 'Car' => function () {
return 'FUBAR!';
},
];
// define a service before importing, so we can later check that
// existing service instances survive importWiring()
- $newServices->defineService( 'Car', function() {
+ $newServices->defineService( 'Car', function () {
return 'Car!';
} );
// Define another service, so we can later check that extra wiring
// is not lost.
- $newServices->defineService( 'Xar', function() {
+ $newServices->defineService( 'Xar', function () {
return 'Xar!';
} );
$theService1 = new stdClass();
$name = 'TestService92834576';
- $services->defineService( $name, function() {
+ $services->defineService( $name, function () {
PHPUnit_Framework_Assert::fail(
'The original instantiator function should not get called'
);
// redefine before instantiation
$services->redefineService(
$name,
- function( $actualLocator, $extra ) use ( $services, $theService1 ) {
+ function ( $actualLocator, $extra ) use ( $services, $theService1 ) {
PHPUnit_Framework_Assert::assertSame( $services, $actualLocator );
PHPUnit_Framework_Assert::assertSame( 'Foo', $extra );
return $theService1;
$theService1 = new stdClass();
$name = 'TestService92834576';
- $services->defineService( $name, function() {
+ $services->defineService( $name, function () {
return 'Foo';
} );
// disable the service. we should be able to redefine it anyway.
$services->disableService( $name );
- $services->redefineService( $name, function() use ( $theService1 ) {
+ $services->redefineService( $name, function () use ( $theService1 ) {
return $theService1;
} );
$this->setExpectedException( 'MediaWiki\Services\NoSuchServiceException' );
- $services->redefineService( $name, function() use ( $theService ) {
+ $services->redefineService( $name, function () use ( $theService ) {
return $theService;
} );
}
$theService = new stdClass();
$name = 'TestService92834576';
- $services->defineService( $name, function() {
+ $services->defineService( $name, function () {
return 'Foo';
} );
$this->setExpectedException( 'MediaWiki\Services\CannotReplaceActiveServiceException' );
- $services->redefineService( $name, function() use ( $theService ) {
+ $services->redefineService( $name, function () use ( $theService ) {
return $theService;
} );
}
$destructible->expects( $this->once() )
->method( 'destroy' );
- $services->defineService( 'Foo', function() use ( $destructible ) {
+ $services->defineService( 'Foo', function () use ( $destructible ) {
return $destructible;
} );
- $services->defineService( 'Bar', function() {
+ $services->defineService( 'Bar', function () {
return new stdClass();
} );
- $services->defineService( 'Qux', function() {
+ $services->defineService( 'Qux', function () {
return new stdClass();
} );
$this->setExpectedException( 'MediaWiki\Services\NoSuchServiceException' );
- $services->redefineService( $name, function() use ( $theService ) {
+ $services->redefineService( $name, function () use ( $theService ) {
return $theService;
} );
}
$destructible->expects( $this->once() )
->method( 'destroy' );
- $services->defineService( 'Foo', function() use ( $destructible ) {
+ $services->defineService( 'Foo', function () use ( $destructible ) {
return $destructible;
} );
- $services->defineService( 'Bar', function() {
+ $services->defineService( 'Bar', function () {
return new stdClass();
} );
*/
return [
- 'Foo' => function() {
+ 'Foo' => function () {
return 'Foo!';
},
];
*/
return [
- 'Bar' => function() {
+ 'Bar' => function () {
return 'Bar!';
},
];
/**
* Testing logger
*
- * Copyright (C) 2015 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright (C) 2015 Wikimedia Foundation and contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* http://www.gnu.org/copyleft/gpl.html
*
* @file
- * @author Brad Jorsch <bjorsch@wikimedia.org>
*/
use Psr\Log\LogLevel;
$this->isType( 'array' ),
$this->isType( 'int' )
)
- ->will( $this->returnCallback( function( $a, $conj ) {
+ ->will( $this->returnCallback( function ( $a, $conj ) {
$sqlConj = $conj === LIST_AND ? ' AND ' : ' OR ';
- return join( $sqlConj, array_map( function( $s ) {
+ return join( $sqlConj, array_map( function ( $s ) {
return '(' . $s . ')';
}, $a
) );
$mock->expects( $this->any() )
->method( 'addQuotes' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return "'$value'";
} ) );
$mock->expects( $this->any() )
->method( 'bitAnd' )
- ->willReturnCallback( function( $a, $b ) {
+ ->willReturnCallback( function ( $a, $b ) {
return "($a & $b)";
} );
$mock->expects( $this->any() )
->method( 'isAllowed' )
- ->will( $this->returnCallback( function( $action ) use ( $notAllowedAction ) {
+ ->will( $this->returnCallback( function ( $action ) use ( $notAllowedAction ) {
return $action !== $notAllowedAction;
} ) );
$mock->expects( $this->any() )
->method( 'isAllowedAny' )
- ->will( $this->returnCallback( function() use ( $notAllowedAction ) {
+ ->will( $this->returnCallback( function () use ( $notAllowedAction ) {
$actions = func_get_args();
return !in_array( $notAllowedAction, $actions );
} ) );
$mockDb = $this->getMockDb();
$mockDb->expects( $this->any() )
->method( 'addQuotes' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return "'$value'";
} ) );
$mockDb->expects( $this->any() )
$this->isType( 'array' ),
$this->isType( 'int' )
)
- ->will( $this->returnCallback( function( $a, $conj ) {
+ ->will( $this->returnCallback( function ( $a, $conj ) {
$sqlConj = $conj === LIST_AND ? ' AND ' : ' OR ';
- return join( $sqlConj, array_map( function( $s ) {
+ return join( $sqlConj, array_map( function ( $s ) {
return '(' . $s . ')';
}, $a
) );
->getMock();
$mock->expects( $this->any() )
->method( 'makeKey' )
- ->will( $this->returnCallback( function() {
+ ->will( $this->returnCallback( function () {
return implode( ':', func_get_args() );
} ) );
return $mock;
->will( $this->returnValue( 7 ) );
$mockDb->expects( $this->exactly( 1 ) )
->method( 'addQuotes' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return "'$value'";
} ) );
$mockDb->expects( $this->exactly( 1 ) )
->method( 'timestamp' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return 'TS' . $value . 'TS';
} ) );
$mockDb = $this->getMockDb();
$mockDb->expects( $this->exactly( 2 * 3 ) )
->method( 'addQuotes' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return "'$value'";
} ) );
$mockDb->expects( $this->exactly( 3 ) )
->method( 'timestamp' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return 'TS' . $value . 'TS';
} ) );
$mockDb->expects( $this->any() )
$this->isType( 'array' ),
$this->isType( 'int' )
)
- ->will( $this->returnCallback( function( $a, $conj ) {
+ ->will( $this->returnCallback( function ( $a, $conj ) {
$sqlConj = $conj === LIST_AND ? ' AND ' : ' OR ';
- return join( $sqlConj, array_map( function( $s ) {
+ return join( $sqlConj, array_map( function ( $s ) {
return '(' . $s . ')';
}, $a
) );
$mockDb = $this->getMockDb();
$mockDb->expects( $this->exactly( 2 * 3 ) )
->method( 'addQuotes' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return "'$value'";
} ) );
$mockDb->expects( $this->exactly( 3 ) )
->method( 'timestamp' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return 'TS' . $value . 'TS';
} ) );
$mockDb->expects( $this->any() )
$this->isType( 'array' ),
$this->isType( 'int' )
)
- ->will( $this->returnCallback( function( $a, $conj ) {
+ ->will( $this->returnCallback( function ( $a, $conj ) {
$sqlConj = $conj === LIST_AND ? ' AND ' : ' OR ';
- return join( $sqlConj, array_map( function( $s ) {
+ return join( $sqlConj, array_map( function ( $s ) {
return '(' . $s . ')';
}, $a
) );
// Note: This does not actually assert the job is correct
$callableCallCounter = 0;
- $mockCallback = function( $callable ) use ( &$callableCallCounter ) {
+ $mockCallback = function ( $callable ) use ( &$callableCallCounter ) {
$callableCallCounter++;
$this->assertInternalType( 'callable', $callable );
};
// Note: This does not actually assert the job is correct
$callableCallCounter = 0;
- $mockCallback = function( $callable ) use ( &$callableCallCounter ) {
+ $mockCallback = function ( $callable ) use ( &$callableCallCounter ) {
$callableCallCounter++;
$this->assertInternalType( 'callable', $callable );
};
$callableCallCounter = 0;
$scopedOverride = $store->overrideDeferredUpdatesAddCallableUpdateCallback(
- function( $callable ) use ( &$callableCallCounter, $title, $user ) {
+ function ( $callable ) use ( &$callableCallCounter, $title, $user ) {
$callableCallCounter++;
$this->verifyCallbackJob(
$callable,
$title,
$user->getId(),
- function( $time ) {
+ function ( $time ) {
return $time === null;
}
);
$addUpdateCallCounter = 0;
$scopedOverrideDeferred = $store->overrideDeferredUpdatesAddCallableUpdateCallback(
- function( $callable ) use ( &$addUpdateCallCounter, $title, $user ) {
+ function ( $callable ) use ( &$addUpdateCallCounter, $title, $user ) {
$addUpdateCallCounter++;
$this->verifyCallbackJob(
$callable,
$title,
$user->getId(),
- function( $time ) {
+ function ( $time ) {
return $time !== null && $time > '20151212010101';
}
);
$getTimestampCallCounter = 0;
$scopedOverrideRevision = $store->overrideRevisionGetTimestampFromIdCallback(
- function( $titleParam, $oldidParam ) use ( &$getTimestampCallCounter, $title, $oldid ) {
+ function ( $titleParam, $oldidParam ) use ( &$getTimestampCallCounter, $title, $oldid ) {
$getTimestampCallCounter++;
$this->assertEquals( $title, $titleParam );
$this->assertEquals( $oldid, $oldidParam );
$callableCallCounter = 0;
$scopedOverride = $store->overrideDeferredUpdatesAddCallableUpdateCallback(
- function( $callable ) use ( &$callableCallCounter, $title, $user ) {
+ function ( $callable ) use ( &$callableCallCounter, $title, $user ) {
$callableCallCounter++;
$this->verifyCallbackJob(
$callable,
$title,
$user->getId(),
- function( $time ) {
+ function ( $time ) {
return $time === null;
}
);
$addUpdateCallCounter = 0;
$scopedOverrideDeferred = $store->overrideDeferredUpdatesAddCallableUpdateCallback(
- function( $callable ) use ( &$addUpdateCallCounter, $title, $user ) {
+ function ( $callable ) use ( &$addUpdateCallCounter, $title, $user ) {
$addUpdateCallCounter++;
$this->verifyCallbackJob(
$callable,
$title,
$user->getId(),
- function( $time ) {
+ function ( $time ) {
return $time === '30151212010101';
}
);
$getTimestampCallCounter = 0;
$scopedOverrideRevision = $store->overrideRevisionGetTimestampFromIdCallback(
- function( $titleParam, $oldidParam ) use ( &$getTimestampCallCounter, $title, $oldid ) {
+ function ( $titleParam, $oldidParam ) use ( &$getTimestampCallCounter, $title, $oldid ) {
$getTimestampCallCounter++;
$this->assertEquals( $title, $titleParam );
$this->assertEquals( $oldid, $oldidParam );
$addUpdateCallCounter = 0;
$scopedOverrideDeferred = $store->overrideDeferredUpdatesAddCallableUpdateCallback(
- function( $callable ) use ( &$addUpdateCallCounter, $title, $user ) {
+ function ( $callable ) use ( &$addUpdateCallCounter, $title, $user ) {
$addUpdateCallCounter++;
$this->verifyCallbackJob(
$callable,
$title,
$user->getId(),
- function( $time ) {
+ function ( $time ) {
return $time === false;
}
);
$getTimestampCallCounter = 0;
$scopedOverrideRevision = $store->overrideRevisionGetTimestampFromIdCallback(
- function( $titleParam, $oldidParam ) use ( &$getTimestampCallCounter, $title, $oldid ) {
+ function ( $titleParam, $oldidParam ) use ( &$getTimestampCallCounter, $title, $oldid ) {
$getTimestampCallCounter++;
$this->assertEquals( $title, $titleParam );
$this->assertEquals( $oldid, $oldidParam );
->will( $this->returnValue( true ) );
$mockDb->expects( $this->exactly( 1 ) )
->method( 'timestamp' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return 'TS' . $value . 'TS';
} ) );
->will( $this->returnValue( true ) );
$mockDb->expects( $this->exactly( 0 ) )
->method( 'timestamp' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return 'TS' . $value . 'TS';
} ) );
->will( $this->returnValue( true ) );
$mockDb->expects( $this->exactly( 1 ) )
->method( 'timestamp' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return 'TS' . $value . 'TS';
} ) );
$mockDb->expects( $this->once() )
],
'A simple merge policy adds the redirect data in' => [
- function( $current, $new ) {
+ function ( $current, $new ) {
if ( !isset( $current['index'] ) || $new['index'] < $current['index'] ) {
$current['index'] = $new['index'];
}
// not checking values of all keys of the actual item, so removing unwanted keys from comparison
$actualItemsOnlyComparedValues = array_map(
- function( array $item ) use ( $keysUsedInValueComparison ) {
+ function ( array $item ) use ( $keysUsedInValueComparison ) {
return array_intersect_key( $item, array_flip( $keysUsedInValueComparison ) );
},
$actualItems
__DIR__ . '/words.txt'
] as $dictionaryFile
) {
- if ( is_file( $dictionaryFile ) and is_readable( $dictionaryFile ) ) {
+ if ( is_file( $dictionaryFile ) && is_readable( $dictionaryFile ) ) {
$this->dictionaryFile = $dictionaryFile;
break;
}
// define new config instance
$newFactory = new ConfigFactory();
$newFactory->register( 'foo', 'GlobalVarConfig::newInstance' );
- $newFactory->register( 'bar', function() {
+ $newFactory->register( 'bar', function () {
return new HashConfig();
} );
CONTENT_MODEL_CSS => 'CssContentHandler',
CONTENT_MODEL_TEXT => 'TextContentHandler',
'testing' => 'DummyContentHandlerForTesting',
- 'testing-callbacks' => function( $modelId ) {
+ 'testing-callbacks' => function ( $modelId ) {
return new DummyContentHandlerForTesting( $modelId );
}
],
$searchEngine->expects( $this->any() )
->method( 'makeSearchFieldMapping' )
- ->will( $this->returnCallback( function( $name, $type ) {
+ ->will( $this->returnCallback( function ( $name, $type ) {
return new DummySearchIndexFieldDefinition( $name, $type );
} ) );
*
* @file
* @author Antoine Musso
- * @author Bryan Davis
* @copyright © 2013 Antoine Musso
- * @copyright © 2013 Bryan Davis
- * @copyright © 2013 Wikimedia Foundation Inc.
+ * @copyright © 2013 Wikimedia Foundation and contributors
*/
use Wikimedia\Rdbms\TransactionProfiler;
public function provideTestJobFactory() {
return [
'class name' => [ 'NullJob' ],
- 'closure' => [ function( Title $title, array $params ) {
+ 'closure' => [ function ( Title $title, array $params ) {
return new NullJob( $title, $params );
} ],
'function' => [ [ $this, 'newNullJob' ] ],
// No args
[
[
- function() {
+ function () {
return 'foo';
}
],
// Has args
[
[
- function( $i ) {
+ function ( $i ) {
return $i;
},
'bar'
* it is never converted to a string
*/
public function testCallbackNotCalled() {
- $ds = new DeferredStringifier( function() {
+ $ds = new DeferredStringifier( function () {
throw new Exception( 'This should not be reached!' );
} );
// No exception was thrown
$obj = ObjectFactory::getObjectFromSpec( [
'class' => 'ObjectFactoryTestFixture',
'args' => [
- function() {
+ function () {
return 'wrapped';
},
'unwrapped',
],
'calls' => [
- 'setter' => [ function() {
+ 'setter' => [ function () {
return 'wrapped';
}, ],
],
$obj = ObjectFactory::getObjectFromSpec( [
'class' => 'ObjectFactoryTestFixture',
'args' => [
- function() {
+ function () {
return 'wrapped';
},
'unwrapped',
],
'calls' => [
- 'setter' => [ function() {
+ 'setter' => [ function () {
return 'wrapped';
}, ],
],
$obj = ObjectFactory::getObjectFromSpec( [
'class' => 'ObjectFactoryTestFixture',
- 'args' => [ function() {
+ 'args' => [ function () {
return 'unwrapped';
}, ],
'calls' => [
- 'setter' => [ function() {
+ 'setter' => [ function () {
return 'unwrapped';
}, ],
],
/**
* @uses XhprofData
* @uses AutoLoader
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @copyright © 2014 Wikimedia Foundation and contributors
* @since 1.25
*/
class XhprofDataTest extends PHPUnit_Framework_TestCase {
null,
false,
[
- 'processing_instruction_handler' => function() use ( &$called ) {
+ 'processing_instruction_handler' => function () use ( &$called ) {
$called = true;
}
]
$priorValue = null;
$priorAsOf = null;
$wasSet = 0;
- $func = function( $old, &$ttl, &$opts, $asOf )
+ $func = function ( $old, &$ttl, &$opts, $asOf )
use ( &$wasSet, &$priorValue, &$priorAsOf, $value )
{
++$wasSet;
$value = wfRandomString();
$calls = 0;
- $func = function() use ( &$calls, $value, $cache, $key ) {
+ $func = function () use ( &$calls, $value, $cache, $key ) {
++$calls;
// Immediately kill any mutex rather than waiting a second
$cache->delete( $cache::MUTEX_KEY_PREFIX . $key );
$value = wfRandomString();
$calls = 0;
- $func = function( $oldValue, &$ttl, &$setOpts ) use ( &$calls, $value, $cache, $key ) {
+ $func = function ( $oldValue, &$ttl, &$setOpts ) use ( &$calls, $value, $cache, $key ) {
++$calls;
$setOpts['since'] = microtime( true ) - 10;
// Immediately kill any mutex rather than waiting a second
$busyValue = wfRandomString();
$calls = 0;
- $func = function() use ( &$calls, $value, $cache, $key ) {
+ $func = function () use ( &$calls, $value, $cache, $key ) {
++$calls;
// Immediately kill any mutex rather than waiting a second
$cache->delete( $cache::MUTEX_KEY_PREFIX . $key );
$value = wfRandomString();
$wasSet = 0;
- $func = function( $old, &$ttl ) use ( &$wasSet, $value ) {
+ $func = function ( $old, &$ttl ) use ( &$wasSet, $value ) {
++$wasSet;
return $value;
};
]
],
+ 'htmlTemplateUnknown' => $base + [
+ 'templates' => [
+ 'templates/notfound.html',
+ ]
+ ],
+
'aliasedHtmlTemplateModule' => $base + [
'templates' => [
'foo.html' => 'templates/template.html',
'bar.html' => "<div>goodbye</div>\n",
],
],
+ [
+ $modules['htmlTemplateUnknown'],
+ false,
+ ],
];
}
$rl = new ResourceLoaderFileModule( $module );
$rl->setName( 'testing' );
- $this->assertEquals( $rl->getTemplates(), $expected );
+ if ( $expected === false ) {
+ $this->setExpectedException( MWException::class );
+ $rl->getTemplates();
+ } else {
+ $this->assertEquals( $rl->getTemplates(), $expected );
+ }
}
+ /**
+ * @covers ResourceLoaderFileModule::stripBom
+ */
public function testBomConcatenation() {
$basePath = __DIR__ . '/../../data/css';
$testModule = new ResourceLoaderFileModule( [
* @covers ResourceLoader::getModule
*/
public function testGetModuleFactory() {
- $factory = function( array $info ) {
+ $factory = function ( array $info ) {
$this->assertArrayHasKey( 'kitten', $info );
return new ResourceLoaderTestModule( $info );
};
* Verify that when building module content in a load.php response,
* an exception from one module will not break script output from
* other modules.
+ *
+ * @covers ResourceLoader::makeModuleResponse
*/
public function testMakeModuleResponseError() {
$modules = [
* Verify that when building the startup module response,
* an exception from one module class will not break the entire
* startup module response. See T152266.
+ *
+ * @covers ResourceLoader::makeModuleResponse
*/
public function testMakeModuleResponseStartupError() {
$rl = new EmptyResourceLoader();
public function testSearch( array $case ) {
$this->search->setLimitOffset( 3 );
$results = $this->search->defaultPrefixSearch( $case['query'] );
- $results = array_map( function( Title $t ) {
+ $results = array_map( function ( Title $t ) {
return $t->getPrefixedText();
}, $results );
public function testSearchWithOffset( array $case ) {
$this->search->setLimitOffset( 3, 1 );
$results = $this->search->defaultPrefixSearch( $case['query'] );
- $results = array_map( function( Title $t ) {
+ $results = array_map( function ( Title $t ) {
return $t->getPrefixedText();
}, $results );
$search->setLimitOffset( 3 );
$results = $search->completionSearch( $case['query'] );
- $results = $results->map( function( SearchSuggestion $s ) {
+ $results = $results->map( function ( SearchSuggestion $s ) {
return $s->getText();
} );
$this->assertEquals( 3, $set->getBestScore() );
$this->assertEquals( 1, $suggestion->getScore() );
- $scores = $set->map( function( $s ) {
+ $scores = $set->map( function ( $s ) {
return $s->getScore();
} );
$sorted = $scores;
$this->assertEquals( 6, $set->getBestScore() );
$this->assertEquals( 6, $suggestion->getScore() );
- $scores = $set->map( function( $s ) {
+ $scores = $set->map( function ( $s ) {
return $s->getScore();
} );
$sorted = $scores;
$dbSiteStore->expects( $this->any() )
->method( 'getSites' )
- ->will( $this->returnCallback( function() {
+ ->will( $this->returnCallback( function () {
$siteList = new SiteList();
$siteList->setSite( $this->getTestSite() );
$rewrittenQuery,
array $resultTitles
) {
- $results = array_map( function( $title ) {
+ $results = array_map( function ( $title ) {
return SearchResult::newFromTitle( $title );
}, $resultTitles );
$batchSize = 2;
$reader = new BatchRowIterator( $db, 'some_table', 'id_field', $batchSize );
- $response = $this->genSelectResult( $batchSize, /*numRows*/ 5, function() {
+ $response = $this->genSelectResult( $batchSize, /*numRows*/ 5, function () {
static $i = 0;
return [ 'id_field' => ++$i ];
} );
public function testReaderSelectConditionsMultiplePrimaryKeys(
$message, $expectedSecondIteration, $primaryKeys, $batchSize = 3
) {
- $results = $this->genSelectResult( $batchSize, $batchSize * 3, function() {
+ $results = $this->genSelectResult( $batchSize, $batchSize * 3, function () {
static $i = 0, $j = 100, $k = 1000;
return [ 'id_field' => ++$i, 'foo' => ++$j, 'bar' => ++$k ];
} );
->will( $this->consecutivelyReturnFromSelect( $retvals ) );
$db->expects( $this->any() )
->method( 'addQuotes' )
- ->will( $this->returnCallback( function( $value ) {
+ ->will( $this->returnCallback( function ( $value ) {
return "'$value'"; // not real quoting: doesn't matter in test
} ) );
{ name: 'filter8', label: 'group3filter8-label', description: 'group3filter8-desc' },
{ name: 'filter9', label: 'group3filter9-label', description: 'group3filter9-desc' }
]
+ }, {
+ name: 'group4',
+ type: 'single_option',
+ default: 'option1',
+ filters: [
+ { name: 'option1', label: 'group4option1-label', description: 'group4option1-desc' },
+ { name: 'option2', label: 'group4option2-label', description: 'group4option2-desc' },
+ { name: 'option3', label: 'group4option3-label', description: 'group4option3-desc' }
+ ]
} ],
viewsDefinition = {
namespaces: {
filter5: '1',
filter6: '0',
group3: 'filter8',
+ group4: 'option1',
namespace: ''
},
baseParamRepresentation = {
filter5: '0',
filter6: '0',
group3: '',
+ group4: '',
namespace: ''
},
baseFilterRepresentation = {
group3__filter7: false,
group3__filter8: false,
group3__filter9: false,
+ group4__option1: false,
+ group4__option2: false,
+ group4__option3: false,
namespace__0: false,
namespace__1: false,
namespace__2: false,
group3__filter7: { selected: false, conflicted: false, included: false },
group3__filter8: { selected: false, conflicted: false, included: false },
group3__filter9: { selected: false, conflicted: false, included: false },
+ group4__option1: { selected: false, conflicted: false, included: false },
+ group4__option2: { selected: false, conflicted: false, included: false },
+ group4__option3: { selected: false, conflicted: false, included: false },
namespace__0: { selected: false, conflicted: false, included: false },
namespace__1: { selected: false, conflicted: false, included: false },
namespace__2: { selected: false, conflicted: false, included: false },
} ),
'All filters selected in "string_option" group returns \'all\'.'
);
+
+ // Reset
+ model = new mw.rcfilters.dm.FiltersViewModel();
+ model.initializeFilters( filterDefinition, viewsDefinition );
+
+ // Select an option from single_option group
+ model.toggleFiltersSelected( {
+ group4__option2: true
+ } );
+ // All filters of the group are selected == this is the same as not selecting any
+ assert.deepEqual(
+ model.getParametersFromFilters(),
+ $.extend( true, {}, baseParamRepresentation, {
+ group4: 'option2'
+ } ),
+ 'Selecting an option from "single_option" group returns that option as a value.'
+ );
+
+ // Select a different option from single_option group
+ model.toggleFiltersSelected( {
+ group4__option3: true
+ } );
+ // All filters of the group are selected == this is the same as not selecting any
+ assert.deepEqual(
+ model.getParametersFromFilters(),
+ $.extend( true, {}, baseParamRepresentation, {
+ group4: 'option3'
+ } ),
+ 'Selecting a different option from "single_option" group changes the selection.'
+ );
} );
QUnit.test( 'getParametersFromFilters (custom object)', function ( assert ) {
{ name: 'filter8', label: 'Hide filter 8', description: '' },
{ name: 'filter9', label: 'Hide filter 9', description: '' }
]
+ }, {
+ name: 'group4',
+ title: 'Group 4',
+ type: 'single_option',
+ filters: [
+ { name: 'filter10', label: 'Hide filter 10', description: '' },
+ { name: 'filter11', label: 'Hide filter 11', description: '' },
+ { name: 'filter12', label: 'Hide filter 12', description: '' }
+ ]
} ],
+ baseResult = {
+ hidefilter1: '0',
+ hidefilter2: '0',
+ hidefilter3: '0',
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
+ group3: '',
+ group4: ''
+ },
cases = [
{
// This is mocking the cases above, both
group3__filter8: true,
group3__filter9: false
},
- expected: {
+ expected: $.extend( true, {}, baseResult, {
// Group 1 (two selected, the others are true)
- hidefilter1: '0',
- hidefilter2: '0',
hidefilter3: '1',
- // Group 2 (nothing is selected, all false)
- hidefilter4: '0',
- hidefilter5: '0',
- hidefilter6: '0',
+ // Group 3 (two selected)
group3: 'filter7,filter8'
- },
+ } ),
msg: 'Given an explicit (complete) filter state object, the result is the same as if the object given represented the model state.'
},
{
input: {
group1__hidefilter1: 1
},
- expected: {
+ expected: $.extend( true, {}, baseResult, {
// Group 1 (one selected, the others are true)
- hidefilter1: '0',
hidefilter2: '1',
- hidefilter3: '1',
- // Group 2 (nothing is selected, all false)
- hidefilter4: '0',
- hidefilter5: '0',
- hidefilter6: '0',
- group3: ''
- },
+ hidefilter3: '1'
+ } ),
msg: 'Given an explicit (incomplete) filter state object, the result is the same as if the object give represented the model state.'
},
{
- input: {},
- expected: {
- hidefilter1: '0',
- hidefilter2: '0',
- hidefilter3: '0',
- hidefilter4: '0',
- hidefilter5: '0',
- hidefilter6: '0',
- group3: ''
+ input: {
+ group4__filter10: true
},
+ expected: $.extend( true, {}, baseResult, {
+ group4: 'filter10'
+ } ),
+ msg: 'Given a single value for "single_option" that option is represented in the result.'
+ },
+ {
+ input: {
+ group4__filter10: true,
+ group4__filter11: true
+ },
+ expected: $.extend( true, {}, baseResult, {
+ group4: 'filter10'
+ } ),
+ msg: 'Given more than one true value for "single_option" (which should not happen!) only the first value counts, and the second is ignored.'
+ },
+ {
+ input: {},
+ expected: baseResult,
msg: 'Given an explicit empty object, the result is all filters set to their falsey unselected value.'
}
];
} ),
'A \'string_options\' parameter containing an invalid value, results in the invalid value ignored and the valid corresponding filters checked.'
);
+
+ model.toggleFiltersSelected(
+ model.getFiltersFromParameters( {
+ group4: 'option1'
+ } )
+ );
+ assert.deepEqual(
+ model.getSelectedState(),
+ $.extend( {}, baseFilterRepresentation, {
+ group4__option1: true
+ } ),
+ 'A \'single_option\' parameter reflects a single selected value.'
+ );
+
+ assert.deepEqual(
+ model.getFiltersFromParameters( {
+ group4: 'option1,option2'
+ } ),
+ baseFilterRepresentation,
+ 'An invalid \'single_option\' parameter is ignored.'
+ );
+
+ // Change to one value
+ model.toggleFiltersSelected(
+ model.getFiltersFromParameters( {
+ group4: 'option1'
+ } )
+ );
+ // Change again to another value
+ model.toggleFiltersSelected(
+ model.getFiltersFromParameters( {
+ group4: 'option2'
+ } )
+ );
+ assert.deepEqual(
+ model.getSelectedState(),
+ $.extend( {}, baseFilterRepresentation, {
+ group4__option2: true
+ } ),
+ 'A \'single_option\' parameter always reflects the latest selected value.'
+ );
} );
QUnit.test( 'sanitizeStringOptionGroup', function ( assert ) {