Skip to content
Extraits de code Groupes Projets
GetCustomVariables.php 2,64 ko
Newer Older
  • Learn to ignore specific revisions
  •  * Piwik - free/libre analytics platform
    
     *
     * @link http://piwik.org
     * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     *
     */
    namespace Piwik\Plugins\CustomVariables\Reports;
    
    use Piwik\Piwik;
    use Piwik\Plugin\ViewDataTable;
    
    use Piwik\Plugins\CustomVariables\Columns\CustomVariableName;
    
    
    class GetCustomVariables extends Base
    {
        protected function init()
        {
            parent::init();
    
            $this->dimension     = new CustomVariableName();
    
            $this->name          = Piwik::translate('CustomVariables_CustomVariables');
            $this->documentation = Piwik::translate('CustomVariables_CustomVariablesReportDocumentation',
    
                                   array('<br />', '<a href="http://piwik.org/docs/custom-variables/" rel="noreferrer"  target="_blank">', '</a>'));
    
            $this->actionToLoadSubTables = 'getCustomVariablesValuesFromNameId';
            $this->order = 10;
            $this->widgetTitle  = 'CustomVariables_CustomVariables';
    
            $this->menuTitle    = 'CustomVariables_CustomVariables';
    
    Thomas Steur's avatar
    Thomas Steur a validé
            $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';
    
    
            if($this->isReportContainsUnsetVisitsColumns()) {
                $message = $this->getFooterMessageExplanationMissingMetrics();
                $view->config->show_footer_message = $message;
            }
        }
    
        /**
         * @return array
         */
        protected 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('Note: %s metrics are available for Custom Variables of scope \'visit\' only.', $metrics);
    
            $messageEnd = Piwik::translate('For Custom Variables of scope \'page\', the column value for these metrics is %s', array('\'-\''));
    
            return $messageStart . ' ' . $messageEnd;
        }
    
        /**
         * @return bool
         */
        protected function isReportContainsUnsetVisitsColumns()
        {
            $report = $this->fetch();
            $visits = $report->getColumn('nb_visits');
            $isVisitsMetricsSometimesUnset = in_array(false, $visits);
            return $isVisitsMetricsSometimesUnset;