getRequestArrayFromString() public static method

Converts the supplied request string into an array of query paramater name/value mappings. The current query parameters (everything in $_GET and $_POST) are forwarded to request array before it is returned.
public static getRequestArrayFromString ( string | array | null $request, array $defaultRequest = null ) : array
$request string | array | null The base request string or array, eg, `'module=UserLanguage&action=getLanguage'`.
$defaultRequest array Default query parameters. If a query parameter is absent in `$request`, it will be loaded from this. Defaults to `$_GET + $_POST`.
return array
Example #1
0
 /**
  * Redirects the user to a paypal so they can donate to Piwik.
  */
 public function redirectToPaypal()
 {
     $parameters = Request::getRequestArrayFromString($request = null);
     foreach ($parameters as $name => $param) {
         if ($name == 'idSite' || $name == 'module' || $name == 'action') {
             unset($parameters[$name]);
         }
     }
     $url = "https://www.paypal.com/cgi-bin/webscr?" . Url::getQueryStringFromParameters($parameters);
     Url::redirectToUrl($url);
     exit;
 }
Example #2
0
 /**
  * Second, generic filters (Sort, Limit, Replace Column Names, etc.)
  */
 private function applyGenericFilters()
 {
     $requestArray = $this->request->getRequestArray();
     $request = \Piwik\API\Request::getRequestArrayFromString($requestArray);
     if (false === $this->config->enable_sort) {
         $request['filter_sort_column'] = '';
         $request['filter_sort_order'] = '';
     }
     $genericFilter = new \Piwik\API\DataTableGenericFilter($request);
     $genericFilter->filter($this->dataTable);
 }
Example #3
0
File: API.php Project: piwik/piwik
 /**
  * Performs multiple API requests at once and returns every result.
  *
  * @param array $urls The array of API requests.
  * @return array
  */
 public function getBulkRequest($urls)
 {
     if (empty($urls)) {
         return array();
     }
     $urls = array_map('urldecode', $urls);
     $urls = array_map(array('Piwik\\Common', 'unsanitizeInputValue'), $urls);
     $result = array();
     foreach ($urls as $url) {
         $params = Request::getRequestArrayFromString($url . '&format=php&serialize=0');
         if (isset($params['urls']) && $params['urls'] == $urls) {
             // by default 'urls' is added to $params as Request::getRequestArrayFromString adds all $_GET/$_POST
             // default parameters
             unset($params['urls']);
         }
         if (!empty($params['segment']) && strpos($url, 'segment=') > -1) {
             // only unsanitize input when segment is actually present in URL, not when it was used from
             // $defaultRequest in Request::getRequestArrayFromString from $_GET/$_POST
             $params['segment'] = urlencode(Common::unsanitizeInputValue($params['segment']));
         }
         $req = new Request($params);
         $result[] = $req->process();
     }
     return $result;
 }