public static function add_column_content_to_episodes_table($column_name) { global $wpdb; switch ($column_name) { case 'downloads': if ($episode = \Podlove\Model\Episode::find_one_by_post_id(get_the_ID())) { echo number_format_i18n(\Podlove\Model\DownloadIntentClean::total_by_episode_id($episode->id)); } break; } }
public static function numbers() { $episode = Model\Episode::find_one_by_id((int) $_REQUEST['episode']); $cache = \Podlove\Cache\TemplateCache::get_instance(); echo $cache->cache_for('podlove_analytics_episode' . $episode->id, function () use($episode) { $post = get_post($episode->post_id); $releaseDate = new \DateTime($post->post_date); $releaseDate->setTime(0, 0, 0); $diff = $releaseDate->diff(new \DateTime()); $daysSinceRelease = $diff->days; $downloads = array('total' => Model\DownloadIntentClean::total_by_episode_id($episode->id, "1000 years ago", "now"), 'month' => Model\DownloadIntentClean::total_by_episode_id($episode->id, "28 days ago", "yesterday"), 'week' => Model\DownloadIntentClean::total_by_episode_id($episode->id, "7 days ago", "yesterday"), 'yesterday' => Model\DownloadIntentClean::total_by_episode_id($episode->id, "1 day ago"), 'today' => Model\DownloadIntentClean::total_by_episode_id($episode->id, "now")); $peak = Model\DownloadIntentClean::peak_download_by_episode_id($episode->id); ob_start(); ?> <div class="analytics-metric-box"> <span class="analytics-description">Average</span> <span class="analytics-value"><?php echo number_format_i18n($downloads['total'] / ($daysSinceRelease + 1), 1); ?> </span> <span class="analytics-subtext">Downloads per Day</span> </div> <div class="analytics-metric-box"> <span class="analytics-description">Peak</span> <span class="analytics-value"><?php echo number_format_i18n($peak['downloads']); ?> </span> <span class="analytics-subtext">Downloads<br>on <?php echo mysql2date(get_option('date_format'), $peak['theday']); ?> </span> </div> <div class="analytics-metric-box"> <span class="analytics-description">Total</span> <span class="analytics-value"><?php echo number_format_i18n($downloads['total']); ?> </span> <span class="analytics-subtext">Downloads</span> </div> <div class="analytics-metric-box"> <table> <tbody> <tr> <td>28 Days</td> <td><?php echo number_format_i18n($downloads['month']); ?> </td> </tr> <tr> <td>7 Days</td> <td><?php echo number_format_i18n($downloads['week']); ?> </td> </tr> <tr> <td>Yesterday</td> <td><?php echo number_format_i18n($downloads['yesterday']); ?> </td> </tr> <tr> <td>Today</td> <td><?php echo number_format_i18n($downloads['today']); ?> </td> </tr> </tbody> </table> </div> <style type="text/css"> .analytics-metric-box { text-align: center; float: left; margin: 20px 0 20px 20px; } .analytics-metric-box > span { font-size: 23px; line-height: 23px; display: block; } .analytics-metric-box .analytics-value { font-weight: bold; line-height: 40px; } .analytics-metric-box .analytics-description, .analytics-metric-box .analytics-subtext { font-size: 14px; line-height: 16px; color: #666; } </style> <div class="clear"></div> <?php $html = ob_get_contents(); ob_end_clean(); return $html; }, 600); // 10 minutes }