* fixed filldestination with for non-js2 version of special upload page.
authorMichael Dale <dale@users.mediawiki.org>
Fri, 17 Jul 2009 20:26:14 +0000 (20:26 +0000)
committerMichael Dale <dale@users.mediawiki.org>
Fri, 17 Jul 2009 20:26:14 +0000 (20:26 +0000)
* fixed some other warnings that come up in strict compliance mode
* removed double httpspecialchars on token

includes/specials/SpecialUpload.php
includes/upload/UploadBase.php
includes/upload/UploadFromStash.php
includes/upload/UploadFromUrl.php

index 6b2f4dc..78a6d8e 100644 (file)
@@ -543,7 +543,7 @@ class UploadForm extends SpecialPage {
 
                $this->mSessionKey = $this->mUpload->stashSession();
 
-               if( $sessionData === false ) {
+               if( $this->mSessionKey === false ) {
                        # Couldn't save file; an error has been displayed so let's go.
                        return;
                }
@@ -591,12 +591,10 @@ class UploadForm extends SpecialPage {
                } else {
                        $copyright = '';
                }
-        //add the wpEditToken
-               $token = htmlspecialchars( $wgUser->editToken() );
                $wgOut->addHTML(
                        Xml::openElement( 'form', array( 'method' => 'post', 'action' => $titleObj->getLocalURL( 'action=submit' ),
                                 'enctype' => 'multipart/form-data', 'id' => 'uploadwarning' ) ) . "\n" .
-                       Xml::hidden('wpEditToken', $token) .
+                       Xml::hidden('wpEditToken', $wgUser->editToken()) .
                        Xml::hidden( 'wpIgnoreWarning', '1' ) . "\n" .
                        Xml::hidden( 'wpSourceType', 'stash' ) . "\n" .
                        Xml::hidden( 'wpSessionKey', $this->mSessionKey ) . "\n" .
@@ -788,16 +786,16 @@ wgUploadAutoFill = {$autofill};
                                wfMsgHtml( 'upload_source_url' ) ;
                    }else{
                         //@@todo depreciate (not needed once $wgEnableJS2system is turned on)
-                $filename_form =
+               $filename_form =
                                "<input type='radio' id='wpSourceTypeFile' name='wpSourceType' value='file' " .
                                   "onchange='toggle_element_activation(\"wpUploadFileURL\",\"wpUploadFile\")' checked='checked' />" .
                                 "<input tabindex='1' type='file' name='wpUploadFile' id='wpUploadFile' " .
-                                  "onfocus='" .
+                                  " onfocus='" .
                                     "toggle_element_activation(\"wpUploadFileURL\",\"wpUploadFile\");" .
                                     "toggle_element_check(\"wpSourceTypeFile\",\"wpSourceTypeURL\")' " .
                                     "onchange='fillDestFilename(\"wpUploadFile\")' size='60' />" .
                                wfMsgHTML( 'upload_source_file' ) . "<br/>" .
-                               "<input type='radio' id='wpSourceTypeURL' name='wpSourceType' value='Url' " .
+                               "<input type='radio' id='wpSourceTypeURL' name='wpSourceType' value='web' " .
                                  "onchange='toggle_element_activation(\"wpUploadFile\",\"wpUploadFileURL\")' />" .
                                "<input tabindex='1' type='text' name='wpUploadFileURL' id='wpUploadFileURL' " .
                                  "onfocus='" .
@@ -808,9 +806,16 @@ wgUploadAutoFill = {$autofill};
 
                    }
                } else {
-                       $filename_form =
-                               "<input tabindex='1' type='file' name='wpUploadFile' id='wpUploadFile' size='60' />" .
-                               "<input type='hidden' name='wpSourceType' value='upload' />" ;
+                       if($wgEnableJS2system){
+                               $filename_form =
+                                       Xml::input( 'wpUploadFile', 60, false, array( 'id'=>'wpUploadFile', 'type'=>'file', 'tabindex' => '1' ) ) .
+                                       Xml::hidden( 'wpSourceType', 'file');
+                       }else{
+                               $filename_form =
+                               "<input tabindex='1' type='file' name='wpUploadFile' id='wpUploadFile' size='60' ".
+                               "onchange='fillDestFilename(\"wpUploadFile\")' />" .
+                               "<input type='hidden' name='wpSourceType' value='file' />" ;
+                       }
                }
 
                if ( $useAjaxDestCheck ) {
@@ -826,11 +831,10 @@ wgUploadAutoFill = {$autofill};
                $encComment = htmlspecialchars( $this->mComment );
 
            //add the wpEditToken
-               $token = htmlspecialchars( $wgUser->editToken() );
                $wgOut->addHTML(
                         Xml::openElement( 'form', array( 'method' => 'post', 'action' => $titleObj->getLocalURL( 'action=submit' ),
                                 'enctype' => 'multipart/form-data', 'id' => 'mw-upload-form' ) ) .
-                        Xml::hidden('wpEditToken', $token) .
+                        Xml::hidden('wpEditToken', $wgUser->editToken()) .
                         Xml::openElement( 'fieldset' ) .
                         Xml::element( 'legend', null, wfMsg( 'upload' ) ) .
                         Xml::openElement( 'table', array( 'border' => '0', 'id' => 'mw-upload-table' ) ) .
index 758a490..d2f94ea 100644 (file)
@@ -463,12 +463,12 @@ class UploadBase {
                        return false;
                }
                $mTempPath = $status->value;
-               session_start(); // start up the session (might have been previously closed to prevent php session locking)
+               if(!isset($_SESSION))
+                       session_start(); // start up the session (might have been previously closed to prevent php session locking)
                $key = $this->getSessionKey();
                $_SESSION['wsUploadData'][$key] = array(
                        'mTempPath'       => $mTempPath,
                        'mFileSize'       => $this->mFileSize,
-                       'mSrcName'        => $this->mSrcName,
                        'mFileProps'      => $this->mFileProps,
                        'version'         => self::SESSION_VERSION,
                );
index 6144e4e..22f8e9b 100644 (file)
@@ -10,15 +10,17 @@ class UploadFromStash extends UploadBase {
                        $sessionData[$key]['version'] == self::SESSION_VERSION;
        }
 
-       static function isValidRequest( &$request ) {
+       static function isValidRequest( $request ) {
                $sessionData = $request->getSessionData( 'wsUploadData' );
                return self::isValidSessionKey( 
                        $request->getInt( 'wpSessionKey' ),
                        $sessionData
                );
        }
-
-       function initialize( $name, $sessionData ) {
+       /*
+        * some $na vars for uploadBase method compatibility.
+        */
+       function initialize( $name, $sessionData, $na, $na2=false ) {
                        /**
                         * Confirming a temporarily stashed upload.
                         * We don't want path names to be forged, so we keep
@@ -41,7 +43,7 @@ class UploadFromStash extends UploadBase {
                $desiredDestName = $request->getText( 'wpDestFile' );
                if( !$desiredDestName )
                        $desiredDestName = $request->getText( 'wpUploadFile' );
-               return $this->initialize( $desiredDestName, $sessionData[$sessionKey] );
+               return $this->initialize( $desiredDestName, $sessionData[$sessionKey], false );
        }
 
        /**
index 2b2a332..4533ef9 100644 (file)
@@ -61,7 +61,8 @@ class UploadFromUrl extends UploadBase {
                        $desiredDestName = $request->getText( 'wpUploadFile' );
                return $this->initialize(
                        $desiredDestName,
-                       $request->getVal( 'wpUploadFileURL' )
+                       $request->getVal( 'wpUploadFileURL' ),
+                       $asyncdownload = false
                );
        }