'configureViewDataTable', 'AssetManager.getJavaScriptFiles' => 'getJsFiles', 'Insights.addReportToOverview' => 'addReportToInsightsOverview', 'Metrics.getDefaultMetricTranslations' => 'addMetricTranslations', 'Metrics.getDefaultMetricDocumentationTranslations' => 'addMetricDocumentationTranslations', 'Actions.addActionTypes' => 'addActionTypes' ); } public function addMetricTranslations(&$translations) { $metrics = array( 'nb_pageviews' => 'General_ColumnPageviews', 'nb_uniq_pageviews' => 'General_ColumnUniquePageviews', 'nb_downloads' => 'General_Downloads', 'nb_uniq_downloads' => 'Actions_ColumnUniqueDownloads', 'nb_outlinks' => 'General_Outlinks', 'nb_uniq_outlinks' => 'Actions_ColumnUniqueOutlinks', 'nb_searches' => 'Actions_ColumnSearches', 'nb_keywords' => 'Actions_ColumnSiteSearchKeywords', 'avg_time_generation' => 'General_ColumnAverageGenerationTime', 'exit_rate' => 'General_ColumnExitRate', 'entry_nb_visits' => 'General_ColumnEntrances', 'entry_bounce_count' => 'General_ColumnBounces', 'exit_nb_visits' => 'General_ColumnExits', 'nb_pages_per_search' => 'Actions_ColumnPagesPerSearch', 'nb_hits_following_search' => 'General_ColumnViewedAfterSearch', ); $translations = array_merge($translations, $metrics); } public function addMetricDocumentationTranslations(&$translations) { $metrics = array( 'nb_pageviews' => 'General_ColumnPageviewsDocumentation', 'nb_uniq_pageviews' => 'General_ColumnUniquePageviewsDocumentation', 'nb_downloads' => 'Actions_ColumnClicksDocumentation', 'nb_uniq_downloads' => 'Actions_ColumnUniqueClicksDocumentation', 'nb_outlinks' => 'Actions_ColumnClicksDocumentation', 'nb_uniq_outlinks' => 'Actions_ColumnUniqueClicksDocumentation', 'nb_searches' => 'Actions_ColumnSearchesDocumentation', 'avg_time_generation' => 'General_ColumnAverageGenerationTimeDocumentation', 'entry_nb_visits' => 'General_ColumnEntrancesDocumentation', 'entry_bounce_count' => 'General_ColumnBouncesDocumentation', 'exit_nb_visits' => 'General_ColumnExitsDocumentation', 'exit_rate' => 'General_ColumnExitRateDocumentation' ); $translations = array_merge($translations, $metrics); } public function addReportToInsightsOverview(&$reports) { $reports['Actions_getPageUrls'] = array(); $reports['Actions_getPageTitles'] = array(); $reports['Actions_getDownloads'] = array('flat' => 1); } public function getJsFiles(&$jsFiles) { $jsFiles[] = "plugins/Actions/javascripts/actionsDataTable.js"; $jsFiles[] = "plugins/Actions/javascripts/rowactions.js"; } public function addActionTypes(&$types) { $types[] = [ 'id' => Action::TYPE_PAGE_URL, 'name' => 'pageviews' ]; $types[] = [ 'id' => Action::TYPE_CONTENT, 'name' => 'contents' ]; $types[] = [ 'id' => Action::TYPE_SITE_SEARCH, 'name' => 'sitesearches' ]; $types[] = [ 'id' => Action::TYPE_EVENT, 'name' => 'events' ]; $types[] = [ 'id' => Action::TYPE_OUTLINK, 'name' => 'outlinks' ]; $types[] = [ 'id' => Action::TYPE_DOWNLOAD, 'name' => 'downloads' ]; } public function isSiteSearchEnabled($idSites, $idSite) { $idSites = Site::getIdSitesFromIdSitesString($idSites, true); if (!empty($idSite)) { $idSites[] = $idSite; } if (empty($idSites)) { return false; } foreach ($idSites as $idSite) { if (!Site::isSiteSearchEnabledFor($idSite)) { return false; } } return true; } public function configureViewDataTable(ViewDataTable $view) { if ($this->pluginName == $view->requestConfig->getApiModuleToRequest()) { if ($view->isRequestingSingleDataTable()) { // make sure custom visualizations are shown on actions reports $view->config->show_all_views_icons = true; $view->config->show_bar_chart = false; $view->config->show_pie_chart = false; $view->config->show_tag_cloud = false; } } } /** * @param \Piwik\DataTable $dataTable * @param int $level */ public static function setDataTableRowLevels($dataTable, $level = 0) { foreach ($dataTable->getRows() as $row) { $row->setMetadata('css_class', 'level' . $level); $subtable = $row->getSubtable(); if ($subtable) { self::setDataTableRowLevels($subtable, $level + 1); } } } }