'; 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 ''; } }