コード例 #1
0
 public function adminHome($req, $res)
 {
     if (!$this->app['user']->isAdmin()) {
         return $res->redirect('/login?redir=' . urlencode($req->basePath() . $req->path()));
     }
     $metrics = [];
     $chartData = [];
     $chartGranularities = [];
     $chartLoadedIntervals = [];
     $start = -7;
     $end = 0;
     $dashboard = (array) $this->app['config']->get('statistics.dashboard');
     foreach ($dashboard as $section => $metricClasses) {
         foreach ($metricClasses as $className) {
             $className = '\\app\\statistics\\metrics\\' . $className . 'Metric';
             $metric = new $className($this->app);
             $k = $metric->key();
             U::array_set($metrics, $section . '.' . $k, $metric->toArray());
             if ($metric->hasChart()) {
                 $chartData[$k] = $metric->values();
                 $gName = $metric::$granularityNames[$metric->granularity()];
                 $chartGranularities[$k] = $gName;
                 $chartLoadedIntervals[$k] = 'last-7-' . $gName . 's';
             }
         }
     }
     return new View('admin/index', ['metrics' => $metrics, 'chartNames' => array_keys($chartData), 'chartData' => $chartData, 'chartGranularities' => $chartGranularities, 'chartLoadedIntervals' => $chartLoadedIntervals, 'title' => 'Statistics']);
 }