From: Mark A. Hershberger Date: Wed, 1 Sep 2010 16:58:44 +0000 (+0000) Subject: fill out appendQuery() for FauxRequest — probably should be refactored X-Git-Tag: 1.31.0-rc.0~35246 X-Git-Url: https://git.cyclocoop.org/%7B%24admin_url%7Dmembres/cotisations/rappels.php?a=commitdiff_plain;h=3751511ff0550f01e0685e2a7a3499f2ee90dfff;p=lhc%2Fweb%2Fwiklou.git fill out appendQuery() for FauxRequest — probably should be refactored into the parent class, but the parent uses $_GET where we have $this->data --- diff --git a/includes/WebRequest.php b/includes/WebRequest.php index 896066986b..bb1cfd3433 100644 --- a/includes/WebRequest.php +++ b/includes/WebRequest.php @@ -625,10 +625,10 @@ class WebRequest { $file = new WebRequestUpload( $this, $key ); return $file->getName(); } - + /** * Return a WebRequestUpload object corresponding to the key - * + * * @param @key string * @return WebRequestUpload */ @@ -727,7 +727,7 @@ class WebRequest { $ext = substr( $pi, $dotPos ); return !in_array( $ext, array( $wgScriptExtension, '.php', '.php5' ) ); } - + /** * Parse the Accept-Language header sent by the client into an array * @return array( languageCode => q-value ) sorted by q-value in descending order @@ -740,15 +740,15 @@ class WebRequest { if ( !$acceptLang ) { return array(); } - + // Return the language codes in lower case $acceptLang = strtolower( $acceptLang ); - + // Break up string into pieces (languages and q factors) $lang_parse = null; preg_match_all( '/([a-z]{1,8}(-[a-z]{1,8})?|\*)\s*(;\s*q\s*=\s*(1|0(\.[0-9]+)?)?)?/', $acceptLang, $lang_parse ); - + if ( !count( $lang_parse[1] ) ) { return array(); } @@ -777,10 +777,10 @@ class WebRequestUpload { protected $request; protected $doesExist; protected $fileInfo; - + /** * Constructor. Should only be called by WebRequest - * + * * @param $request WebRequest The associated request * @param $key string Key in $_FILES array (name of form field) */ @@ -791,26 +791,26 @@ class WebRequestUpload { $this->fileInfo = $_FILES[$key]; } } - + /** * Return whether a file with this name was uploaded. - * + * * @return bool */ public function exists() { return $this->doesExist; } - + /** * Return the original filename of the uploaded file - * + * * @return mixed Filename or null if non-existent */ public function getName() { if ( !$this->exists() ) { return null; } - + global $wgContLang; $name = $this->fileInfo['name']; @@ -821,51 +821,51 @@ class WebRequestUpload { wfDebug( __METHOD__ . ": {$this->fileInfo['name']} normalized to '$name'\n" ); return $name; } - + /** * Return the file size of the uploaded file - * + * * @return int File size or zero if non-existent */ public function getSize() { if ( !$this->exists() ) { return 0; } - + return $this->fileInfo['size']; } - + /** * Return the path to the temporary file - * + * * @return mixed Path or null if non-existent */ public function getTempName() { if ( !$this->exists() ) { return null; } - + return $this->fileInfo['tmp_name']; } - + /** * Return the upload error. See link for explanation * http://www.php.net/manual/en/features.file-upload.errors.php - * + * * @return int One of the UPLOAD_ constants, 0 if non-existent */ public function getError() { if ( !$this->exists() ) { return 0; # UPLOAD_ERR_OK } - + return $this->fileInfo['error']; } - + /** * Returns whether this upload failed because of overflow of a maximum set * in php.ini - * + * * @return bool */ public function isIniSizeOverflow() { @@ -879,7 +879,7 @@ class WebRequestUpload { # post_max_size is exceeded return true; } - + return false; } } @@ -936,7 +936,23 @@ class FauxRequest extends WebRequest { } public function appendQuery( $query ) { - $this->notImplemented( __METHOD__ ); + global $wgTitle; + $basequery = ''; + foreach( $this->data as $var => $val ) { + if ( $var == 'title' ) + continue; + if ( is_array( $val ) ) + /* This will happen given a request like + * http://en.wikipedia.org/w/index.php?title[]=Special:Userlogin&returnto[]=Main_Page + */ + continue; + $basequery .= '&' . urlencode( $var ) . '=' . urlencode( $val ); + } + $basequery .= '&' . $query; + + # Trim the extra & + $basequery = substr( $basequery, 1 ); + return $wgTitle->getLocalURL( $basequery ); } public function getHeader( $name ) {