Fix for wgArticleId being exported to JavaScript as a string instead of integer. :P
authorBrion Vibber <brion@users.mediawiki.org>
Fri, 21 Aug 2009 18:11:13 +0000 (18:11 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Fri, 21 Aug 2009 18:11:13 +0000 (18:11 +0000)
Throw around some intval()s on page id, length data coming out of database into Title and Article objects and the link cache... blast PHP's soft typing!

includes/Article.php
includes/LinkCache.php
includes/Title.php

index edd015b..75748f8 100644 (file)
@@ -406,15 +406,15 @@ class Article {
                if( $data ) {
                        $lc->addGoodLinkObj( $data->page_id, $this->mTitle, $data->page_len, $data->page_is_redirect );
 
-                       $this->mTitle->mArticleID = $data->page_id;
+                       $this->mTitle->mArticleID = intval( $data->page_id );
 
                        # Old-fashioned restrictions
                        $this->mTitle->loadRestrictions( $data->page_restrictions );
 
-                       $this->mCounter     = $data->page_counter;
+                       $this->mCounter     = intval( $data->page_counter );
                        $this->mTouched     = wfTimestamp( TS_MW, $data->page_touched );
-                       $this->mIsRedirect  = $data->page_is_redirect;
-                       $this->mLatest      = $data->page_latest;
+                       $this->mIsRedirect  = intval( $data->page_is_redirect );
+                       $this->mLatest      = intval( $data->page_latest );
                } else {
                        if( is_object( $this->mTitle ) ) {
                                $lc->addBadLinkObj( $this->mTitle );
index 4f74cdd..a6d2185 100644 (file)
@@ -74,8 +74,10 @@ class LinkCache {
         */
        public function addGoodLinkObj( $id, $title, $len = -1, $redir = NULL ) {
                $dbkey = $title->getPrefixedDbKey();
-               $this->mGoodLinks[$dbkey] = $id;
-               $this->mGoodLinkFields[$dbkey] = array( 'length' => $len, 'redirect' => $redir );
+               $this->mGoodLinks[$dbkey] = intval( $id );
+               $this->mGoodLinkFields[$dbkey] = array(
+                       'length' => intval( $len ),
+                       'redirect' => intval( $redir ) );
        }
 
        public function addBadLinkObj( $title ) {
@@ -167,9 +169,9 @@ class LinkCache {
                        __METHOD__, $options );
                # Set fields...
                if ( $s !== false ) {
-                       $id = $s->page_id;
-                       $len = $s->page_len;
-                       $redirect = $s->page_is_redirect;
+                       $id = intval( $s->page_id );
+                       $len = intval( $s->page_len );
+                       $redirect = intval( $s->page_is_redirect );
                } else {
                        $len = -1;
                        $redirect = 0;
index 48063be..51a9c17 100644 (file)
@@ -2158,7 +2158,7 @@ class Title {
                $linkCache->clearBadLink( $this->getPrefixedDBkey() );
 
                if ( $newid === false ) { $this->mArticleID = -1; }
-               else { $this->mArticleID = $newid; }
+               else { $this->mArticleID = intval( $newid ); }
                $this->mRestrictionsLoaded = false;
                $this->mRestrictions = array();
        }