';
switch ($_config["charts"]) {
case "doughnut":
echo self::javascriptDoughnut($_config);
break;
case "bar":
echo self::javascriptBar($_config);
break;
case "line":
echo self::javascriptLine($_config);
break;
case "pie":
echo self::javascriptPie($_config);
break;
default:
break;
}
}
private static function constructData(array $_data, ?array $_config = NULL)
{
$label = $nb = $backgroundColor = $borderColor = "";
$nbData = count($_data);
if(empty($_config["backgroundColor"])){
$data["backgroundColor"] = array(
"rgba(242, 84, 84, 0.6)",
"rgba(242, 132, 84, 0.6)",
"rgba(242, 179, 84, 0.6)",
"rgba(242, 226, 84, 0.6)",
"rgba(210, 242, 84, 0.6)",
"rgba(163, 242, 84, 0.6)",
"rgba(116, 242, 84, 0.6)",
"rgba(84, 242, 100, 0.6)",
"rgba(84, 242, 147, 0.6)",
"rgba(84, 242, 195, 0.6)",
"rgba(84, 242, 242, 0.6)",
"rgba(84, 195, 242, 0.6)",
"rgba(84, 147, 242, 0.6)",
"rgba(84, 100, 242, 0.6)",
"rgba(116, 84, 242, 0.6)",
"rgba(163, 84, 242, 0.6)",
"rgba(210, 84, 242, 0.6)",
"rgba(242, 84, 226, 0.6)",
"rgba(242, 84, 179, 0.6)",
"rgba(242, 84, 132, 0.6)"
);
} else {
$data["backgroundColor"] = $_config["backgroundColor"];
}
if(empty($_config["borderColor"])){
$data["borderColor"] = array(
"rgba(242, 84, 84, 1.0)",
"rgba(242, 132, 84, 1.0)",
"rgba(242, 179, 84, 1.0)",
"rgba(242, 226, 84, 1.0)",
"rgba(210, 242, 84, 1.0)",
"rgba(163, 242, 84, 1.0)",
"rgba(116, 242, 84, 1.0)",
"rgba(84, 242, 100, 1.0)",
"rgba(84, 242, 147, 1.0)",
"rgba(84, 242, 195, 1.0)",
"rgba(84, 242, 242, 1.0)",
"rgba(84, 195, 242, 1.0)",
"rgba(84, 147, 242, 1.0)",
"rgba(84, 100, 242, 1.0)",
"rgba(116, 84, 242, 1.0)",
"rgba(163, 84, 242, 1.0)",
"rgba(210, 84, 242, 1.0)",
"rgba(242, 84, 226, 1.0)",
"rgba(242, 84, 179, 1.0)",
"rgba(242, 84, 132, 1.0)"
);
} else {
$data["borderColor"] = $_config["borderColor"];
}
for ($i = 0; $i < $nbData; $i++) {
$backgroundColor .= '"' . $data["backgroundColor"][$i] . '"';
if ($i != $nbData) {
$backgroundColor .= ", ";
}
}
for ($i = 0; $i < $nbData; $i++) {
$borderColor .= '"' . $data["borderColor"][$i] . '"';
if ($i != $nbData) {
$borderColor .= ", ";
}
}
for ($i = 0; $i < $nbData; $i++) {
$label .= ($_data[$i]["nb"] > 0) ? '"' . $_data[$i]["label"] . '"' : '"Aucun(e)s ' . $_data[$i]["label"] . '"';
if ($i != $nbData) {
$label .= ", ";
}
}
for ($i = 0; $i < $nbData; $i++) {
$nb .= '"' . $_data[$i]["nb"] . '"';
if ($i != $nbData) {
$nb .= ", ";
}
}
return array("label" => $label, "nb" => $nb, "backgroundColor" => $backgroundColor, "borderColor" => $borderColor);
}
private static function javascriptPie(array $_config)
{
$sort = self::constructData($_config["data"], $_config["config"]);
return '';
}
private static function javascriptDoughnut(array $_config)
{
$sort = self::constructData($_config["data"], $_config["config"]);
return '';
}
private static function javascriptBar(array $_config)
{
$sort = self::constructData($_config["data"], $_config["config"]);
return '';
}
private static function constructDataLine(array $_data)
{
$return["labels"] = $return["data"] = NULL;
foreach ($_data[0] as $key => $value) {
$return["labels"] .= '"' . $key . '", ';
$return["data"] .= $value . ', ';
}
return $return;
}
private static function javascriptLine(array $_config)
{
$sort = self::constructDataLine($_config["data"]);
return '';
}
}