isViewDataTableId() public method

Can be used to test whether a ViewDataTable object is an instance of a certain visualization or not, without having to know where that visualization is.
public isViewDataTableId ( string $viewDataTableId ) : boolean
$viewDataTableId string The viewDataTable ID to check for, eg, `'table'`.
return boolean
Exemplo n.º 1
0
 /**
  * Here you can configure how your report should be displayed. For instance whether your report supports a search
  * etc. You can also change the default request config. For instance change how many rows are displayed by default.
  *
  * @param ViewDataTable $view
  */
 public function configureView(ViewDataTable $view)
 {
     if ($view->isViewDataTableId(Sparklines::ID)) {
         /** @var Sparklines $view */
         $view->config->addSparklineMetric(array('server1'));
         $view->config->addSparklineMetric(array('server2'));
         $view->config->addTranslations(array('server1' => 'Evolution of temperature for server piwik.org'));
         $view->config->addTranslations(array('server2' => 'Evolution of temperature for server dev.piwik.org'));
     } elseif ($view->isViewDataTableId(Evolution::ID)) {
         /** @var Evolution $view */
         $selectableColumns = array('server1', 'server2');
         $columns = Common::getRequestVar('columns', false);
         if (!empty($columns)) {
             $columns = Piwik::getArrayFromApiParameter($columns);
         }
         $columns = array_merge($columns ? $columns : array(), $selectableColumns);
         $view->config->columns_to_display = $columns;
         $view->config->addTranslations(array_combine($columns, $columns));
         $view->config->selectable_columns = $selectableColumns;
         $view->requestConfig->filter_sort_column = 'label';
         $view->requestConfig->filter_sort_order = 'asc';
         $view->config->documentation = 'My documentation';
         $view->config->show_goals = false;
     }
 }
Exemplo n.º 2
0
 public function configureView(ViewDataTable $view)
 {
     if ($view->isViewDataTableId(BAR::ID)) {
         $view->config->y_axis_unit = '°C';
         $view->config->show_footer = false;
         $view->config->translations['value'] = "Temperature";
         $view->config->selectable_columns = array("value");
         $view->config->max_graph_elements = 24;
     } elseif ($view->isViewDataTableId('infoviz-treemap')) {
         $view->config->translations['value'] = "Temperature";
         $view->config->columns_to_display = array("label", "value");
         $view->config->selectable_columns = array("value");
         $view->config->show_evolution_values = 0;
     } else {
         // for default view datatable, eg HtmlTable
         $view->config->translations['value'] = 'Temperature in °C';
         $view->config->translations['label'] = 'Hour of day';
         $view->requestConfig->filter_sort_column = 'label';
         $view->requestConfig->filter_sort_order = 'asc';
         $view->requestConfig->filter_limit = 24;
         $view->config->columns_to_display = array('label', 'value');
         $view->config->y_axis_unit = '°C';
         // useful if the user requests the bar graph
         $view->config->show_exclude_low_population = false;
         $view->config->show_table_all_columns = false;
         $view->config->disable_row_evolution = true;
         $view->config->max_graph_elements = 24;
         $view->config->metrics_documentation = array('value' => 'Documentation for temperature metric');
     }
 }
Exemplo n.º 3
0
 protected function addPresentationFilters(ViewDataTable $view, $addTotalSizeColumn = true, $addPercentColumn = false, $sizeColumns = array('data_size', 'index_size'))
 {
     // add total_size column
     if ($addTotalSizeColumn) {
         $getTotalTableSize = function ($dataSize, $indexSize) {
             return $dataSize + $indexSize;
         };
         $view->config->filters[] = array('ColumnCallbackAddColumn', array(array('data_size', 'index_size'), 'total_size', $getTotalTableSize), $isPriority = true);
         $sizeColumns[] = 'total_size';
     }
     $runPrettySizeFilterBeforeGeneric = false;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         // add summary row only if displaying a table
         $view->config->filters[] = array('AddSummaryRow', Piwik::translate('General_Total'));
         // add percentage column if desired
         if ($addPercentColumn && $addTotalSizeColumn) {
             $view->config->filters[] = array('ColumnCallbackAddColumnPercentage', array('percent_total', 'total_size', 'total_size', $quotientPrecision = 0, $shouldSkipRows = false, $getDivisorFromSummaryRow = true), $isPriority = false);
             $view->requestConfig->filter_sort_column = 'percent_total';
         }
     } else {
         if ($view->isViewDataTableId(Graph::ID)) {
             if ($addTotalSizeColumn) {
                 $view->config->columns_to_display = array('label', 'total_size');
                 // when displaying a graph, we force sizes to be shown as the same unit so axis labels
                 // will be readable. NOTE: The unit should depend on the smallest value of the data table,
                 // however there's no way to know this information, short of creating a custom filter. For
                 // now, just assume KB.
                 $fixedMemoryUnit = 'K';
                 $view->config->y_axis_unit = ' K';
                 $view->requestConfig->filter_sort_column = 'total_size';
                 $view->requestConfig->filter_sort_order = 'desc';
             } else {
                 $view->config->columns_to_display = array('label', 'row_count');
                 $view->config->y_axis_unit = ' ' . Piwik::translate('General_Rows');
                 $view->requestConfig->filter_sort_column = 'row_count';
                 $view->requestConfig->filter_sort_order = 'desc';
             }
             $view->config->selectable_rows = array();
         }
     }
     $formatter = new Formatter();
     $getPrettySize = array($formatter, 'getPrettySizeFromBytes');
     $params = !isset($fixedMemoryUnit) ? array() : array($fixedMemoryUnit);
     $view->config->filters[] = function ($dataTable) use($sizeColumns, $getPrettySize, $params) {
         $dataTable->filter('ColumnCallbackReplace', array($sizeColumns, $getPrettySize, $params));
     };
     // jqPlot will display   as, well, ' ', so don't replace the spaces when rendering as a graph
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $replaceSpaces = function ($value) {
             return str_replace(' ', ' ', $value);
         };
         $view->config->filters[] = array('ColumnCallbackReplace', array($sizeColumns, $replaceSpaces));
     }
     $getPrettyNumber = array($formatter, 'getPrettyNumber');
     $view->config->filters[] = array('ColumnCallbackReplace', array('row_count', $getPrettyNumber));
 }
Exemplo n.º 4
0
 public function configureView(ViewDataTable $view)
 {
     $view->config->addTranslation('value', 'times the diameter of Earth');
     if ($view->isViewDataTableId(PIE::ID)) {
         $view->config->columns_to_display = array('value');
         $view->config->selectable_columns = array('value');
         $view->config->show_footer_icons = false;
         $view->config->max_graph_elements = 10;
     } else {
         if ($view->isViewDataTableId(Cloud::ID)) {
             $view->config->columns_to_display = array('label', 'value');
             $view->config->show_footer = false;
         }
     }
 }
Exemplo n.º 5
0
Arquivo: Get.php Projeto: piwik/piwik
 public function configureView(ViewDataTable $view)
 {
     if ($view->isViewDataTableId(Sparklines::ID)) {
         $view->requestConfig->apiMethodToRequestDataTable = 'VisitFrequency.get';
         $this->addSparklineColumns($view);
         $view->config->addTranslations($this->getSparklineTranslations());
         $numberFormatter = NumberFormatter::getInstance();
         $view->config->filters[] = function (DataTable $table) use($numberFormatter) {
             $firstRow = $table->getFirstRow();
             if ($firstRow) {
                 $value = $firstRow->getColumn('nb_visits_returning');
                 if (false !== $value) {
                     $firstRow->setColumn('nb_visits_returning', $numberFormatter->formatNumber($value));
                 }
                 $value = $firstRow->getColumn('nb_actions_returning');
                 if (false !== $value) {
                     $firstRow->setColumn('nb_actions_returning', $numberFormatter->formatNumber($value));
                 }
                 $value = $firstRow->getColumn('nb_actions_per_visit_returning');
                 if (false !== $value) {
                     $firstRow->setColumn('nb_actions_per_visit_returning', $numberFormatter->formatNumber($value, 1));
                 }
                 $value = $firstRow->getColumn('bounce_rate_returning');
                 if (false !== $value) {
                     $firstRow->setColumn('bounce_rate_returning', $numberFormatter->formatNumber($value, $precision = 1));
                 }
             }
         };
     }
 }
Exemplo n.º 6
0
 public function configureView(ViewDataTable $view)
 {
     $idSubtable = Common::getRequestVar('idSubtable', false);
     $labelColumnTitle = $this->name;
     switch ($idSubtable) {
         case Common::REFERRER_TYPE_SEARCH_ENGINE:
             $labelColumnTitle = Piwik::translate('Referrers_ColumnSearchEngine');
             break;
         case Common::REFERRER_TYPE_WEBSITE:
             $labelColumnTitle = Piwik::translate('Referrers_ColumnWebsite');
             break;
         case Common::REFERRER_TYPE_CAMPAIGN:
             $labelColumnTitle = Piwik::translate('Referrers_ColumnCampaign');
             break;
         default:
             break;
     }
     $view->config->show_search = false;
     $view->config->show_offset_information = false;
     $view->config->show_pagination_control = false;
     $view->config->show_limit_control = false;
     $view->config->show_exclude_low_population = false;
     $view->config->addTranslation('label', $labelColumnTitle);
     $view->requestConfig->filter_limit = 10;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $view->config->disable_subtable_when_show_goals = true;
     }
 }
Exemplo n.º 7
0
 protected function getBasicDevicePluginsDisplayProperties(ViewDataTable $view)
 {
     $view->config->show_search = false;
     $view->config->show_exclude_low_population = false;
     $view->requestConfig->filter_limit = 5;
     if ($view->isViewDataTableId(Graph::ID)) {
         $view->config->max_graph_elements = 5;
     }
 }
Exemplo n.º 8
0
 public function configureView(ViewDataTable $view)
 {
     $view->config->show_exclude_low_population = false;
     $view->config->addTranslation('label', Piwik::translate('General_ColumnKeyword'));
     $view->requestConfig->filter_limit = 25;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $view->config->disable_subtable_when_show_goals = true;
     }
 }
Exemplo n.º 9
0
 public function configureView(ViewDataTable $view)
 {
     $view->config->show_exclude_low_population = false;
     $view->config->addTranslation('label', $this->dimension->getName());
     $view->requestConfig->filter_limit = 25;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $view->config->disable_subtable_when_show_goals = true;
     }
 }
Exemplo n.º 10
0
 public function configureView(ViewDataTable $view)
 {
     $view->config->addTranslations(array('label' => $this->dimension->getName()));
     $view->config->columns_to_display = array('label', 'nb_visits', 'nb_pages_per_search');
     $view->config->show_table_all_columns = false;
     $view->config->show_bar_chart = false;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $view->config->disable_row_evolution = false;
     }
 }
Exemplo n.º 11
0
 public function configureView(ViewDataTable $view)
 {
     $referrers = new Referrers();
     $setGetAllHtmlPrefix = array($referrers, 'setGetAllHtmlPrefix');
     $view->config->show_exclude_low_population = false;
     $view->config->show_goals = true;
     $view->config->addTranslation('label', $this->dimension->getName());
     $view->requestConfig->filter_limit = 20;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $view->config->disable_row_actions = true;
     }
     $view->config->filters[] = array('MetadataCallbackAddMetadata', array('referer_type', 'html_label_prefix', $setGetAllHtmlPrefix));
 }
 /**
  * Here you can configure how your report should be displayed. For instance whether your report supports a search
  * etc. You can also change the default request config. For instance change how many rows are displayed by default.
  *
  * @param ViewDataTable $view
  */
 public function configureView(ViewDataTable $view)
 {
     $idDimension = Common::getRequestVar('idDimension', 0, 'int');
     if ($idDimension < 1) {
         return;
     }
     $isWidget = Common::getRequestVar('widget', 0, 'int');
     $module = Common::getRequestVar('module', '', 'string');
     if ($isWidget && $module !== 'Widgetize' && $view->isViewDataTableId(HtmlTable::ID)) {
         // we disable row evolution as it would not forward the idDimension when requesting the row evolution
         // this is a limitation in row evolution
         $view->config->disable_row_evolution = true;
     }
     $module = $view->requestConfig->getApiModuleToRequest();
     $method = $view->requestConfig->getApiMethodToRequest();
     $idReport = sprintf('%s_%s_idDimension--%d', $module, $method, $idDimension);
     if ($view->requestConfig->idSubtable) {
         $view->config->addTranslation('label', Piwik::translate('Actions_ColumnActionURL'));
     } elseif (!empty($this->dimension)) {
         $view->config->addTranslation('label', $this->dimension->getName());
     }
     $view->requestConfig->request_parameters_to_modify['idDimension'] = $idDimension;
     $view->requestConfig->request_parameters_to_modify['reportUniqueId'] = $idReport;
     $view->config->custom_parameters['scopeOfDimension'] = $this->scopeOfDimension;
     if ($this->scopeOfDimension === CustomDimensions::SCOPE_VISIT) {
         // Goal metrics for each custom dimension  of 'visit' scope is processed in Archiver via aggregateFromConversions
         $view->config->show_goals = true;
         $view->config->columns_to_display = array('label', 'nb_visits', 'nb_uniq_visitors', 'nb_users', 'nb_actions', 'nb_actions_per_visit', 'avg_time_on_site', 'bounce_rate');
         $view->config->filters[] = function (DataTable $table) use($view) {
             $userId = new UserId();
             if (!$userId->hasDataTableUsers($table)) {
                 $view->config->removeColumnToDisplay('nb_users');
             }
             if ($table->getRowsCount() > 0 && !$table->getFirstRow()->hasColumn('nb_uniq_visitors')) {
                 $view->config->removeColumnToDisplay('nb_uniq_visitors');
             }
         };
     } elseif ($this->scopeOfDimension === CustomDimensions::SCOPE_ACTION) {
         $view->config->columns_to_display = array('label', 'nb_hits', 'nb_visits', 'bounce_rate', 'avg_time_on_dimension', 'exit_rate', 'avg_time_generation');
         $formatter = new Metrics\Formatter();
         // add avg_generation_time tooltip
         $tooltipCallback = function ($hits, $min, $max) use($formatter) {
             if (!$hits) {
                 return false;
             }
             return Piwik::translate("Actions_AvgGenerationTimeTooltip", array($hits, "<br />", $formatter->getPrettyTimeFromSeconds($min, true), $formatter->getPrettyTimeFromSeconds($max, true)));
         };
         $view->config->filters[] = array('ColumnCallbackAddMetadata', array(array('nb_hits_with_time_generation', 'min_time_generation', 'max_time_generation'), 'avg_time_generation_tooltip', $tooltipCallback));
     }
     $view->config->show_table_all_columns = false;
 }
Exemplo n.º 13
0
 public function configureView(ViewDataTable $view)
 {
     $view->config->show_exclude_low_population = false;
     $view->config->show_goals = true;
     $view->config->addTranslation('label', $this->dimension->getName());
     $view->requestConfig->filter_limit = 10;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $view->config->disable_subtable_when_show_goals = true;
     }
     $widget = Common::getRequestVar('widget', false);
     if (empty($widget)) {
         $view->config->show_footer_message = Piwik::translate('Referrers_SocialFooterMessage');
     }
 }
Exemplo n.º 14
0
Arquivo: Base.php Projeto: piwik/piwik
 protected function addBaseDisplayProperties(ViewDataTable $view)
 {
     $view->config->datatable_js_type = 'ActionsDataTable';
     $view->config->search_recursive = true;
     $view->config->show_table_all_columns = false;
     $view->requestConfig->filter_limit = Actions::ACTIONS_REPORT_ROWS_DISPLAY;
     $view->config->show_all_views_icons = false;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $view->config->show_embedded_subtable = true;
     }
     if (Request::shouldLoadExpanded()) {
         if ($view->isViewDataTableId(HtmlTable::ID)) {
             $view->config->show_expanded = true;
         }
         $view->config->filters[] = function ($dataTable) {
             Actions::setDataTableRowLevels($dataTable);
         };
     }
     $view->config->filters[] = function ($dataTable) use($view) {
         if ($view->isViewDataTableId(HtmlTable::ID)) {
             $view->config->datatable_css_class = 'dataTableActions';
         }
     };
 }
Exemplo n.º 15
0
Arquivo: Get.php Projeto: piwik/piwik
 public function configureView(ViewDataTable $view)
 {
     if ($view->isViewDataTableId(Sparklines::ID)) {
         /** @var Sparklines $view */
         $view->requestConfig->apiMethodToRequestDataTable = 'API.get';
         $this->addSparklineColumns($view);
         $view->config->addTranslations($this->getSparklineTranslations());
         $numberFormatter = NumberFormatter::getInstance();
         $view->config->filters[] = function (DataTable $table) use($view, $numberFormatter) {
             $firstRow = $table->getFirstRow();
             if ($firstRow->getColumn('nb_pageviews') + $firstRow->getColumn('nb_downloads') + $firstRow->getColumn('nb_outlinks') == 0 && $firstRow->getColumn('nb_actions') > 0) {
                 $view->config->removeSparklineMetric(array('nb_downloads', 'nb_uniq_downloads'));
                 $view->config->removeSparklineMetric(array('nb_outlinks', 'nb_uniq_outlinks'));
                 $view->config->removeSparklineMetric(array('nb_pageviews', 'nb_uniq_pageviews'));
                 $view->config->removeSparklineMetric(array('nb_searches', 'nb_keywords'));
             } else {
                 $view->config->removeSparklineMetric(array('nb_actions'));
             }
             $nbUsers = $firstRow->getColumn('nb_users');
             if (!is_numeric($nbUsers) || 0 >= $nbUsers) {
                 $view->config->replaceSparklineMetric(array('nb_users'), '');
             }
             $avgGenerationTime = $firstRow->getColumn('avg_time_generation');
             if (false === $avgGenerationTime) {
                 // fix avgGenerationTime is not formatted if value is false
                 /** @var Formatter $formatter */
                 $formatter = StaticContainer::get('Piwik\\Metrics\\Formatter');
                 $avgGenerationTime = $formatter->getPrettyTimeFromSeconds($avgGenerationTime, true);
                 $firstRow->setColumn('avg_time_generation', $avgGenerationTime);
             }
             $numberMetrics = array('nb_visits', 'nb_uniq_visitors', 'nb_uniq_visitors', 'nb_users', 'nb_actions', 'nb_pageviews', 'nb_uniq_pageviews', 'nb_searches', 'nb_keywords', 'nb_downloads', 'nb_uniq_downloads', 'nb_outlinks', 'nb_uniq_outlinks', 'max_actions');
             foreach ($numberMetrics as $metric) {
                 $value = $firstRow->getColumn($metric);
                 if (false !== $value) {
                     $firstRow->setColumn($metric, $numberFormatter->formatNumber($value));
                 }
             }
             $value = $firstRow->getColumn('bounce_rate');
             if (false !== $value) {
                 $firstRow->setColumn('bounce_rate', $numberFormatter->formatPercent($value, $precision = 1));
             }
             $value = $firstRow->getColumn('nb_actions_per_visit');
             if (false !== $value) {
                 $firstRow->setColumn('nb_actions_per_visit', $numberFormatter->formatNumber($value, $maxFraction = 1));
             }
         };
     }
 }
 public function configureView(ViewDataTable $view)
 {
     $view->requestConfig->filter_sort_column = 'label';
     $view->requestConfig->filter_sort_order = 'asc';
     $view->config->addTranslation('label', $this->dimension->getName());
     $view->config->enable_sort = false;
     $view->config->show_exclude_low_population = false;
     $view->config->show_offset_information = false;
     $view->config->show_pagination_control = false;
     $view->config->show_limit_control = false;
     $view->config->show_search = false;
     $view->config->show_table_all_columns = false;
     $view->config->columns_to_display = array('label', 'nb_visits');
     if ($view->isViewDataTableId(Graph::ID)) {
         $view->config->show_series_picker = false;
         $view->config->selectable_columns = array();
         $view->config->max_graph_elements = 10;
     }
 }
Exemplo n.º 17
0
 /**
  * @param ViewDataTable $view
  */
 public function configureView(ViewDataTable $view)
 {
     $view->config->addTranslation('label', Piwik::translate('General_UserId'));
     $view->config->addTranslation('nb_visits_converted', Piwik::translate('General_VisitConvertedGoal'));
     /*
      * Hide most of the table footer actions, leaving only export icons and pagination
      */
     $view->config->columns_to_display = $this->metrics;
     $view->config->show_all_views_icons = false;
     $view->config->show_active_view_icon = false;
     $view->config->show_related_reports = false;
     $view->config->show_insights = false;
     $view->config->show_pivot_by_subtable = false;
     $view->config->show_flatten_table = false;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $view->config->disable_row_evolution = false;
     }
     // exclude users with less then 2 visits, when low population filter is active
     $view->requestConfig->filter_excludelowpop_value = 2;
 }
Exemplo n.º 18
0
 public function configureViewForSiteSearchCategories(ViewDataTable $view)
 {
     $view->config->addTranslations(array('label' => Piwik::translate('Actions_ColumnSearchCategory'), 'nb_visits' => Piwik::translate('Actions_ColumnSearches'), 'nb_pages_per_search' => Piwik::translate('Actions_ColumnPagesPerSearch')));
     $view->config->columns_to_display = array('label', 'nb_visits', 'nb_pages_per_search');
     $view->config->show_table_all_columns = false;
     $view->config->show_bar_chart = false;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $view->config->disable_row_evolution = false;
     }
 }
Exemplo n.º 19
0
 protected function configureViewForByDayOfWeek(ViewDataTable $view)
 {
     $view->requestConfig->filter_limit = 7;
     $view->config->enable_sort = false;
     $view->config->show_footer_message = Piwik::translate('General_ReportGeneratedFrom', self::getDateRangeForFooterMessage());
     $view->config->addTranslation('label', Piwik::translate('VisitTime_DayOfWeek'));
     if ($view->isViewDataTableId(Graph::ID)) {
         $view->config->max_graph_elements = false;
         $view->config->show_all_ticks = true;
     }
 }
Exemplo n.º 20
0
Arquivo: Get.php Projeto: piwik/piwik
 public function configureView(ViewDataTable $view)
 {
     $idGoal = Common::getRequestVar('idGoal', 0, 'string');
     $idSite = $this->getIdSite();
     if ($view->isViewDataTableId(Sparklines::ID)) {
         /** @var Sparklines $view */
         $isEcommerceEnabled = $this->isEcommerceEnabled($idSite);
         $onlySummary = Common::getRequestVar('only_summary', 0, 'int');
         if ($onlySummary && !empty($idGoal)) {
             if (is_numeric($idGoal)) {
                 $view->config->title_attributes = array('piwik-goal-page-link' => $idGoal);
             }
             // in Goals overview summary we show proper title for a goal
             $goal = $this->getGoal($idGoal);
             if (!empty($goal['name'])) {
                 $view->config->title = Piwik::translate('Goals_GoalX', "'" . $goal['name'] . "'");
             }
         } else {
             $view->config->title = '';
         }
         $numberFormatter = NumberFormatter::getInstance();
         $view->config->filters[] = function (DataTable $table) use($numberFormatter, $idSite) {
             $firstRow = $table->getFirstRow();
             if ($firstRow) {
                 $revenue = $firstRow->getColumn('revenue');
                 $currencySymbol = Site::getCurrencySymbolFor($idSite);
                 $revenue = $numberFormatter->formatCurrency($revenue, $currencySymbol, GoalManager::REVENUE_PRECISION);
                 $firstRow->setColumn('revenue', $revenue);
                 $conversionRate = $firstRow->getColumn('conversion_rate');
                 if (false !== $conversionRate) {
                     $firstRow->setColumn('conversion_rate', $numberFormatter->formatPercent($conversionRate, $precision = 1));
                 }
                 $conversions = $firstRow->getColumn('nb_conversions');
                 if (false !== $conversions) {
                     $firstRow->setColumn('nb_conversions', $numberFormatter->formatNumber($conversions));
                 }
                 $visitsConverted = $firstRow->getColumn('nb_visits_converted');
                 if (false !== $visitsConverted) {
                     $firstRow->setColumn('nb_visits_converted', $numberFormatter->formatNumber($visitsConverted));
                 }
             }
         };
         $view->config->addTranslations(array('nb_visits' => Piwik::translate('VisitsSummary_NbVisitsDescription'), 'nb_conversions' => Piwik::translate('Goals_ConversionsDescription'), 'nb_visits_converted' => Piwik::translate('General_NVisits'), 'conversion_rate' => Piwik::translate('Goals_OverallConversionRate'), 'revenue' => Piwik::translate('Goals_OverallRevenue')));
         $allowMultiple = Common::getRequestVar('allow_multiple', 0, 'int');
         if ($allowMultiple) {
             $view->config->addSparklineMetric(array('nb_conversions', 'nb_visits_converted'), $order = 10);
         } else {
             $view->config->addSparklineMetric(array('nb_conversions'), $order = 10);
         }
         $view->config->addSparklineMetric(array('conversion_rate'), $order = 20);
         if (empty($idGoal)) {
             // goals overview sparklines below evolution graph
             if ($isEcommerceEnabled) {
                 // this would be ideally done in Ecommerce plugin but then it is hard to keep same order
                 $view->config->addSparklineMetric(array('revenue'), $order = 30);
             }
         } else {
             if ($onlySummary) {
                 // in Goals Overview we list an overview for each goal....
                 $view->config->addTranslation('conversion_rate', Piwik::translate('Goals_ConversionRate'));
             } elseif ($isEcommerceEnabled) {
                 // in Goals detail page...
                 $view->config->addSparklineMetric(array('revenue'), $order = 30);
             }
         }
     } else {
         if ($view->isViewDataTableId(Evolution::ID)) {
             if (!empty($idSite) && Piwik::isUserHasAdminAccess($idSite)) {
                 $view->config->title_edit_entity_url = 'index.php' . Url::getCurrentQueryStringWithParametersModified(array('module' => 'Goals', 'action' => 'manage', 'forceView' => null, 'viewDataTable' => null, 'showtitle' => null, 'random' => null));
             }
             $goal = $this->getGoal($idGoal);
             if (!empty($goal['name'])) {
                 $view->config->title = Piwik::translate('Goals_GoalX', "'" . $goal['name'] . "'");
                 if (!empty($goal['description'])) {
                     $view->config->description = $goal['description'];
                 }
             } else {
                 $view->config->title = Piwik::translate('General_EvolutionOverPeriod');
             }
             if (empty($view->config->columns_to_display)) {
                 $view->config->columns_to_display = array('nb_conversions');
             }
         }
     }
 }
Exemplo n.º 21
0
 private function configureViewForGetNumberOfVisitsPerPage(ViewDataTable $view)
 {
     $view->requestConfig->filter_sort_column = 'label';
     $view->requestConfig->filter_sort_order = 'asc';
     $view->config->addTranslation('label', Piwik::translate('VisitorInterest_ColumnVisitDuration'));
     $view->config->enable_sort = false;
     $view->config->show_exclude_low_population = false;
     $view->config->show_offset_information = false;
     $view->config->show_pagination_control = false;
     $view->config->show_limit_control = false;
     $view->config->show_search = false;
     $view->config->show_table_all_columns = false;
     $view->config->columns_to_display = array('label', 'nb_visits');
     if ($view->isViewDataTableId(Graph::ID)) {
         $view->config->show_series_picker = false;
         $view->config->selectable_columns = array();
         $view->config->max_graph_elements = 10;
     }
 }
Exemplo n.º 22
0
 private function configureViewForGetSocials(ViewDataTable $view)
 {
     $view->config->subtable_controller_action = 'getUrlsForSocial';
     $view->config->show_exclude_low_population = false;
     $view->config->show_goals = true;
     $view->config->addTranslation('label', Piwik::translate('Referrers_ColumnSocial'));
     $view->requestConfig->filter_limit = 10;
     if ($view->isViewDataTableId(HtmlTable::ID)) {
         $view->config->disable_subtable_when_show_goals = true;
     }
     $widget = Common::getRequestVar('widget', false);
     if (empty($widget)) {
         $view->config->show_footer_message = Piwik::translate('Referrers_SocialFooterMessage');
     }
 }
Exemplo n.º 23
0
 public function configureViewDataTable(ViewDataTable $view)
 {
     if ($view->requestConfig->getApiModuleToRequest() != 'Events') {
         return;
     }
     // eg. 'Events.getCategory'
     $apiMethod = $view->requestConfig->getApiMethodToRequest();
     $secondaryDimension = $this->getSecondaryDimensionFromRequest();
     $view->config->subtable_controller_action = API::getInstance()->getActionToLoadSubtables($apiMethod, $secondaryDimension);
     $pivotBy = Common::getRequestVar('pivotBy', false);
     if (empty($pivotBy)) {
         $view->config->columns_to_display = array('label', 'nb_events', 'sum_event_value');
     }
     $view->config->show_flatten_table = true;
     $view->requestConfig->filter_sort_column = 'nb_events';
     if ($view->isViewDataTableId(AllColumns::ID)) {
         $view->config->filters[] = function (DataTable $table) use($view) {
             $columsToDisplay = array('label');
             $columns = $table->getColumns();
             if (in_array('nb_visits', $columns)) {
                 $columsToDisplay[] = 'nb_visits';
             }
             if (in_array('nb_uniq_visitors', $columns)) {
                 $columsToDisplay[] = 'nb_uniq_visitors';
             }
             $view->config->columns_to_display = array_merge($columsToDisplay, array('nb_events', 'sum_event_value', 'avg_event_value', 'min_event_value', 'max_event_value'));
             if (!in_array($view->requestConfig->filter_sort_column, $view->config->columns_to_display)) {
                 $view->requestConfig->filter_sort_column = 'nb_events';
             }
         };
         $view->config->show_pivot_by_subtable = false;
     }
     $labelTranslation = $this->getColumnTranslation($apiMethod);
     $view->config->addTranslation('label', $labelTranslation);
     $view->config->addTranslations($this->getMetricTranslations());
     $this->addRelatedReports($view, $secondaryDimension);
     $this->addTooltipEventValue($view);
     $subtableReport = ReportsProvider::factory('Events', $view->config->subtable_controller_action);
     $view->config->pivot_by_dimension = $subtableReport->getDimension()->getId();
     $view->config->pivot_by_column = 'nb_events';
 }