http://www.mediawiki.org/wiki/Special:Code/MediaWiki/71115

Revision: 71115
Author:   jeroendedauw
Date:     2010-08-15 10:51:24 +0000 (Sun, 15 Aug 2010)

Log Message:
-----------
Modified the environment check of the core installer to check the current 
MediaWiki version to work with the new repository classes.

Modified Paths:
--------------
    trunk/phase3/includes/DistributionRepository.php
    trunk/phase3/includes/PackageRepository.php
    trunk/phase3/includes/installer/Installer.php

Modified: trunk/phase3/includes/DistributionRepository.php
===================================================================
--- trunk/phase3/includes/DistributionRepository.php    2010-08-15 10:21:57 UTC 
(rev 71114)
+++ trunk/phase3/includes/DistributionRepository.php    2010-08-15 10:51:24 UTC 
(rev 71115)
@@ -112,7 +112,7 @@
                global $wgRepositoryPackageStates;
                
                $currentVersion = urlencode( $currentVersion ); 
-               $states = urlencode( implode( '|', $wgRepositoryPackageStates ) 
);      
+               $states = urlencode( implode( '|', $wgRepositoryPackageStates ) 
);
                
                $response = Http::get(
                        
"$this->location?format=json&action=updates&mediawiki=$currentVersion&state=$states",
@@ -134,6 +134,43 @@
        }
        
        /**
+        * @see PackageRepository::coreHasUpdate
+        * 
+        * @since 1.17
+        */             
+       public function getLatestCoreVersion() {
+               global $wgRepositoryPackageStates;
+               
+               $states = urlencode( implode( '|', $wgRepositoryPackageStates ) 
);
+               
+               // TODO: use $states
+               
+               $response = Http::get(
+                       "$this->location?format=json&action=mwreleases",
+                       'default',
+                       array( 'sslVerifyHost' => true, 'sslVerifyCert' => true 
)
+               );
+               
+               if ( $response === false ) {
+                       return false;
+               }
+
+               $response = FormatJson::decode( $response );
+               
+               $current = false;
+               
+               if ( property_exists( $response, 'mwreleases' ) ) {
+                       foreach ( $response->mwreleases as $release ) {
+                               if ( property_exists( $release, 'current' ) && 
property_exists( $release, 'version') ) {
+                                       $current = $release->version;
+                               }
+                       }
+               }
+               
+               return $current;
+       }
+       
+       /**
         * @see PackageRepository::installationHasUpdates
         * 
         * @since 1.17

Modified: trunk/phase3/includes/PackageRepository.php
===================================================================
--- trunk/phase3/includes/PackageRepository.php 2010-08-15 10:21:57 UTC (rev 
71114)
+++ trunk/phase3/includes/PackageRepository.php 2010-08-15 10:51:24 UTC (rev 
71115)
@@ -70,6 +70,15 @@
        public abstract function coreHasUpdate( $currentVersion );
        
        /**
+        * Returns the latest MediaWiki release, or false when the request 
fails.
+        * 
+        * @since 1.17
+        * 
+        * @return Mixed: string or false
+        */             
+       public abstract function getLatestCoreVersion();        
+       
+       /**
         * Checks if there are any updates for this MediaWiki installation and 
extensions.
         * 
         * @since 1.17

Modified: trunk/phase3/includes/installer/Installer.php
===================================================================
--- trunk/phase3/includes/installer/Installer.php       2010-08-15 10:21:57 UTC 
(rev 71114)
+++ trunk/phase3/includes/installer/Installer.php       2010-08-15 10:51:24 UTC 
(rev 71115)
@@ -383,30 +383,25 @@
        public function envLatestVersion() {
                global $wgVersion;
 
-               $latestInfoUrl = 
'http://www.mediawiki.org/w/api.php?action=mwreleases&format=json';
-               $latestInfo = Http::get( $latestInfoUrl );
-
+               $repository = wfGetRepository();
+               $currentVersion = $repository->getLatestCoreVersion();
+               
+               /*
                if( !$latestInfo ) {
                        $this->showMessage( 'config-env-latest-can-not-check', 
$latestInfoUrl );
                        return;
                }
+               */
 
                $this->setVar( '_ExternalHTTP', true );
-               $latestInfo = FormatJson::decode($latestInfo);
 
-               if ($latestInfo === false || !isset( $latestInfo->mwreleases ) 
) {
+               if ( $currentVersion === false ) {
                        # For when the request is successful but there's e.g. 
some silly man in
                        # the middle firewall blocking us, e.g. one of those 
annoying airport ones
                        $this->showMessage( 'config-env-latest-data-invalid', 
$latestInfoUrl );
                        return;
                }
 
-               foreach( $latestInfo->mwreleases as $rel ) {
-                       if( isset( $rel->current ) ) {
-                               $currentVersion = $rel->version;
-                       }
-               }
-
                if( version_compare( $wgVersion, $currentVersion, '<' ) ) {
                        $this->showMessage( 'config-env-latest-old' );
                        $this->showHelpBox( 'config-env-latest-help', 
$wgVersion, $currentVersion );



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to