getDataTable('UserCountry_country', $idSite, $period, $date); // apply filter on the whole datatable in order the inline search to work (searches are done on "beautiful" label) $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'code', create_function('$label', 'return $label;'))); $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getFlagFromCode')); $dataTable->filter('ColumnCallbackReplace', array('label', 'Piwik_CountryTranslate')); $dataTable->queueFilter('AddConstantMetadata', array('logoWidth', 18)); $dataTable->queueFilter('AddConstantMetadata', array('logoHeight', 12)); return $dataTable; } public function getContinent( $idSite, $period, $date ) { $dataTable = $this->getDataTable('UserCountry_continent', $idSite, $period, $date); $dataTable->filter('ColumnCallbackReplace', array('label', 'Piwik_ContinentTranslate')); $dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'code', create_function('$label', 'return $label;'))); return $dataTable; } protected function getDataTable($name, $idSite, $period, $date) { Piwik::checkUserHasViewAccess( $idSite ); $archive = Piwik_Archive::build($idSite, $period, $date ); $dataTable = $archive->getDataTable($name); $dataTable->filter('Sort', array(Piwik_Archive::INDEX_NB_VISITS)); $dataTable->queueFilter('ReplaceColumnNames'); return $dataTable; } public function getNumberOfDistinctCountries($idSite, $period, $date) { Piwik::checkUserHasViewAccess( $idSite ); $archive = Piwik_Archive::build($idSite, $period, $date ); return $archive->getDataTableFromNumeric('UserCountry_distinctCountries'); } }