* (T213893) Added 'MaintenanceUpdateAddParams' hook
* (T219655) The MarkPatrolled hook has a new parameter for the tags
associated with this entry in the patrol log.
+* (T212472) Extensions can now specify platform abilities they require to work,
+ limited to shell access for now.
=== External library changes in 1.33 ===
SearchEngine::create(), SearchEngine::getSearchTypes() and
SearchEngine::getNearMatch(), methods deprecated in 1.27, have been removed.
* FileRepo::streamFile(), deprecated in 1.26, has been removed.
+* User::randomPassword() method, deprecated in 1.27, have been removed.
+* MWNamespace::canTalk(), deprecated in 1.30, have been removed.
=== Deprecations in 1.34 ===
* The MWNamespace class is deprecated. Use MediaWikiServices::getNamespaceInfo.
+* ExtensionRegistry->load() is deprecated, as it breaks dependency checking.
+ Instead, use ->queue().
* …
=== Other changes in 1.34 ===
return MediaWikiServices::getInstance()->getNamespaceInfo()->getValidNamespaces();
}
- /**
- * Does this namespace ever have a talk namespace?
- *
- * @deprecated since 1.30, use hasTalkNamespace() instead.
- *
- * @param int $index Namespace index
- * @return bool True if this namespace either is or has a corresponding talk namespace.
- */
- public static function canTalk( $index ) {
- wfDeprecated( __METHOD__, '1.30' );
- return self::hasTalkNamespace( $index );
- }
-
/**
* Does this namespace ever have a talk namespace?
*
}
// We can't separate explicit JOIN clauses with ',', use ' ' for those
- $implicitJoins = $ret ? implode( ',', $ret ) : "";
- $explicitJoins = $retJOIN ? implode( ' ', $retJOIN ) : "";
+ $implicitJoins = implode( ',', $ret );
+ $explicitJoins = implode( ' ', $retJOIN );
// Compile our final table clause
return implode( ' ', [ $implicitJoins, $explicitJoins ] );
return $this->makePreloadedLink(
$target,
$text,
- $classes ? implode( ' ', $classes ) : '',
+ implode( ' ', $classes ),
$extraAttribs,
$query
);
*
* If some extensions are already queued, this will load
* those as well.
- *
+ * TODO: Remove in MediaWiki 1.35
+ * @deprecated since 1.34, use ExtensionRegistry->queue() instead
* @param string $path Absolute path to the JSON file
*/
public function load( $path ) {
+ wfDeprecated( __METHOD__, '1.34' );
$this->loadFromQueue(); // First clear the queue
$this->queue( $path );
$this->loadFromQueue();
return $name;
}
- /**
- * Return a random password.
- *
- * @deprecated since 1.27, use PasswordFactory::generateRandomPasswordString()
- * @return string New random password
- */
- public static function randomPassword() {
- global $wgMinimalPasswordLength;
- return PasswordFactory::generateRandomPasswordString( $wgMinimalPasswordLength );
- }
-
/**
* Set cached properties to default.
*
configure: function ( context, property, value ) {
var newCSS,
$result, $results, $spanForWidth, childrenWidth,
+ regionIsFixed, regionPosition,
i, expWidth, maxWidth, text;
// Validate creation using fallback values
// Rebuild the suggestions list
context.data.$container.show();
// Update the size and position of the list
+ regionIsFixed = ( function () {
+ var $el = context.config.$region;
+ do {
+ if ( $el.css( 'position' ) === 'fixed' ) {
+ return true;
+ }
+ $el = $( $el[ 0 ].offsetParent );
+ } while ( $el.length );
+ return false;
+ }() );
+ regionPosition = regionIsFixed ?
+ context.config.$region[ 0 ].getBoundingClientRect() :
+ context.config.$region.offset();
newCSS = {
- top: context.config.$region.offset().top + context.config.$region.outerHeight(),
+ position: regionIsFixed ? 'fixed' : 'absolute',
+ top: regionPosition.top + context.config.$region.outerHeight(),
bottom: 'auto',
width: context.config.$region.outerWidth(),
height: 'auto'
expandFrom = 'start';
} else {
// Calculate the center points of the input and document
- regionCenter = $region.offset().left + regionWidth / 2;
+ regionCenter = regionPosition.left + regionWidth / 2;
docCenter = docWidth / 2;
if ( Math.abs( regionCenter - docCenter ) < ( 0.10 * docCenter ) ) {
// If the input's center is within 10% of the document center
if ( context.config.expandFrom === 'left' ) {
// Expand from left
- newCSS.left = context.config.$region.offset().left;
+ newCSS.left = regionPosition.left;
newCSS.right = 'auto';
} else {
// Expand from right
newCSS.left = 'auto';
- newCSS.right = $( 'body' ).width() - ( context.config.$region.offset().left + context.config.$region.outerWidth() );
+ newCSS.right = $( 'body' ).width() - ( regionPosition.left + context.config.$region.outerWidth() );
}
context.data.$container.css( newCSS );
$this->assertSame( $actual, $expected, "NS $index" );
}
- /**
- * @dataProvider provideHasTalkNamespace
- * @covers MWNamespace::canTalk
- *
- * @param int $index
- * @param bool $expected
- */
- public function testCanTalk( $index, $expected ) {
- $this->hideDeprecated( 'MWNamespace::canTalk' );
- $actual = MWNamespace::canTalk( $index );
- $this->assertSame( $actual, $expected, "NS $index" );
- }
-
private function assertIsContent( $ns ) {
$this->assertTrue( $this->obj->isContent( $ns ) );
}