diff options
Diffstat (limited to 'app/Models/StatsDAO.php')
| -rw-r--r-- | app/Models/StatsDAO.php | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/app/Models/StatsDAO.php b/app/Models/StatsDAO.php index 824535c2d..33e5426b5 100644 --- a/app/Models/StatsDAO.php +++ b/app/Models/StatsDAO.php @@ -98,7 +98,7 @@ SQL; * Calculates the number of article per hour of the day per feed * * @param integer $feed id - * @return string + * @return array */ public function calculateEntryRepartitionPerFeedPerHour($feed = null) { return $this->calculateEntryRepartitionPerFeedPerPeriod('%H', $feed); @@ -108,7 +108,7 @@ SQL; * Calculates the number of article per day of week per feed * * @param integer $feed id - * @return string + * @return array */ public function calculateEntryRepartitionPerFeedPerDayOfWeek($feed = null) { return $this->calculateEntryRepartitionPerFeedPerPeriod('%w', $feed); @@ -118,18 +118,22 @@ SQL; * Calculates the number of article per month per feed * * @param integer $feed - * @return string + * @return array */ public function calculateEntryRepartitionPerFeedPerMonth($feed = null) { - return $this->calculateEntryRepartitionPerFeedPerPeriod('%m', $feed); + $monthRepartition = $this->calculateEntryRepartitionPerFeedPerPeriod('%m', $feed); + // cut out the 0th month (Jan=1, Dec=12) + \array_splice($monthRepartition, 0, 1); + return $monthRepartition; } + /** * Calculates the number of article per period per feed * * @param string $period format string to use for grouping * @param integer $feed id - * @return string + * @return array */ protected function calculateEntryRepartitionPerFeedPerPeriod($period, $feed = null) { $restrict = ''; @@ -148,7 +152,21 @@ SQL; $stm = $this->pdo->query($sql); $res = $stm->fetchAll(PDO::FETCH_NAMED); - $repartition = array(); + switch ($period) { + case '%H': + $periodMax = 24; + break; + case '%w': + $periodMax = 7; + break; + case '%m': + $periodMax = 12; + break; + default: + $periodMax = 30; + } + + $repartition = array_fill(0, $periodMax, 0); foreach ($res as $value) { $repartition[(int) $value['period']] = (int) $value['count']; } |
