Example #1
0
 public function actionCharts()
 {
     // sanitize
     $_POST['dimension'] = preg_replace('#[^a-z0-9\\:]#i', '', @$_POST['dimension']);
     $_POST['metric'] = preg_replace('#[^a-z0-9\\:]#i', '', @$_POST['metric']);
     $_POST['days'] = absint(@$_POST['days']);
     $_POST['realtime'] = absint(@$_POST['realtime']);
     $dimension = substr($_POST['dimension'], 2);
     $type = substr($_POST['dimension'], 0, 1);
     $betterAnalyticsPick = get_option('ba_dashboard_pick');
     if ($_POST['dimension'] != @$betterAnalyticsPick['dimension'] || $_POST['metric'] != @$betterAnalyticsPick['metric'] || $_POST['days'] != @$betterAnalyticsPick['days'] || $_POST['realtime'] != @$betterAnalyticsPick['realtime']) {
         update_option('ba_dashboard_pick', array('dimension' => $_POST['dimension'], 'metric' => $_POST['metric'], 'days' => $_POST['days'], 'realtime' => $_POST['realtime']));
     }
     if (!empty($_POST['realtime'])) {
         if (!($realTime = get_transient('ba_realtime'))) {
             $realTime = DigitalPointBetterAnalytics_Model_Widget::getRealtimeData(55, true);
         }
         $realTimeOutput = array('users' => 0);
         if (!empty($realTime)) {
             foreach ($realTime as $key => $value) {
                 if (is_array($value)) {
                     $realTimeOutput[$key][] = array(ucwords(strtolower($key == 'keywords' ? __('Organic Search Keywords', 'better-analytics') : ($key == 'referral_path' ? __('Referring URL', 'better-analytics') : ($key == 'page_path' ? __('Current Page', 'better-analytics') : ($key == 'medium' ? __('Medium', 'better-analytics') : ($key == 'devices' ? __('Devices', 'better-analytics') : '')))))), __('Visitors', 'better-analytics'));
                     foreach ($value as $name => $amount) {
                         $realTimeOutput[$key][] = array($name, intval($amount));
                     }
                 } else {
                     $realTimeOutput[$key] = intval($value);
                 }
             }
         }
         wp_send_json(array('realtime_data' => $realTimeOutput, 'title' => __('Real-time', 'better-analytics')));
     } else {
         $validDimensions = $this->getDimensionsForCharts();
         $validMetrics = $this->getMetricsForCharts();
         $chartData = array_merge(array(array($validDimensions[$_POST['dimension']], $validMetrics[$_POST['metric']])), DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->getChart(1, intval($_POST['days']), $_POST['metric'], $dimension));
         wp_send_json(array('chart_data' => $chartData, 'title' => $dimension == 'ga:date' ? $validMetrics[$_POST['metric']] : $validDimensions[$_POST['dimension']], 'type' => $type));
     }
 }
Example #2
0
 public static function minute()
 {
     if (is_active_widget(false, false, 'better-analytics_popular_widget')) {
         DigitalPointBetterAnalytics_Model_Widget::getRealtimeData();
     }
 }