width = (int) $width; $this->height = (int) $height; } /** @prototype void public function setTimeMode($from, $to, $granularity) */ public function setTimeMode($from, $to, $granularity) { $this->granularity = $granularity; if (Validate::isDate($from)) { $from = strtotime($from); } $this->from = $from; if (Validate::isDate($to)) { $to = strtotime($to); } $this->to = $to; if ($granularity == 'd') { $this->format = '%d/%m/%y'; } if ($granularity == 'w') { $this->format = '%d/%m/%y'; } if ($granularity == 'm') { $this->format = '%m/%y'; } if ($granularity == 'y') { $this->format = '%y'; } $this->timeMode = true; } public function getCurve($i) { if (!array_key_exists($i, $this->curves)) { $this->curves[$i] = new Curve(); } return $this->curves[$i]; } /** @prototype void public function display() */ public function display() { echo $this->fetch(); } public function fetch() { if ($this->timeMode) { $options = 'xaxis:{mode:"time",timeformat:\'' . addslashes($this->format) . '\',min:' . $this->from . '000,max:' . $this->to . '000}'; if ($this->granularity == 'd') { foreach ($this->curves as $curve) { /* @var Curve $curve */ for ($i = $this->from; $i <= $this->to; $i = strtotime('+1 day', $i)) { if (!$curve->getPoint($i)) { $curve->setPoint($i, 0); } } } } } $jsCurves = []; foreach ($this->curves as $curve) { $jsCurves[] = $curve->getValues($this->timeMode); } if (count($jsCurves)) { return '
'; } } }