예제 #1
0
    $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);
예제 #2
0
파일: api.php 프로젝트: Devenet/MoodPicker
 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();
 }