Merge "Update jquery.qunit from upstream v1.8.0 to v1.9.0"
authorCatrope <roan.kattouw@gmail.com>
Sat, 28 Jul 2012 00:15:32 +0000 (00:15 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 28 Jul 2012 00:15:32 +0000 (00:15 +0000)
RELEASE-NOTES-1.20
includes/api/ApiBase.php
includes/diff/DifferenceEngine.php
includes/specials/SpecialDisambiguations.php

index 29341a6..702698f 100644 (file)
@@ -32,6 +32,8 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
   certain namespace can be moved.
 * Added SpecialPageBeforeExecute hook which gets called before SpecialPage::execute.
 * Added SpecialPageAfterExecute hook which gets called after SpecialPage::execute.
+* Added ORMTable, ORMRow and ORMResult classes for additional abstraction of
+  database interaction.
 * (bug 32341) Add upload by URL domain limitation.
 * &useskin=default will now always display the default skin. Useful for users with a
   preference for the non-default skin to look at something using the default skin.
index bc94ee4..63624cb 100644 (file)
@@ -1440,7 +1440,9 @@ abstract class ApiBase extends ContextSource {
        }
 
        /**
-        * Returns whether this module requires a Token to execute
+        * Returns whether this module requires a token to execute
+        * It is used to show possible errors in action=paraminfo
+        * see bug 25248
         * @return bool
         */
        public function needsToken() {
@@ -1448,8 +1450,12 @@ abstract class ApiBase extends ContextSource {
        }
 
        /**
-        * Returns the token salt if there is one, '' if the module doesn't require a salt, else false if the module doesn't need a token
-        * @return bool|string
+        * Returns the token salt if there is one,
+        * '' if the module doesn't require a salt,
+        * else false if the module doesn't need a token
+        * You have also to override needsToken()
+        * Value is passed to User::getEditToken
+        * @return bool|string|array
         */
        public function getTokenSalt() {
                return false;
index 08154c7..db3c37c 100644 (file)
@@ -882,7 +882,8 @@ class DifferenceEngine extends ContextSource {
                        }
 
                        $msg = $this->msg( $title->quickUserCan( 'edit', $user ) ? 'editold' : 'viewsourceold' )->escaped();
-                       $header .= ' (' . Linker::linkKnown( $title, $msg, array(), $editQuery ) . ')';
+                       $header .= ' ' . $this->msg( 'parentheses' )->rawParams(
+                               Linker::linkKnown( $title, $msg, array(), $editQuery ) )->plain();
                        if ( $rev->isDeleted( Revision::DELETED_TEXT ) ) {
                                $header = Html::rawElement( 'span', array( 'class' => 'history-deleted' ), $header );
                        }
index a5ab3e6..e7606c6 100644 (file)
@@ -32,21 +32,29 @@ class DisambiguationsPage extends QueryPage {
                parent::__construct( $name );
        }
 
-       function isExpensive() { return true; }
-       function isSyndicated() { return false; }
+       function isExpensive() {
+               return true;
+       }
+
+       function isSyndicated() {
+               return false;
+       }
 
        function getPageHeader() {
                return $this->msg( 'disambiguations-text' )->parseAsBlock();
        }
 
-       function getQueryInfo() {
+       /**
+        * @return string|bool False on failure
+        */
+       function getQueryFromLinkBatch() {
                $dbr = wfGetDB( DB_SLAVE );
                $dMsgText = $this->msg( 'disambiguationspage' )->inContentLanguage()->text();
                $linkBatch = new LinkBatch;
 
                # If the text can be treated as a title, use it verbatim.
                # Otherwise, pull the titles from the links table
-               $dp = Title::newFromText($dMsgText);
+               $dp = Title::newFromText( $dMsgText );
                if( $dp ) {
                        if( $dp->getNamespace() != NS_TEMPLATE ) {
                                # @todo FIXME: We assume the disambiguation message is a template but
@@ -71,25 +79,38 @@ class DisambiguationsPage extends QueryPage {
                                }
                }
                $set = $linkBatch->constructSet( 'tl', $dbr );
+
                if( $set === false ) {
                        # We must always return a valid SQL query, but this way
                        # the DB will always quickly return an empty result
                        $set = 'FALSE';
-                       wfDebug("Mediawiki:disambiguationspage message does not link to any templates!\n");
+                       wfDebug( "Mediawiki:disambiguationspage message does not link to any templates!\n" );
                }
+               return $set;
+       }
 
+       function getQueryInfo() {
                // @todo FIXME: What are pagelinks and p2 doing here?
                return array (
-                       'tables' => array( 'templatelinks', 'p1' => 'page', 'pagelinks', 'p2' => 'page' ),
-                       'fields' => array( 'p1.page_namespace AS namespace',
-                                       'p1.page_title AS title',
-                                       'pl_from AS value' ),
-                       'conds' => array( $set,
-                                       'p1.page_id = tl_from',
-                                       'pl_namespace = p1.page_namespace',
-                                       'pl_title = p1.page_title',
-                                       'p2.page_id = pl_from',
-                                       'p2.page_namespace' => MWNamespace::getContentNamespaces() )
+                       'tables' => array(
+                               'templatelinks',
+                               'p1' => 'page',
+                               'pagelinks',
+                               'p2' => 'page'
+                       ),
+                       'fields' => array(
+                               'p1.page_namespace AS namespace',
+                               'p1.page_title AS title',
+                               'pl_from AS value'
+                       ),
+                       'conds' => array(
+                               $this->getQueryFromLinkBatch(),
+                               'p1.page_id = tl_from',
+                               'pl_namespace = p1.page_namespace',
+                               'pl_title = p1.page_title',
+                               'p2.page_id = pl_from',
+                               'p2.page_namespace' => MWNamespace::getContentNamespaces()
+                       )
                );
        }
 
@@ -126,10 +147,14 @@ class DisambiguationsPage extends QueryPage {
                $dp = Title::makeTitle( $result->namespace, $result->title );
 
                $from = Linker::link( $title );
-               $edit = Linker::link( $title, $this->msg( 'parentheses', $this->msg( 'editlink' )->text() )->escaped(),
-                       array(), array( 'redirect' => 'no', 'action' => 'edit' ) );
-               $arr  = $this->getLanguage()->getArrow();
-               $to   = Linker::link( $dp );
+               $edit = Linker::link(
+                       $title,
+                       $this->msg( 'parentheses', $this->msg( 'editlink' )->text() )->escaped(),
+                       array(),
+                       array( 'redirect' => 'no', 'action' => 'edit' )
+               );
+               $arr = $this->getLanguage()->getArrow();
+               $to = Linker::link( $dp );
 
                return "$from $edit $arr $to";
        }