| 12345678910111213141516171819202122232425262728293031323334353637 |
- <?php
- class FreshRSS_StatsDAOSQLite extends FreshRSS_StatsDAO {
- /**
- * Calculates entry count per day on a 30 days period.
- * Returns the result as a JSON string.
- *
- * @return string
- */
- public function calculateEntryCount() {
- $count = $this->initEntryCountArray();
- $period = parent::ENTRY_COUNT_PERIOD;
- // Get stats per day for the last 30 days
- $sql = <<<SQL
- SELECT round(julianday(e.date, 'unixepoch') - julianday('now')) AS day,
- COUNT(1) AS count
- FROM {$this->prefix}entry AS e
- WHERE strftime('%Y%m%d', e.date, 'unixepoch')
- BETWEEN strftime('%Y%m%d', 'now', '-{$period} days')
- AND strftime('%Y%m%d', 'now', '-1 day')
- GROUP BY day
- ORDER BY day ASC
- SQL;
- $stm = $this->bd->prepare($sql);
- $stm->execute();
- $res = $stm->fetchAll(PDO::FETCH_ASSOC);
- foreach ($res as $value) {
- $count[(int)$value['day']] = (int) $value['count'];
- }
- return $this->convertToSerie($count);
- }
- }
|