private function mysql_analytics($request)
{
$logger = \Swiftriver\Core\Setup::GetLogger();
$sql = "SELECT\n c.date as date,\n count(c.id) as numberofcontentitems\n FROM\n SC_Content c\n GROUP BY\n DAYOFYEAR(FROM_UNIXTIME(c.date))\n ORDER BY\n c.date ASC";
try {
$db = parent::PDOConnection($request);
if ($db == null) {
return $request;
}
$statement = $db->prepare($sql);
$result = $statement->execute();
if ($result == false) {
$logger->log("Swiftriver::AnalyticsProviders::AccumulatedContentOverTimeAnalyticsProvider::ProvideAnalytics [An exception was thrown]", \PEAR_LOG_ERR);
$errorCollection = $statement->errorInfo();
$logger->log("Swiftriver::AnalyticsProviders::AccumulatedContentOverTimeAnalyticsProvider::ProvideAnalytics [" . $errorCollection[2] . "]", \PEAR_LOG_ERR);
return $request;
}
$request->Result = array();
$accumulatedTotal = 0;
$lastdate = null;
foreach ($statement->fetchAll() as $row) {
$date = date("d-m-Y", $row['date']);
if ($lastdate != null) {
while ($date != date("d-m-Y", \strtotime("{$lastdate} +1 day")) && $lastdate < date("d-m-Y")) {
$entry = array("date" => $lastdate, "accumulatedtotal" => $accumulatedTotal);
$request->Result[] = $entry;
$lastdate = date('d-m-Y', \strtotime("{$lastdate} +1 day"));
}
}
$accumulatedTotal += $row["numberofcontentitems"];
$entry = array("date" => $date, "accumulatedtotal" => $accumulatedTotal);
$request->Result[] = $entry;
$lastdate = $date;
}
} catch (\PDOException $e) {
$logger->log("Swiftriver::AnalyticsProviders::AccumulatedContentOverTimeAnalyticsProvider::ProvideAnalytics [An exception was thrown]", \PEAR_LOG_ERR);
$logger->log("Swiftriver::AnalyticsProviders::AccumulatedContentOverTimeAnalyticsProvider::ProvideAnalytics [{$e}]", \PEAR_LOG_ERR);
}
$logger->log("Swiftriver::AnalyticsProviders::AccumulatedContentOverTimeAnalyticsProvider::ProvideAnalytics [Method finished]", \PEAR_LOG_DEBUG);
return $request;
}