diff options
| author | 2021-10-16 12:00:07 +0200 | |
|---|---|---|
| committer | 2021-10-16 12:00:07 +0200 | |
| commit | 02641de32ecc6e0e4fd9de030399728080b6ed41 (patch) | |
| tree | c01ce17b89c8225f51a796e0bef589498e56a14f /app/Models/StatsDAO.php | |
| parent | ebf9c70ebd4356d98fa7c2513aaab48fa14c7c9b (diff) | |
Stats: replace flotr2 with chart.js (#3858)
* include Chart.js
* page: main statistics. Flotr.js replaced with Chart.js
* main stats + repartition
* Delete: repartition.js + stats.js
* delete flotr2
* add libs in README
* polish
* code polish
* fixed amount of week days and months
* added manget link for LibreJS
* added: @license-end
* phpcbf + jshint formatting
* delete old code
* fix stats
* fix Comments
* finally I found the issue and fixed its best
* fix the month stats
* Whitespace fixes
* Remove flotr2
* Rename to chart.min.js
* Remove console.log
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
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']; } |
