function Reports::gender_chart in Yandex.Metrics 8.2
The function generates pie chart with demography information.
File
- yandex_metrics_reports/
src/ Reports.php, line 296 - Contains \Drupal\yandex_metrics_reports\YandexMetricsReports.
Class
- Reports
- Reports manager for YandexMetrics module.
Namespace
Drupal\yandex_metrics_reportsCode
function gender_chart() {
$date_range = _yandex_metrics_reports_filter_to_date_range($this->filter);
$parameters = array(
'id' => $this->counter_id,
'date1' => $date_range['start_date'],
'date2' => $date_range['end_date'],
);
$results = yandex_metrics_reports_retreive_data('/stat/demography/structure', $parameters);
$demography = json_decode($results
->getBody(TRUE));
if (empty($demography->data)) {
return t('There is no demography information for the selected date range.');
}
$info = $demography->data;
// Sort data by gender.
usort($info, '_yandex_metrics_reports_gender_sort');
$i = 1;
foreach ($info as $value) {
if ($value->visits_percent === 0) {
continue;
}
$age = String::checkPlain($value->name);
$gender = String::checkPlain($value->name_gender);
$data[] = array(
'legends' => "{$i}. {$gender} / {$age} — " . round($value->visits_percent * 100, 2) . '%',
'visits' => $value->visits_percent,
);
$i++;
}
if (empty($data)) {
return t('There is no demography information for the selected date range.');
}
$chart = array(
'#theme' => 'visualization',
'#options' => array(
'title' => t('Demography of Visits'),
'width' => 500,
'height' => 200,
'fields' => array(
'legends' => array(
'label' => 'legends',
'enabled' => TRUE,
),
'visits' => array(
'label' => 'visits',
'enabled' => TRUE,
),
),
'xAxis' => array(
'labelField' => 'legends',
),
'data' => $data,
'type' => 'pie',
),
);
return drupal_render($chart);
}