/** * Performs multiple API requests at once and returns every result. * * @param array $urls The array of API requests. */ public function getBulkRequest($urls) { if (empty($urls)) { return array(); } $urls = Piwik_Common::unsanitizeInputValues($urls); $result = array(); foreach ($urls as $url) { $req = new Piwik_API_Request($url); $result[] = $req->process(); } return $result; }
public static function getCustomVariables($scope, $request) { if ($scope == 'visit') { $parameter = '_cvar'; $debug = 'Visit level'; } else { $parameter = 'cvar'; $debug = 'Page level'; } $customVar = Piwik_Common::unsanitizeInputValues(Piwik_Common::getRequestVar($parameter, '', 'json', $request)); if (!is_array($customVar)) { return array(); } $customVariables = array(); foreach ($customVar as $id => $keyValue) { $id = (int) $id; if ($id < 1 || $id > Piwik_Tracker::MAX_CUSTOM_VARIABLES || count($keyValue) != 2 || !is_string($keyValue[0]) && !is_numeric($keyValue[0])) { printDebug("Invalid custom variables detected (id={$id})"); continue; } if (strlen($keyValue[1]) == 0) { $keyValue[1] = ""; } // We keep in the URL when Custom Variable have empty names // and values, as it means they can be deleted server side $key = self::truncateCustomVariable($keyValue[0]); $value = self::truncateCustomVariable($keyValue[1]); $customVariables['custom_var_k' . $id] = $key; $customVariables['custom_var_v' . $id] = $value; } if (!empty($customVariables)) { printDebug("{$debug} Custom Variables: "); printDebug($customVariables); } return $customVariables; }