You are here

function seotools_dashboard_referrers_box in Drupal SEO Tools 6

Same name and namespace in other branches
  1. 7 seotools.report.inc \seotools_dashboard_referrers_box()
1 call to seotools_dashboard_referrers_box()
seotools_dashboard_page in ./seotools.report.inc

File

./seotools.report.inc, line 1131

Code

function seotools_dashboard_referrers_box($gid, $siteURL, $date_range, $enabled_modules, &$mediums_data) {
  $output = '<h3 class="referrers">' . t('Referrers') . '</h3>';
  $links[] = l(t('report'), 'admin/content/seotools/referrers');
  $links[] = l(t('analytics'), 'https://www.google.com/analytics/reporting/referring_sources', array(
    'query' => "id={$gid}",
    'attributes' => array(
      'target' => 'googleanalytics',
    ),
  ));
  $links[] = l(t('backlinks'), 'https://www.google.com/webmasters/tools/external-links', array(
    'query' => "siteUrl={$siteURL}#",
    'attributes' => array(
      'target' => 'googlewebmastertools',
    ),
  ));
  $links[] = l(t('internal links'), 'https://www.google.com/webmasters/tools/internal-links', array(
    'query' => "siteUrl={$siteURL}#",
    'attributes' => array(
      'target' => 'googlewebmastertools',
    ),
  ));
  $output .= '<div class="dashboard-links">';
  $output .= implode(' | ', $links);
  $output .= '</div>';
  if (!($data = seotools_cache_get('data_ga_mediums_by_date', $date_range))) {

    // for help with query see: http://code.google.com/apis/analytics/docs/gdata/gdataExplorer.html
    $request = array(
      'dimensions' => array(
        'ga:date',
        'ga:medium',
      ),
      'metrics' => array(
        'ga:visits',
      ),
      'sort_metric' => array(
        'ga:date',
      ),
      'start_date' => strtotime($date_range['start_date']),
      'end_date' => strtotime($date_range['end_date']),
    );
    $rows = seotools_fetch_ga_data($request, array(
      'date',
      'medium',
    ));
    seotools_cache_set('data_ga_mediums_by_date', $data, $date_range);
  }
  $totals = array();
  $day_counts = array();
  $top_mediums = array_keys($mediums_data);
  foreach ($rows as $key => $row) {
    $date = substr($key, 0, 8);
    $medium = substr($key, 8);
    if ($medium == '(none)') {
      $medium = 'direct';
    }
    if (in_array($medium, $top_mediums)) {
      $day_counts[$medium][$date] = $row['visits'];
    }
    else {
      $day_counts['other'][$date] += $row['visits'];
    }
    $chart_dates[$date] = date('d', strtotime($date));
  }

  // sort by most visits
  $dc = $day_counts;
  $day_counts = array();
  foreach ($top_mediums as $medium) {
    $day_counts[$medium] = $dc[$medium];
  }
  $colors = seotools_get_data_colors();
  $i = 0;
  $series_colors = array();
  foreach ($day_counts as $medium => $series) {
    $series_colors[] = $mediums_data[$medium];
  }
  $chart = chart_url(_seotools_reports_multiline_chart('mediums_by_day', '', $day_counts, $chart_dates, $series_colors));
  $js['charts']['mediums_by_day'] = array(
    'src' => $chart,
    'location' => 'chart-refferrers',
    'title' => '',
  );
  drupal_add_js(array(
    'seotools' => $js,
  ), 'setting');
  $output .= '<div class="chart-refferrers-wrapper">';
  $output .= '</div>';
  $output .= seotools_generate_report_top_and_trends('referrers', t('referrers'), $mode, $gid, $siteURL, $date_range, $enabled_modules);
  return $output;
}