$this->assign('month', $month); $this->assign('month_txt', date('F', mktime(0, 0, 0, $month, 1))); // current month stats $month_moods = Mood::CountMonthMoods($month, $year); $month_nb_moods = $month_moods['count']; $month_nb_goods = $month_moods[MoodLevel::GOOD]; $month_nb_bads = $month_moods[MoodLevel::BAD]; if (empty($month_nb_moods)) { $month_nb_moods = 1; } $this->assign('month_goods_percentage', $month_nb_goods * 100 / $month_nb_moods); $this->assign('month_bads_percentage', $month_nb_bads * 100 / $month_nb_moods); $this->assign('month_goods', $month_nb_goods); $this->assign('month_bads', $month_nb_bads); // days radar graph $month_moods = Mood::MonthMoods($month, $year); $monthDays_moods = array(); for ($i = 0; $i < 7; $i++) { $monthDays_moods[MoodLevel::GOOD][$i] = 0; $monthDays_moods[MoodLevel::BAD][$i] = 0; $monthDays_moods['total'][$i] = 0; } foreach ($month_moods as $m) { $monthDays_moods[$m->getMood()][date('N', $m->getTime()) - 1]++; $monthDays_moods['total'][date('N', $m->getTime()) - 1]++; } $s .= "\n new Chart(document.getElementById('chartMonth').getContext('2d')).Bar(\n {\n labels: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],\n datasets: [\n {\n data: [" . implode(", ", $monthDays_moods[MoodLevel::GOOD]) . "],\n fillColor: 'rgba(150,220,220,0.1)',\n strokeColor: \$('#color_picker .progress-bar-success').css('background-color'),\n highlightFill: 'rgba(150,220,220,0.5)',\n label: 'Good Moods'\n },\n {\n data: [" . implode(", ", $monthDays_moods[MoodLevel::BAD]) . "],\n fillColor: 'rgba(220,150,220,0.1)',\n strokeColor: \$('#color_picker .progress-bar-danger').css('background-color'),\n highlightFill: 'rgba(220,150,220,0.5)',\n label: 'Bad Moods'\n }\n ]\n },\n {\n responsive: true\n }\n );\n "; } else { $this->page('details/year'); // current year stats $year_moods = Mood::CountYearMoods($year);
public function month($date = NULL) { if (is_null($date)) { $date = date('Y-m'); } $date = explode('-', $date); if (count($date) != 2) { $this->error(422, self::E_FORMAT_DATE); } if (!checkdate($date[1], 1, $date[0])) { $this->error(422, self::E_FORMAT_DATE); } $moods = Mood::MonthMoods($date[1], $date[0]); $result = array(); foreach ($moods as $m) { $result[] = array('mood' => $m->getMood(), 'timestamp' => $m->getTime()); } $this->data['date'] = $date[0] . '-' . $date[1]; $this->data['moods_count'] = count($result); $this->data['moods'] = $result; $this->send(); }