Piwik\Plugins\Goals\Controller::getTopDimensions PHP Method

getTopDimensions() protected method

protected getTopDimensions ( $idGoal )
    protected function getTopDimensions($idGoal)
    {
        $columnNbConversions = 'goal_' . $idGoal . '_nb_conversions';
        $columnConversionRate = 'goal_' . $idGoal . '_conversion_rate';
        $topDimensionsToLoad = array();
        if (\Piwik\Plugin\Manager::getInstance()->isPluginActivated('UserCountry')) {
            $topDimensionsToLoad += array('country' => 'UserCountry.getCountry');
        }
        $keywordNotDefinedString = '';
        if (\Piwik\Plugin\Manager::getInstance()->isPluginActivated('Referrers')) {
            $keywordNotDefinedString = APIReferrers::getKeywordNotDefinedString();
            $topDimensionsToLoad += array('keyword' => 'Referrers.getKeywords', 'website' => 'Referrers.getWebsites');
        }
        $topDimensions = array();
        foreach ($topDimensionsToLoad as $dimensionName => $apiMethod) {
            $request = new Request("method={$apiMethod}\n                                   &format=original\n                                   &filter_update_columns_when_show_all_goals=1\n                                   &idGoal=" . AddColumnsProcessedMetricsGoal::GOALS_FULL_TABLE . "\n                                   &filter_sort_order=desc\n                                   &filter_sort_column={$columnNbConversions}" . "&filter_limit=" . (self::COUNT_TOP_ROWS_TO_DISPLAY + 2));
            $datatable = $request->process();
            $topDimension = array();
            $count = 0;
            foreach ($datatable->getRows() as $row) {
                $conversions = $row->getColumn($columnNbConversions);
                if ($conversions > 0 && $count < self::COUNT_TOP_ROWS_TO_DISPLAY && !($dimensionName == 'keyword' && $row->getColumn('label') == $keywordNotDefinedString)) {
                    $topDimension[] = array('name' => $row->getColumn('label'), 'nb_conversions' => $conversions, 'conversion_rate' => $this->formatConversionRate($row->getColumn($columnConversionRate)), 'metadata' => $row->getMetadata());
                    $count++;
                }
            }
            $topDimensions[$dimensionName] = $topDimension;
        }
        return $topDimensions;
    }