From b9b85843572bf283f48285001e276ba7e61b63f6 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sun, 22 Feb 2009 13:37:51 +0100 Subject: updated to MediaWiki 1.14.0 --- includes/WebRequest.php | 52 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) (limited to 'includes/WebRequest.php') diff --git a/includes/WebRequest.php b/includes/WebRequest.php index 3fce5845..46747125 100644 --- a/includes/WebRequest.php +++ b/includes/WebRequest.php @@ -39,7 +39,8 @@ if ( !function_exists( '__autoload' ) ) { * not create a second WebRequest object; make a FauxRequest object if * you want to pass arbitrary data to some function in place of the web * input. - * + * + * @ingroup HTTP */ class WebRequest { var $data = array(); @@ -54,7 +55,7 @@ class WebRequest { // POST overrides GET data // We don't use $_REQUEST here to avoid interference from cookies... - $this->data = wfArrayMerge( $_GET, $_POST ); + $this->data = $_POST + $_GET; } /** @@ -255,6 +256,18 @@ class WebRequest { return (string)$val; } } + + /** + * Set an aribtrary value into our get/post data. + * @param $key string Key name to use + * @param $value mixed Value to set + * @return mixed old value if one was present, null otherwise + */ + function setVal( $key, $value ) { + $ret = isset( $this->data[$key] ) ? $this->data[$key] : null; + $this->data[$key] = $value; + return $ret; + } /** * Fetch an array from the input or return $default if it's not set. @@ -507,7 +520,7 @@ class WebRequest { unset( $newquery['title'] ); $newquery = array_merge( $newquery, $array ); $query = wfArrayToCGI( $newquery ); - return $onlyquery ? $query : $wgTitle->getLocalURL( $basequery ); + return $onlyquery ? $query : $wgTitle->getLocalURL( $query ); } /** @@ -636,11 +649,24 @@ class WebRequest { } } } + + /* + * Get data from $_SESSION + */ + function getSessionData( $key ) { + if( !isset( $_SESSION[$key] ) ) + return null; + return $_SESSION[$key]; + } + function setSessionData( $key, $data ) { + $_SESSION[$key] = $data; + } } /** * WebRequest clone which takes values from a provided array. * + * @ingroup HTTP */ class FauxRequest extends WebRequest { var $wasPosted = false; @@ -650,7 +676,7 @@ class FauxRequest extends WebRequest { * fake GET/POST values * @param $wasPosted Bool: whether to treat the data as POST */ - function FauxRequest( $data, $wasPosted = false ) { + function FauxRequest( $data, $wasPosted = false, $session = null ) { if( is_array( $data ) ) { $this->data = $data; } else { @@ -658,6 +684,11 @@ class FauxRequest extends WebRequest { } $this->wasPosted = $wasPosted; $this->headers = array(); + $this->session = $session ? $session : array(); + } + + function notImplemented( $method ) { + throw new MWException( "{$method}() not implemented" ); } function getText( $name, $default = '' ) { @@ -678,15 +709,24 @@ class FauxRequest extends WebRequest { } function getRequestURL() { - throw new MWException( 'FauxRequest::getRequestURL() not implemented' ); + $this->notImplemented( __METHOD__ ); } function appendQuery( $query ) { - throw new MWException( 'FauxRequest::appendQuery() not implemented' ); + $this->notImplemented( __METHOD__ ); } function getHeader( $name ) { return isset( $this->headers[$name] ) ? $this->headers[$name] : false; } + function getSessionData( $key ) { + if( !isset( $this->session[$key] ) ) + return null; + return $this->session[$key]; + } + function setSessionData( $key, $data ) { + $this->notImplemented( __METHOD__ ); + } + } -- cgit v1.2.3-54-g00ecf