If we're going to make a generalizable plug-in point for extensions to supply their own randomization, we shouldn't be exposing it at the point of low-level database operations. The extension should instead be given the chance to pick an item any way it pleases and return a result or set of results to choose from.
to control which external domains may access the API via cross-site AJAX.
* $wgMaintenanceScripts for extensions to add their scripts to the default list
* $wgMemoryLimit has been added, default value '50M'
-* $wgExtraRandompageSQL is deprecated, the SpecialRandomBeforeSQL hook should
- be used instead
=== New features in 1.16 ===
numbers outside the permitted ranges), etc.
** The summary attribute has been removed from tables of contents. summary is
obsolete in HTML 5 and wasn't useful here anyway.
-* New hook SpecialRandomBeforeSQL allows extensions to modify or replace the SQL
- query used in Special:Random and subclasses, deprecating the $wgExtraRandompageSQL
- config variable
=== Bug fixes in 1.16 ===
hook to remove a core special page
$list: list (array) of core special pages
-'SpecialRandomBeforeSQL': called before building the SQL statement for
-Special:Random and all subclasses
-$page: The RandomPage object
-&$ns: Comma separated list of namespaces used in the query
-&$redirect: 1 or 0, whether to retrieve a redirect or a non-redirect
-&$extra: Extra SQL statements in the WHERE clause, after checking
-$wgExtraRandompageSQL and after subclasses add extra clauses
-&$sql: The query used if the hook returns false, must select
-page_namespace and page_title
-
'SpecialRecentChangesPanel': called when building form options in
SpecialRecentChanges
&$extraOpts: array of added items, to which can be added
/** Use the site's Cascading Style Sheets (CSS)? */
$wgUseSiteCss = true;
-/**
- * Filter for Special:Randompage. Part of a WHERE clause
- * @deprecated as of 1.16, use the SpecialRandomBeforeSQL hook
-*/
+/** Filter for Special:Randompage. Part of a WHERE clause */
$wgExtraRandompageSQL = false;
/** Allow the "info" action, very inefficient at the moment */
$extra = $wgExtraRandompageSQL ? "AND ($wgExtraRandompageSQL)" : "";
$extra .= $this->addExtraSQL() ? "AND (".$this->addExtraSQL().")" : "";
- $sql = '';
- if ( wfRunHooks( 'SpecialRandomBeforeSQL', array( $this, &$ns, &$redirect, &$extra, &$sql ) ) ) {
- $sql = "SELECT page_title, page_namespace
- FROM $page $use_index
- WHERE page_namespace IN ( $ns )
- AND page_is_redirect = $redirect
- AND page_random >= $randstr
- $extra
- ORDER BY page_random";
-
- $sql = $dbr->limitResult( $sql, 1, 0 );
- }
+ $sql = "SELECT page_title, page_namespace
+ FROM $page $use_index
+ WHERE page_namespace IN ( $ns )
+ AND page_is_redirect = $redirect
+ AND page_random >= $randstr
+ $extra
+ ORDER BY page_random";
+
+ $sql = $dbr->limitResult( $sql, 1, 0 );
$res = $dbr->query( $sql, __METHOD__ );
return $dbr->fetchObject( $res );
}
- // an alternative to $wgExtraRandompageSQL so subclasses
+ // an alternative to $wgExtraRandompageSQL so extensions
// can add their own SQL by overriding this function
public function addExtraSQL() {
return '';