Required to use Ecommerce Analytics feature!'; return $info; } /** * @see Piwik_Plugin::getListHooksRegistered */ public function getListHooksRegistered() { $hooks = array( 'ArchiveProcessing_Day.compute' => 'archiveDay', 'ArchiveProcessing_Period.compute' => 'archivePeriod', 'WidgetsList.add' => 'addWidgets', 'Menu.add' => 'addMenus', 'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics', 'API.getReportMetadata' => 'getReportMetadata', 'API.getSegmentsMetadata' => 'getSegmentsMetadata', ); return $hooks; } public function addWidgets() { Piwik_AddWidget('General_Visitors', 'CustomVariables_CustomVariables', 'CustomVariables', 'getCustomVariables'); } public function addMenus() { Piwik_AddMenu('General_Visitors', 'CustomVariables_CustomVariables', array('module' => 'CustomVariables', 'action' => 'index'), $display = true, $order = 50); } /** * Returns metadata for available reports */ public function getReportMetadata(&$reports) { $documentation = Piwik_Translate('CustomVariables_CustomVariablesReportDocumentation', array('
', '', '')); $reports[] = array('category' => Piwik_Translate('General_Visitors'), 'name' => Piwik_Translate('CustomVariables_CustomVariables'), 'module' => 'CustomVariables', 'action' => 'getCustomVariables', 'actionToLoadSubTables' => 'getCustomVariablesValuesFromNameId', 'dimension' => Piwik_Translate('CustomVariables_ColumnCustomVariableName'), 'documentation' => $documentation, 'order' => 10); $reports[] = array('category' => Piwik_Translate('General_Visitors'), 'name' => Piwik_Translate('CustomVariables_CustomVariables'), 'module' => 'CustomVariables', 'action' => 'getCustomVariablesValuesFromNameId', 'dimension' => Piwik_Translate('CustomVariables_ColumnCustomVariableValue'), 'documentation' => $documentation, 'isSubtableReport' => true, 'order' => 15); } public function getSegmentsMetadata(&$segments) { for ($i = 1; $i <= Piwik_Tracker::MAX_CUSTOM_VARIABLES; $i++) { $segments[] = array( 'type' => 'dimension', 'category' => 'CustomVariables_CustomVariables', 'name' => Piwik_Translate('CustomVariables_ColumnCustomVariableName') . ' ' . $i . ' (' . Piwik_Translate('CustomVariables_ScopeVisit') . ')', 'segment' => 'customVariableName' . $i, 'sqlSegment' => 'log_visit.custom_var_k' . $i, ); $segments[] = array( 'type' => 'dimension', 'category' => 'CustomVariables_CustomVariables', 'name' => Piwik_Translate('CustomVariables_ColumnCustomVariableValue') . ' ' . $i . ' (' . Piwik_Translate('CustomVariables_ScopeVisit') . ')', 'segment' => 'customVariableValue' . $i, 'sqlSegment' => 'log_visit.custom_var_v' . $i, ); $segments[] = array( 'type' => 'dimension', 'category' => 'CustomVariables_CustomVariables', 'name' => Piwik_Translate('CustomVariables_ColumnCustomVariableName') . ' ' . $i . ' (' . Piwik_Translate('CustomVariables_ScopePage') . ')', 'segment' => 'customVariablePageName' . $i, 'sqlSegment' => 'log_link_visit_action.custom_var_k' . $i, ); $segments[] = array( 'type' => 'dimension', 'category' => 'CustomVariables_CustomVariables', 'name' => Piwik_Translate('CustomVariables_ColumnCustomVariableValue') . ' ' . $i . ' (' . Piwik_Translate('CustomVariables_ScopePage') . ')', 'segment' => 'customVariablePageValue' . $i, 'sqlSegment' => 'log_link_visit_action.custom_var_v' . $i, ); } } /** * Adds Goal dimensions, so that the dimensions are displayed in the UI Goal Overview page */ public function getReportsWithGoalMetrics(&$dimensions) { $dimensions = array_merge($dimensions, array( array('category' => Piwik_Translate('General_Visit'), 'name' => Piwik_Translate('CustomVariables_CustomVariables'), 'module' => 'CustomVariables', 'action' => 'getCustomVariables', ), )); } /** * Hooks on daily archive to trigger various log processing */ public function archiveDay(Piwik_ArchiveProcessor_Day $archiveProcessor) { $archiving = new Piwik_CustomVariables_Archiver($archiveProcessor); if($archiving->shouldArchive()) { $archiving->archiveDay(); } } public function archivePeriod(Piwik_ArchiveProcessor_Period $archiveProcessor) { $archiving = new Piwik_CustomVariables_Archiver($archiveProcessor); if($archiving->shouldArchive()) { $archiving->archivePeriod(); } } }