Skip to content
Extraits de code Groupes Projets
Valider 68b8ccb4 rédigé par Thomas Steur's avatar Thomas Steur
Parcourir les fichiers

refs #3970 probably a better fix for html entities in json output, fixes...

refs #3970 probably a better fix for html entities in json output, fixes bulkRequest is buggy with PHP and other renderers
parent d0c49074
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -352,6 +352,7 @@ class ResponseBuilder ...@@ -352,6 +352,7 @@ class ResponseBuilder
} }
return $array; return $array;
} }
$multiDimensional = $this->handleMultiDimensionalArray($array); $multiDimensional = $this->handleMultiDimensionalArray($array);
if ($multiDimensional !== false) { if ($multiDimensional !== false) {
return $multiDimensional; return $multiDimensional;
...@@ -431,54 +432,10 @@ class ResponseBuilder ...@@ -431,54 +432,10 @@ class ResponseBuilder
*/ */
public static function convertMultiDimensionalArrayToJson($array) public static function convertMultiDimensionalArrayToJson($array)
{ {
$isAssociative = Piwik::isAssociativeArray($array); $jsonRenderer = new Json();
$jsonRenderer->setTable($array);
if ($isAssociative) { $renderedReport = $jsonRenderer->render();
$json = "{"; return $renderedReport;
} else {
$json = "[";
}
foreach ($array as $key => $value) {
if ($isAssociative) {
$json .= "\"" . $key . "\":";
}
switch (true) {
// Case dimension is a PHP array
case (is_array($value)):
$json .= Common::json_encode($value);
break;
// Case dimension is a Set or a DataTable
case ($value instanceof DataTable\Map || $value instanceof DataTable):
$XMLRenderer = new Json();
$XMLRenderer->setTable($value);
$renderedReport = $XMLRenderer->render();
$json .= $renderedReport;
break;
// Case scalar
default:
$json .= Common::json_encode($value);
break;
}
$json .= ",";
}
// Remove trailing ","
$json = substr($json, 0, strlen($json) - 1);
if ($isAssociative) {
$json .= "}";
} else {
$json .= "]";
}
return $json;
} }
/** /**
......
...@@ -576,7 +576,7 @@ class API extends \Piwik\Plugin\API ...@@ -576,7 +576,7 @@ class API extends \Piwik\Plugin\API
$result = array(); $result = array();
foreach ($urls as $url) { foreach ($urls as $url) {
$req = new Request($url . '&format=original&serialize=0'); $req = new Request($url . '&format=php&serialize=0');
$result[] = $req->process(); $result[] = $req->process();
} }
return $result; return $result;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter