Piwik\Plugins\UserCountry\API::getRegion PHP Method

getRegion() public method

Returns visit information for every region with at least one visit.
public getRegion ( integer | string $idSite, string $period, string $date, string | boolean $segment = false ) : DataTable
$idSite integer | string
$period string
$date string
$segment string | boolean
return Piwik\DataTable
    public function getRegion($idSite, $period, $date, $segment = false)
    {
        $dataTable = $this->getDataTable(Archiver::REGION_RECORD_NAME, $idSite, $period, $date, $segment);
        $segments = array('regionCode', 'countryCode');
        $dataTable->filter('AddSegmentByLabel', array($segments, Archiver::LOCATION_SEPARATOR));
        $separator = Archiver::LOCATION_SEPARATOR;
        $unk = Visit::UNKNOWN_CODE;
        // split the label and put the elements into the 'region' and 'country' metadata fields
        $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'region', __NAMESPACE__ . '\\getElementFromStringArray', array($separator, 0, $unk)));
        $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'country', __NAMESPACE__ . '\\getElementFromStringArray', array($separator, 1, $unk)));
        // add country name metadata
        $dataTable->filter('MetadataCallbackAddMetadata', array('country', 'country_name', __NAMESPACE__ . '\\CountryTranslate', $applyToSummaryRow = false));
        // get the region name of each row and put it into the 'region_name' metadata
        $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'region_name', __NAMESPACE__ . '\\getRegionName', $params = null, $applyToSummaryRow = false));
        // add the country flag as a url to the 'logo' metadata field
        $dataTable->filter('MetadataCallbackAddMetadata', array('country', 'logo', __NAMESPACE__ . '\\getFlagFromCode'));
        // prettify the region label
        $dataTable->filter('ColumnCallbackReplace', array('label', __NAMESPACE__ . '\\getPrettyRegionName'));
        $dataTable->queueFilter('ReplaceSummaryRowLabel');
        return $dataTable;
    }