Miguel2706 has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/78470


Change subject: New and firts version of this extension
......................................................................

New and firts version of this extension

Change-Id: Ia4a59637d10de537e33476416f30b9e834302a7d
---
A specialupdatemediawiki.php
A updateMediaWiki.php
A updatemediawiki.alias.php
A updatemediawiki.i18n.php
4 files changed, 220 insertions(+), 0 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UpdateMediaWiki 
refs/changes/70/78470/1

diff --git a/specialupdatemediawiki.php b/specialupdatemediawiki.php
new file mode 100644
index 0000000..118481b
--- /dev/null
+++ b/specialupdatemediawiki.php
@@ -0,0 +1,97 @@
+<?
+/*********************************************************************
+**
+** This file is part of the Update MediaWiki extension for MediaWiki
+* @file
+* @ingroup Extensions
+* @author Miguel Peláez <miguel2706outlook.com>
+* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 
or later
+* @link http://www.mediawiki.org/wiki/Extension:Ads Documentation
+**********************************************************************/
+
+class Specialupdatemediawiki extends SpecialPage {
+        function __construct() {
+                parent::__construct( $name = 'updatemediawiki', $restriction = 
'editinterface' ); // restrict to sysops
+        }
+ 
+        function execute( $par ) {
+       
+        // ...
+        if (  !$this->userCanExecute( $this->getUser() )  ) {
+                $this->displayRestrictionError();
+                return;
+        }
+        // ...
+                $request = $this->getRequest();
+                $output = $this->getOutput();
+                $this->setHeaders();
+ 
+                $param = $request->getText( 'param' );
+ 
+                global $wgVersion, $IP;
+$getVersions = 
substr(file_get_contents('http://www.mediawiki.org/w/index.php?title=Template:MW_stable_release_number&action=raw'),
 0, 6) or die ('ERROR');
+if ($getVersions != '')
+{
+    //If we managed to access that file, then lets break up those release 
versions into an array.
+    $output->addWikiText( "== ". wfMessage( 'updatemediawiki-current' 
)->text() ." ".$wgVersion." == " );
+    $versionList = explode("\\n", $getVersions);
+    $mainVersion = substr($getVersions, 0, 4);    
+    foreach ($versionList as $aV)
+    {
+        if ( $aV > $wgVersion) {
+            $output->addWikiText( "<p>".wfMessage( 
'updatemediawiki-update-found' )->text()."v".$aV."</p>" );
+            $found = true;
+             //Download The File If We Do Not Have It
+            if ( !is_file( 'Updates/mediawiki-'.$aV.'.tar.gz' )) {
+                $output->addWikiText( "<p>".wfMessage( 
'updatemediawiki-update-downloading' )->text()."</p>" );
+                $newUpdate = 
file_get_contents('http://download.wikimedia.org/mediawiki/'.$mainVersion.'/mediawiki-'.$aV.'.tar.gz');
+                if ( !is_dir( 'Updates/' ) ) mkdir ( 'Updates/' );
+                $dlHandler = fopen('Updates/mediawiki-'.$aV.'.tar.gz', 'w');
+                if ( !fwrite($dlHandler, $newUpdate) ) { $output->addWikiText( 
"<p>".wfMessage( 'updatemediawiki-update-aborted' )->text()."</p>" ); exit(); }
+                fclose($dlHandler);
+                $output->addWikiText( "<p>".wfMessage( 
'updatemediawiki-update-saved' )->text()."</p>" );
+            } else $output->addWikiText( "<p>".wfMessage( 
'updatemediawiki-update-exist' )->text()."</p>");    
+           
+            if ($par == "doUpdate") {
+                //Open The File And Do Stuff
+                $gz = new PharData('Updates/mediawiki-'.$aV.'.tar.gz');
+                $output->addWikiText( "<ul>");
+                
+                //Make the directory if we need to...
+                    if ( !is_dir ( "Updates/".$aV ) )
+                    {
+                         mkdir ( "Updates/".$aV );
+                    }
+                   
+                    //Overwrite the file
+                    
+                    $gz = decompress(); // creates files.tar
+                    // unarchive from the tar
+                    $phar = new PharData('Updates/mediawiki-'.$aV.'.tar');
+                    $phar->extractTo($IP);
+                    $output->addWikiText( "<p>".wfMessage( 
'updatemediawiki-update-ready' )->text()." [".$IP."/mw-config ".wfMessage( 
'updatemediawiki-update-database' )->text()."]</p>");
+                    
+                    
+                     
+                                           
+                $output->addWikiText( "</ul>");
+                $updated = TRUE;
+            }
+            else $output->addWikiText( "<p>".wfMessage( 
'updatemediawiki-update-updateready' )->text()." [[/doUpdate|".wfMessage( 
'updatemediawiki-update-install' )->text()."]]</p>");
+            break;
+        }
+    }
+    
+    if ($updated == true)
+    {
+        $output->addWikiText( "<p class=\"success\">&raquo; ".wfMessage( 
'updatemediawiki-update-updated' )->text().$aV.'</p>');
+    }
+    else if ($found != true) $output->addWikiText( wfMessage( 
'updatemediawiki-update-nofound' )->text());
+
+    
+}
+else $output->addWikiText( "<p>".wfMessage( 'updatemediawiki-update-error' 
)->text().'</p>');
+
+
+        }
+}
\ No newline at end of file
diff --git a/updateMediaWiki.php b/updateMediaWiki.php
new file mode 100644
index 0000000..859c572
--- /dev/null
+++ b/updateMediaWiki.php
@@ -0,0 +1,34 @@
+<?
+
+/*********************************************************************
+**
+** This file is part of the Update MediaWiki extension for MediaWiki
+* @file
+* @ingroup Extensions
+* @author Miguel Peláez <miguel2706outlook.com>
+* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 
or later
+* @link http://www.mediawiki.org/wiki/Extension:Ads Documentation
+**********************************************************************/
+
+# Alert the user that this is not a valid access point to MediaWiki if they 
try to access the special pages file directly.
+if ( !defined( 'MEDIAWIKI' ) ) {
+        echo <<<EOT
+To install updatemediawiki extension, put the following line in 
LocalSettings.php:
+require_once( "\$IP/extensions/updatemediawiki/updatemediawiki.php" );
+EOT;
+        exit( 1 );
+}
+
+$wgExtensionCredits['validextensionclass'][] = array(
+       'path' => __FILE__,
+       'name' => 'Update MediaWiki',
+       'author' =>'Miguel Peláez', 
+       'url' => 'https://www.mediawiki.org/wiki/Extension:Update_MediaWiki', 
+       'description' => 'Allows administrators and authorized users upgrade 
from a special page MediaWiki',
+       'version'  => 0.1,
+       );
+$wgAutoloadClasses[ 'Specialupdatemediawiki' ] = __DIR__ . 
'/specialupdatemediawiki.php';
+$wgExtensionMessagesFiles[ 'updatemediawiki' ] = __DIR__ . 
'/updatemediawiki.i18n.php';
+$wgSpecialPages[ 'updatemediawiki' ] = 'Specialupdatemediawiki';
+$wgExtensionAliasesFiles['updatemediawiki'] = dirname( __FILE__ ) . 
'/updatemediawiki.alias.php';
+$wgSpecialPageGroups['updatemediawiki']='wiki';
\ No newline at end of file
diff --git a/updatemediawiki.alias.php b/updatemediawiki.alias.php
new file mode 100644
index 0000000..b8288d6
--- /dev/null
+++ b/updatemediawiki.alias.php
@@ -0,0 +1,28 @@
+<?php
+ /*********************************************************************
+*
+* Aliases for Update MediaWiki
+*
+* This file is part of the Update MediaWiki extension for MediaWiki
+* @file
+* @ingroup Extensions
+* @author Miguel Peláez <miguel2706outlook.com>
+* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 
or later
+* @link http://www.mediawiki.org/wiki/Extension:Ads Documentation
+**********************************************************************/
+
+$specialPageAliases = array();
+ 
+/** English
+ * @author Miguel2706
+ */
+$specialPageAliases[ 'en' ] = array(
+        'updatemediawiki' => array( 'updatemediawiki', 'Update MediaWiki' ),
+);
+ 
+/** Spanish
+ * @author Miguel2706
+ */
+$specialPageAliases[ 'es' ] = array(
+        'updatemediawiki' => array( 'ActualizarMediaWiki', 'Actualizar 
MediaWiki' ),
+);
\ No newline at end of file
diff --git a/updatemediawiki.i18n.php b/updatemediawiki.i18n.php
new file mode 100644
index 0000000..1cc5b06
--- /dev/null
+++ b/updatemediawiki.i18n.php
@@ -0,0 +1,61 @@
+<?
+/*********************************************************************
+*
+* Internationalisation for Update MediaWiki
+*
+* This file is part of the Update MediaWiki extension for MediaWiki
+* @file
+* @ingroup Extensions
+* @author Miguel Peláez <miguel2706outlook.com>
+* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 
or later
+* @link http://www.mediawiki.org/wiki/Extension:Ads Documentation
+**********************************************************************/
+
+$messages = array();
+ 
+/** English
+ * @author Miguel2706
+ */
+$messages[ 'en' ] = array(
+        'updatemediawiki' => "Update MediaWiki",
+        'updatemediawiki-desc' => "Allows administrators and authorized users 
upgrade from a special page MediaWiki.",
+        'updatemediawiki-current' => "Current version",
+        'updatemediawiki-update-nofound' => "No update is available",
+        'updatemediawiki-update-found' => "New Update Found",
+        'updatemediawiki-update-downloading' => "Downloading new update",
+        'updatemediawiki-update-saved' => "Update Downloaded And Saved",
+        'updatemediawiki-update-exist' => "Update already downloaded",
+        'updatemediawiki-update-copyready' => "Copy ready",
+        'updatemediawiki-update-database' => "Update the data base Now?",
+        'updatemediawiki-update-updateready' => "Update ready",
+        'updatemediawiki-update-install' => "Install Now?",
+        'updatemediawiki-update-updated' => "MediaWiki Updated to version",
+        'updatemediawiki-update-error' => "Could not find latest realeases",
+        'updatemediawiki-update-aborted' => "Could not save new update. 
Operation aborted",
+        
+        
+
+
+);
+ 
+/** Message documentation
+ * @author Miguel2706
+ */
+$messages[ 'es' ] = array(
+        'updatemediawiki' => "Actualizar MediaWiki",
+        'updatemediawiki-desc' => "Permite a los administradores y usuarios 
autorizados actualizar MediaWiki desde una página especial.",
+        'updatemediawiki-current' => "Versión Actual",
+        'updatemediawiki-update-nofound' => "No hay actualizaciones 
disponibles",
+        'updatemediawiki-update-found' => "Nueva actualización encontrada",
+        'updatemediawiki-update-downloading' => "Descargando nueva 
actualización",
+        'updatemediawiki-update-saved' => "Nueva actualización descargada y 
guardada",
+        'updatemediawiki-update-exist' => "La actualización ya se había 
descargado",
+        'updatemediawiki-update-copyready' => "Copia lista",
+        'updatemediawiki-update-database' => "¿Actualizar la base de datos 
ahora?",
+        'updatemediawiki-update-updateready' => "Actualización lista",
+        'updatemediawiki-update-install' => "¿Instalar ahora?",
+        'updatemediawiki-update-updated' => "MediaWiki actualizado a la 
versión",
+        'updatemediawiki-update-error' => "No se pudo obtener las últimas 
actualizaciones",
+        'updatemediawiki-update-aborted' => "No se pudo descargar la 
actualización. Operación abortada",
+
+);
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/78470
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia4a59637d10de537e33476416f30b9e834302a7d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UpdateMediaWiki
Gerrit-Branch: master
Gerrit-Owner: Miguel2706 <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to