You've already forked joomla_test
first commit
This commit is contained in:
191
libraries/joomla/input/cli.php
Normal file
191
libraries/joomla/input/cli.php
Normal file
@ -0,0 +1,191 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Input
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE
|
||||
*/
|
||||
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
/**
|
||||
* Joomla! Input CLI Class
|
||||
*
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Input
|
||||
* @since 11.1
|
||||
*/
|
||||
class JInputCLI extends JInput
|
||||
{
|
||||
/**
|
||||
* The executable that was called to run the CLI script.
|
||||
*
|
||||
* @var string
|
||||
* @since 11.1
|
||||
*/
|
||||
public $executable;
|
||||
|
||||
/**
|
||||
* The additional arguments passed to the script that are not associated
|
||||
* with a specific argument name.
|
||||
*
|
||||
* @var array
|
||||
* @since 11.1
|
||||
*/
|
||||
public $args = array();
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $source Source data (Optional, default is $_REQUEST)
|
||||
* @param array $options Array of configuration parameters (Optional)
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function __construct(array $source = null, array $options = array())
|
||||
{
|
||||
if (isset($options['filter']))
|
||||
{
|
||||
$this->filter = $options['filter'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->filter = JFilterInput::getInstance();
|
||||
}
|
||||
|
||||
// Get the command line options
|
||||
$this->parseArguments();
|
||||
|
||||
// Set the options for the class.
|
||||
$this->options = $options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to serialize the input.
|
||||
*
|
||||
* @return string The serialized input.
|
||||
*
|
||||
* @since 12.1
|
||||
*/
|
||||
public function serialize()
|
||||
{
|
||||
// Load all of the inputs.
|
||||
$this->loadAllInputs();
|
||||
|
||||
// Remove $_ENV and $_SERVER from the inputs.
|
||||
$inputs = $this->inputs;
|
||||
unset($inputs['env']);
|
||||
unset($inputs['server']);
|
||||
|
||||
// Serialize the executable, args, options, data, and inputs.
|
||||
return serialize(array($this->executable, $this->args, $this->options, $this->data, $inputs));
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to unserialize the input.
|
||||
*
|
||||
* @param string $input The serialized input.
|
||||
*
|
||||
* @return JInput The input object.
|
||||
*
|
||||
* @since 12.1
|
||||
*/
|
||||
public function unserialize($input)
|
||||
{
|
||||
// Unserialize the executable, args, options, data, and inputs.
|
||||
list($this->executable, $this->args, $this->options, $this->data, $this->inputs) = unserialize($input);
|
||||
|
||||
// Load the filter.
|
||||
if (isset($this->options['filter']))
|
||||
{
|
||||
$this->filter = $this->options['filter'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->filter = JFilterInput::getInstance();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise the options and arguments
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
protected function parseArguments()
|
||||
{
|
||||
// Get the list of argument values from the environment.
|
||||
$args = $_SERVER['argv'];
|
||||
|
||||
// Set the path used for program execution and remove it form the program arguments.
|
||||
$this->executable = array_shift($args);
|
||||
|
||||
// We use a for loop because in some cases we need to look ahead.
|
||||
for ($i = 0; $i < count($args); $i++)
|
||||
{
|
||||
// Get the current argument to analyze.
|
||||
$arg = $args[$i];
|
||||
|
||||
// First let's tackle the long argument case. eg. --foo
|
||||
if (strlen($arg) > 2 && substr($arg, 0, 2) == '--')
|
||||
{
|
||||
|
||||
// Attempt to split the thing over equals so we can get the key/value pair if an = was used.
|
||||
$arg = substr($arg, 2);
|
||||
$parts = explode('=', $arg);
|
||||
$this->data[$parts[0]] = true;
|
||||
|
||||
// Does not have an =, so let's look ahead to the next argument for the value.
|
||||
if (count($parts) == 1 && isset($args[$i + 1]) && preg_match('/^--?.+/', $args[$i + 1]) == 0)
|
||||
{
|
||||
$this->data[$parts[0]] = $args[$i + 1];
|
||||
|
||||
// Since we used the next argument, increment the counter so we don't use it again.
|
||||
$i++;
|
||||
}
|
||||
// We have an equals sign so take the second "part" of the argument as the value.
|
||||
elseif (count($parts) == 2)
|
||||
{
|
||||
$this->data[$parts[0]] = $parts[1];
|
||||
}
|
||||
}
|
||||
|
||||
// Next let's see if we are dealing with a "bunch" of short arguments. eg. -abc
|
||||
elseif (strlen($arg) > 2 && $arg[0] == '-')
|
||||
{
|
||||
|
||||
// For each of these arguments set the value to TRUE since the flag has been set.
|
||||
for ($j = 1; $j < strlen($arg); $j++)
|
||||
{
|
||||
$this->data[$arg[$j]] = true;
|
||||
}
|
||||
}
|
||||
|
||||
// OK, so it isn't a long argument or bunch of short ones, so let's look and see if it is a single
|
||||
// short argument. eg. -h
|
||||
elseif (strlen($arg) == 2 && $arg[0] == '-')
|
||||
{
|
||||
|
||||
// Go ahead and set the value to TRUE and if we find a value later we'll overwrite it.
|
||||
$this->data[$arg[1]] = true;
|
||||
|
||||
// Let's look ahead to see if the next argument is a "value". If it is, use it for this value.
|
||||
if (isset($args[$i + 1]) && preg_match('/^--?.+/', $args[$i + 1]) == 0)
|
||||
{
|
||||
$this->data[$arg[1]] = $args[$i + 1];
|
||||
|
||||
// Since we used the next argument, increment the counter so we don't use it again.
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
// Last but not least, we don't have a key/value based argument so just add it to the arguments list.
|
||||
else
|
||||
{
|
||||
$this->args[] = $arg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
91
libraries/joomla/input/cookie.php
Normal file
91
libraries/joomla/input/cookie.php
Normal file
@ -0,0 +1,91 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Input
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE
|
||||
*/
|
||||
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
/**
|
||||
* Joomla! Input Cookie Class
|
||||
*
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Input
|
||||
* @since 11.1
|
||||
*/
|
||||
class JInputCookie extends JInput
|
||||
{
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $source Ignored.
|
||||
* @param array $options Array of configuration parameters (Optional)
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function __construct(array $source = null, array $options = array())
|
||||
{
|
||||
if (isset($options['filter']))
|
||||
{
|
||||
$this->filter = $options['filter'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->filter = JFilterInput::getInstance();
|
||||
}
|
||||
|
||||
// Set the data source.
|
||||
$this->data = & $_COOKIE;
|
||||
|
||||
// Set the options for the class.
|
||||
$this->options = $options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a value
|
||||
*
|
||||
* @param string $name Name of the value to set.
|
||||
* @param mixed $value Value to assign to the input.
|
||||
* @param integer $expire The time the cookie expires. This is a Unix timestamp so is in number
|
||||
* of seconds since the epoch. In other words, you'll most likely set this
|
||||
* with the time() function plus the number of seconds before you want it
|
||||
* to expire. Or you might use mktime(). time()+60*60*24*30 will set the
|
||||
* cookie to expire in 30 days. If set to 0, or omitted, the cookie will
|
||||
* expire at the end of the session (when the browser closes).
|
||||
* @param string $path The path on the server in which the cookie will be available on. If set
|
||||
* to '/', the cookie will be available within the entire domain. If set to
|
||||
* '/foo/', the cookie will only be available within the /foo/ directory and
|
||||
* all sub-directories such as /foo/bar/ of domain. The default value is the
|
||||
* current directory that the cookie is being set in.
|
||||
* @param string $domain The domain that the cookie is available to. To make the cookie available
|
||||
* on all subdomains of example.com (including example.com itself) then you'd
|
||||
* set it to '.example.com'. Although some browsers will accept cookies without
|
||||
* the initial ., RFC 2109 requires it to be included. Setting the domain to
|
||||
* 'www.example.com' or '.www.example.com' will make the cookie only available
|
||||
* in the www subdomain.
|
||||
* @param boolean $secure Indicates that the cookie should only be transmitted over a secure HTTPS
|
||||
* connection from the client. When set to TRUE, the cookie will only be set
|
||||
* if a secure connection exists. On the server-side, it's on the programmer
|
||||
* to send this kind of cookie only on secure connection (e.g. with respect
|
||||
* to $_SERVER["HTTPS"]).
|
||||
* @param boolean $httpOnly When TRUE the cookie will be made accessible only through the HTTP protocol.
|
||||
* This means that the cookie won't be accessible by scripting languages, such
|
||||
* as JavaScript. This setting can effectively help to reduce identity theft
|
||||
* through XSS attacks (although it is not supported by all browsers).
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @link http://www.ietf.org/rfc/rfc2109.txt
|
||||
* @see setcookie()
|
||||
* @since 11.1
|
||||
*/
|
||||
public function set($name, $value, $expire = 0, $path = '', $domain = '', $secure = false, $httpOnly = false)
|
||||
{
|
||||
setcookie($name, $value, $expire, $path, $domain, $secure, $httpOnly);
|
||||
|
||||
$this->data[$name] = $value;
|
||||
}
|
||||
}
|
119
libraries/joomla/input/files.php
Normal file
119
libraries/joomla/input/files.php
Normal file
@ -0,0 +1,119 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Input
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE
|
||||
*/
|
||||
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
/**
|
||||
* Joomla! Input Files Class
|
||||
*
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Input
|
||||
* @since 11.1
|
||||
*/
|
||||
class JInputFiles extends JInput
|
||||
{
|
||||
protected $decodedData = array();
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $source Ignored.
|
||||
* @param array $options Array of configuration parameters (Optional)
|
||||
*
|
||||
* @since 12.1
|
||||
*/
|
||||
public function __construct(array $source = null, array $options = array())
|
||||
{
|
||||
if (isset($options['filter']))
|
||||
{
|
||||
$this->filter = $options['filter'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->filter = JFilterInput::getInstance();
|
||||
}
|
||||
|
||||
// Set the data source.
|
||||
$this->data = & $_FILES;
|
||||
|
||||
// Set the options for the class.
|
||||
$this->options = $options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a value from the input data.
|
||||
*
|
||||
* @param string $name Name of the value to get.
|
||||
* @param mixed $default Default value to return if variable does not exist.
|
||||
* @param string $filter Filter to apply to the value.
|
||||
*
|
||||
* @return mixed The filtered input value.
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function get($name, $default = null, $filter = 'cmd')
|
||||
{
|
||||
if (isset($this->data[$name]))
|
||||
{
|
||||
$results = $this->decodeData(
|
||||
array(
|
||||
$this->data[$name]['name'],
|
||||
$this->data[$name]['type'],
|
||||
$this->data[$name]['tmp_name'],
|
||||
$this->data[$name]['error'],
|
||||
$this->data[$name]['size']
|
||||
)
|
||||
);
|
||||
return $results;
|
||||
}
|
||||
|
||||
return $default;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to decode a data array.
|
||||
*
|
||||
* @param array $data The data array to decode.
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
protected function decodeData(array $data)
|
||||
{
|
||||
$result = array();
|
||||
|
||||
if (is_array($data[0]))
|
||||
{
|
||||
foreach ($data[0] as $k => $v)
|
||||
{
|
||||
$result[$k] = $this->decodeData(array($data[0][$k], $data[1][$k], $data[2][$k], $data[3][$k], $data[4][$k]));
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
return array('name' => $data[0], 'type' => $data[1], 'tmp_name' => $data[2], 'error' => $data[3], 'size' => $data[4]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a value
|
||||
*
|
||||
* @param string $name Name of the value to set.
|
||||
* @param mixed $value Value to assign to the input.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function set($name, $value)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
1
libraries/joomla/input/index.html
Normal file
1
libraries/joomla/input/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
366
libraries/joomla/input/input.php
Normal file
366
libraries/joomla/input/input.php
Normal file
@ -0,0 +1,366 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Input
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE
|
||||
*/
|
||||
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
/**
|
||||
* Joomla! Input Base Class
|
||||
*
|
||||
* This is an abstracted input class used to manage retrieving data from the application environment.
|
||||
*
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Input
|
||||
* @since 11.1
|
||||
*
|
||||
* @method integer getInt() getInt($name, $default = null) Get a signed integer.
|
||||
* @method integer getUint() getUint($name, $default = null) Get an unsigned integer.
|
||||
* @method float getFloat() getFloat($name, $default = null) Get a floating-point number.
|
||||
* @method boolean getBool() getBool($name, $default = null) Get a boolean.
|
||||
* @method string getWord() getWord($name, $default = null)
|
||||
* @method string getAlnum() getAlnum($name, $default = null)
|
||||
* @method string getCmd() getCmd($name, $default = null)
|
||||
* @method string getBase64() getBase64($name, $default = null)
|
||||
* @method string getString() getString($name, $default = null)
|
||||
* @method string getHtml() getHtml($name, $default = null)
|
||||
* @method string getPath() getPath($name, $default = null)
|
||||
* @method string getUsername() getUsername($name, $default = null)
|
||||
*/
|
||||
class JInput implements Serializable, Countable
|
||||
{
|
||||
/**
|
||||
* Options array for the JInput instance.
|
||||
*
|
||||
* @var array
|
||||
* @since 11.1
|
||||
*/
|
||||
protected $options = array();
|
||||
|
||||
/**
|
||||
* Filter object to use.
|
||||
*
|
||||
* @var JFilterInput
|
||||
* @since 11.1
|
||||
*/
|
||||
protected $filter = null;
|
||||
|
||||
/**
|
||||
* Input data.
|
||||
*
|
||||
* @var array
|
||||
* @since 11.1
|
||||
*/
|
||||
protected $data = array();
|
||||
|
||||
/**
|
||||
* Input objects
|
||||
*
|
||||
* @var array
|
||||
* @since 11.1
|
||||
*/
|
||||
protected $inputs = array();
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $source Source data (Optional, default is $_REQUEST)
|
||||
* @param array $options Array of configuration parameters (Optional)
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function __construct($source = null, array $options = array())
|
||||
{
|
||||
if (isset($options['filter']))
|
||||
{
|
||||
$this->filter = $options['filter'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->filter = JFilterInput::getInstance();
|
||||
}
|
||||
|
||||
if (is_null($source))
|
||||
{
|
||||
$this->data = &$_REQUEST;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->data = $source;
|
||||
}
|
||||
|
||||
// Set the options for the class.
|
||||
$this->options = $options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Magic method to get an input object
|
||||
*
|
||||
* @param mixed $name Name of the input object to retrieve.
|
||||
*
|
||||
* @return JInput The request input object
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
if (isset($this->inputs[$name]))
|
||||
{
|
||||
return $this->inputs[$name];
|
||||
}
|
||||
|
||||
$className = 'JInput' . ucfirst($name);
|
||||
if (class_exists($className))
|
||||
{
|
||||
$this->inputs[$name] = new $className(null, $this->options);
|
||||
return $this->inputs[$name];
|
||||
}
|
||||
|
||||
$superGlobal = '_' . strtoupper($name);
|
||||
if (isset($GLOBALS[$superGlobal]))
|
||||
{
|
||||
$this->inputs[$name] = new JInput($GLOBALS[$superGlobal], $this->options);
|
||||
return $this->inputs[$name];
|
||||
}
|
||||
|
||||
// TODO throw an exception
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the number of variables.
|
||||
*
|
||||
* @return integer The number of variables in the input.
|
||||
*
|
||||
* @since 12.2
|
||||
* @see Countable::count()
|
||||
*/
|
||||
public function count()
|
||||
{
|
||||
return count($this->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a value from the input data.
|
||||
*
|
||||
* @param string $name Name of the value to get.
|
||||
* @param mixed $default Default value to return if variable does not exist.
|
||||
* @param string $filter Filter to apply to the value.
|
||||
*
|
||||
* @return mixed The filtered input value.
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function get($name, $default = null, $filter = 'cmd')
|
||||
{
|
||||
if (isset($this->data[$name]))
|
||||
{
|
||||
return $this->filter->clean($this->data[$name], $filter);
|
||||
}
|
||||
|
||||
return $default;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an array of values from the request.
|
||||
*
|
||||
* @param array $vars Associative array of keys and filter types to apply.
|
||||
* @param mixed $datasource Array to retrieve data from, or null
|
||||
*
|
||||
* @return mixed The filtered input data.
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function getArray(array $vars, $datasource = null)
|
||||
{
|
||||
$results = array();
|
||||
|
||||
foreach ($vars as $k => $v)
|
||||
{
|
||||
if (is_array($v))
|
||||
{
|
||||
if (is_null($datasource))
|
||||
{
|
||||
$results[$k] = $this->getArray($v, $this->get($k, null, 'array'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$results[$k] = $this->getArray($v, $datasource[$k]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (is_null($datasource))
|
||||
{
|
||||
$results[$k] = $this->get($k, null, $v);
|
||||
}
|
||||
elseif (isset($datasource[$k]))
|
||||
{
|
||||
$results[$k] = $this->filter->clean($datasource[$k], $v);
|
||||
}
|
||||
else
|
||||
{
|
||||
$results[$k] = $this->filter->clean(null, $v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a value
|
||||
*
|
||||
* @param string $name Name of the value to set.
|
||||
* @param mixed $value Value to assign to the input.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function set($name, $value)
|
||||
{
|
||||
$this->data[$name] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Define a value. The value will only be set if there's no value for the name or if it is null.
|
||||
*
|
||||
* @param string $name Name of the value to define.
|
||||
* @param mixed $value Value to assign to the input.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 12.1
|
||||
*/
|
||||
public function def($name, $value)
|
||||
{
|
||||
if (isset($this->data[$name]))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$this->data[$name] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Magic method to get filtered input data.
|
||||
*
|
||||
* @param string $name Name of the filter type prefixed with 'get'.
|
||||
* @param array $arguments [0] The name of the variable [1] The default value.
|
||||
*
|
||||
* @return mixed The filtered input value.
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function __call($name, $arguments)
|
||||
{
|
||||
if (substr($name, 0, 3) == 'get')
|
||||
{
|
||||
|
||||
$filter = substr($name, 3);
|
||||
|
||||
$default = null;
|
||||
if (isset($arguments[1]))
|
||||
{
|
||||
$default = $arguments[1];
|
||||
}
|
||||
|
||||
return $this->get($arguments[0], $default, $filter);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the request method.
|
||||
*
|
||||
* @return string The request method.
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function getMethod()
|
||||
{
|
||||
$method = strtoupper($_SERVER['REQUEST_METHOD']);
|
||||
return $method;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to serialize the input.
|
||||
*
|
||||
* @return string The serialized input.
|
||||
*
|
||||
* @since 12.1
|
||||
*/
|
||||
public function serialize()
|
||||
{
|
||||
// Load all of the inputs.
|
||||
$this->loadAllInputs();
|
||||
|
||||
// Remove $_ENV and $_SERVER from the inputs.
|
||||
$inputs = $this->inputs;
|
||||
unset($inputs['env']);
|
||||
unset($inputs['server']);
|
||||
|
||||
// Serialize the options, data, and inputs.
|
||||
return serialize(array($this->options, $this->data, $inputs));
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to unserialize the input.
|
||||
*
|
||||
* @param string $input The serialized input.
|
||||
*
|
||||
* @return JInput The input object.
|
||||
*
|
||||
* @since 12.1
|
||||
*/
|
||||
public function unserialize($input)
|
||||
{
|
||||
// Unserialize the options, data, and inputs.
|
||||
list($this->options, $this->data, $this->inputs) = unserialize($input);
|
||||
|
||||
// Load the filter.
|
||||
if (isset($this->options['filter']))
|
||||
{
|
||||
$this->filter = $this->options['filter'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->filter = JFilterInput::getInstance();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to load all of the global inputs.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 12.1
|
||||
*/
|
||||
protected function loadAllInputs()
|
||||
{
|
||||
static $loaded = false;
|
||||
|
||||
if (!$loaded)
|
||||
{
|
||||
// Load up all the globals.
|
||||
foreach ($GLOBALS as $global => $data)
|
||||
{
|
||||
// Check if the global starts with an underscore.
|
||||
if (strpos($global, '_') === 0)
|
||||
{
|
||||
// Convert global name to input name.
|
||||
$global = strtolower($global);
|
||||
$global = substr($global, 1);
|
||||
|
||||
// Get the input.
|
||||
$this->$global;
|
||||
}
|
||||
}
|
||||
|
||||
$loaded = true;
|
||||
}
|
||||
}
|
||||
}
|
74
libraries/joomla/input/json.php
Normal file
74
libraries/joomla/input/json.php
Normal file
@ -0,0 +1,74 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Input
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE
|
||||
*/
|
||||
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
/**
|
||||
* Joomla! Input JSON Class
|
||||
*
|
||||
* This class decodes a JSON string from the raw request data and makes it available via
|
||||
* the standard JInput interface.
|
||||
*
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Input
|
||||
* @since 12.2
|
||||
*/
|
||||
class JInputJSON extends JInput
|
||||
{
|
||||
/**
|
||||
* @var string The raw JSON string from the request.
|
||||
* @since 12.2
|
||||
*/
|
||||
private $_raw;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $source Source data (Optional, default is the raw HTTP input decoded from JSON)
|
||||
* @param array $options Array of configuration parameters (Optional)
|
||||
*
|
||||
* @since 12.2
|
||||
*/
|
||||
public function __construct(array $source = null, array $options = array())
|
||||
{
|
||||
if (isset($options['filter']))
|
||||
{
|
||||
$this->filter = $options['filter'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->filter = JFilterInput::getInstance();
|
||||
}
|
||||
|
||||
if (is_null($source))
|
||||
{
|
||||
$this->_raw = file_get_contents('php://input');
|
||||
$this->data = json_decode($this->_raw, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->data = & $source;
|
||||
}
|
||||
|
||||
// Set the options for the class.
|
||||
$this->options = $options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the raw JSON string from the request.
|
||||
*
|
||||
* @return string The raw JSON string from the request.
|
||||
*
|
||||
* @since 12.2
|
||||
*/
|
||||
public function getRaw()
|
||||
{
|
||||
return $this->_raw;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user