dimension = new CustomVariableName();
$this->name = Piwik::translate('CustomVariables_CustomVariables');
$this->documentation = Piwik::translate('CustomVariables_CustomVariablesReportDocumentation',
array('
', '', ''));
$this->actionToLoadSubTables = 'getCustomVariablesValuesFromNameId';
$this->order = 10;
$this->widgetTitle = 'CustomVariables_CustomVariables';
$this->menuTitle = 'CustomVariables_CustomVariables';
$this->hasGoalMetrics = true;
}
public function configureView(ViewDataTable $view)
{
$view->config->columns_to_display = array('label', 'nb_actions', 'nb_visits');
$view->config->addTranslation('label', Piwik::translate('CustomVariables_ColumnCustomVariableName'));
$view->requestConfig->filter_sort_column = 'nb_actions';
$view->requestConfig->filter_sort_order = 'desc';
$that = $this;
$view->config->filters[] = function (DataTable $table) use ($view, $that) {
if($that->isReportContainsUnsetVisitsColumns($table)) {
$message = $that->getFooterMessageExplanationMissingMetrics();
$view->config->show_footer_message = $message;
}
};
}
/**
* @return array
*/
public function getFooterMessageExplanationMissingMetrics()
{
$metrics = sprintf("'%s', '%s' %s '%s'",
Piwik::translate('General_ColumnNbVisits'),
Piwik::translate('General_ColumnNbUniqVisitors'),
Piwik::translate('General_And'),
Piwik::translate('General_ColumnNbUsers')
);
$messageStart = Piwik::translate('CustomVariables_MetricsAreOnlyAvailableForVisitScope', array($metrics, "'visit'"));
$messageEnd = Piwik::translate('CustomVariables_MetricsNotAvailableForPageScope', array("'page'", '\'-\''));
return $messageStart . ' ' . $messageEnd;
}
/**
* @return bool
*/
public function isReportContainsUnsetVisitsColumns(DataTable $report)
{
$visits = $report->getColumn('nb_visits');
$isVisitsMetricsSometimesUnset = in_array(false, $visits);
return $isVisitsMetricsSometimesUnset;
}
}