Exemplo n.º 1
0
 public function configureReportingMenu(MenuReporting $menu)
 {
     $idSite = Common::getRequestVar('idSite', null, 'int');
     $config = new Configuration();
     $dimensions = $config->getCustomDimensionsForSite($idSite);
     foreach ($dimensions as $index => $dimension) {
         if (!$dimension['active']) {
             unset($dimensions[$index]);
         }
     }
     $this->addMenuItemsForCustomDimensions($menu, $dimensions, CustomDimensions::SCOPE_VISIT);
     $this->addMenuItemsForCustomDimensions($menu, $dimensions, CustomDimensions::SCOPE_ACTION);
 }
Exemplo n.º 2
0
 private function getActiveCustomDimensions()
 {
     $idSite = $this->processor->getParams()->getSite()->getId();
     $config = new Configuration();
     $dimensions = $config->getCustomDimensionsForSite($idSite);
     $active = array();
     foreach ($dimensions as $index => $dimension) {
         if ($dimension['active']) {
             $active[] = $dimension;
         }
     }
     return $active;
 }
 private function createManyCustomDimensionCases()
 {
     $cases = array(array('idSite' => 1, 'scope' => 'action', 'index' => 1, 'expectedId' => 1, 'case_sensitive' => true, 'active' => true), array('idSite' => 1, 'scope' => 'visit', 'index' => 1, 'expectedId' => 2, 'case_sensitive' => false, 'active' => false), array('idSite' => 1, 'scope' => 'visit', 'index' => 2, 'expectedId' => 3, 'case_sensitive' => true, 'active' => false), array('idSite' => 2, 'scope' => 'action', 'index' => 1, 'expectedId' => 1, 'case_sensitive' => false, 'active' => false), array('idSite' => 1, 'scope' => 'action', 'index' => 2, 'expectedId' => 4, 'case_sensitive' => false, 'active' => true), array('idSite' => 1, 'scope' => 'visit', 'index' => 3, 'expectedId' => 5, 'case_sensitive' => false, 'active' => false), array('idSite' => 2, 'scope' => 'visit', 'index' => 1, 'expectedId' => 2, 'case_sensitive' => true, 'active' => true), array('idSite' => 2, 'scope' => 'visit', 'index' => 2, 'expectedId' => 3, 'case_sensitive' => true, 'active' => false));
     foreach ($cases as $index => $case) {
         $idDimension = $this->config->configureNewDimension($case['idSite'], $name = 'Test' . $index, $case['scope'], $case['index'], $case['active'], $extractions = array(), $case['case_sensitive']);
         $this->assertSame($case['expectedId'], $idDimension);
     }
     return $cases;
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $scope = $this->getScope($input);
     $tracking = new LogTable($scope);
     $installedIndexes = $tracking->getInstalledIndexes();
     $index = $this->getIndex($input, $installedIndexes);
     $output->writeln(sprintf('Remove Custom Dimension at index %d in scope %s.', $index, $scope));
     $configuration = new Configuration();
     $configs = $configuration->getCustomDimensionsHavingIndex($scope, $index);
     $names = array();
     foreach ($configs as $config) {
         $names[] = $config['name'];
     }
     if (empty($names)) {
         $output->writeln('This index is currently not used by any website');
     } else {
         $output->writeln(sprintf('This index is used by %d websites and used for the following Custom Dimensions: "%s"', count($names), implode('", "', $names)));
     }
     $output->writeln('');
     $output->writeln('<comment>This causes schema changes in the database and may take a very long time.</comment>');
     $output->writeln('<comment>Removing tracked Custom Dimension data cannot be undone unless you have a backup.</comment>');
     $noInteraction = $input->getOption('no-interaction');
     if (!$noInteraction && !$this->confirmChange($output)) {
         return;
     }
     $output->writeln('');
     $output->writeln('Starting to remove this Custom Dimension.');
     $output->writeln('');
     $tracking = new LogTable($scope);
     $tracking->removeCustomDimension($index);
     $configuration->deleteConfigurationsForIndex($index);
     if ($scope === CustomDimensions::SCOPE_VISIT) {
         $tracking = new LogTable(CustomDimensions::SCOPE_CONVERSION);
         $tracking->removeCustomDimension($index);
     }
     Cache::clearCacheGeneral();
     $numDimensionsAvailable = $tracking->getNumInstalledIndexes();
     $this->writeSuccessMessage($output, array(sprintf('Your Piwik is now configured for up to %d Custom Dimensions in scope %s.', $numDimensionsAvailable, $scope)));
 }
 private function configureSomeDimensions()
 {
     $configuration = new Configuration();
     $configuration->configureNewDimension($this->idSite, 'MyName1', CustomDimensions::SCOPE_VISIT, 1, $active = true, $extractions = array(), $caseSensitive = true);
     $configuration->configureNewDimension($this->idSite, 'MyName2', CustomDimensions::SCOPE_VISIT, 2, $active = true, $extractions = array(), $caseSensitive = true);
     $configuration->configureNewDimension($this->idSite2, 'MyName1', CustomDimensions::SCOPE_VISIT, 1, $active = true, $extractions = array(), $caseSensitive = true);
     $extraction1 = new Extraction('urlparam', 'test');
     $extraction2 = new Extraction('urlparam', 'param');
     $extraction3 = new Extraction('url', '/sub_(.{2})/page');
     $configuration->configureNewDimension($this->idSite, 'MyName3', CustomDimensions::SCOPE_ACTION, 1, $active = true, $extractions = array($extraction3->toArray()), $caseSensitive = true);
     $configuration->configureNewDimension($this->idSite, 'MyName4', CustomDimensions::SCOPE_ACTION, 2, $active = false, $extractions = array(), $caseSensitive = true);
     $configuration->configureNewDimension($this->idSite, 'MyName5', CustomDimensions::SCOPE_ACTION, 3, $active = true, $extractions = array($extraction1->toArray(), $extraction2->toArray()), $caseSensitive = true);
     $configuration->configureNewDimension($this->idSite, 'MyName6', CustomDimensions::SCOPE_VISIT, 4, $active = true, $extractions = array(), $caseSensitive = true);
     Cache::deleteCacheWebsiteAttributes(1);
     Cache::deleteCacheWebsiteAttributes(2);
     Cache::clearCacheGeneral();
 }
 public function getReportsWithGoalMetrics(&$reportsWithGoals)
 {
     $idSite = Common::getRequestVar('idSite', 0, 'int');
     if ($idSite < 1) {
         return;
     }
     $dimensions = $this->configuration->getCustomDimensionsForSite($idSite);
     foreach ($dimensions as $dimension) {
         if (!$dimension['active']) {
             continue;
         }
         if ($dimension['scope'] !== self::SCOPE_VISIT) {
             continue;
         }
         $reportsWithGoals[] = array('category' => 'VisitsSummary_VisitsSummary', 'name' => $dimension['name'], 'module' => $this->pluginName, 'action' => 'getCustomDimension', 'parameters' => array('idDimension' => $dimension['idcustomdimension']));
     }
 }
 public function deleteCustomDimensionDefinitionsForSite($idSite)
 {
     $this->configuration->deleteConfigurationsForSite($idSite);
 }
 private function createIndex($scope, $index, $active)
 {
     $configuration = new Configuration();
     return $configuration->configureNewDimension($idSite = 1, 'MyName', $scope, $index, $active, array(), $caseSensitive = true);
 }
 private function getActiveDimensionsForSite($idSite)
 {
     if (empty($this->dimensionCache[$idSite])) {
         $this->dimensionCache[$idSite] = array();
         $configuration = new Configuration();
         $dimensions = $configuration->getCustomDimensionsForSite($idSite);
         foreach ($dimensions as $index => $dimension) {
             if ($dimension['active']) {
                 $this->dimensionCache[$idSite][] = $dimension;
             }
         }
     }
     return $this->dimensionCache[$idSite];
 }
 private function configureSomeDimensions()
 {
     $configuration = new Configuration();
     $configuration->configureNewDimension($idSite = 1, 'MyName1', CustomDimensions::SCOPE_VISIT, 1, true, $extractions = array(), $caseSensitive = true);
     $configuration->configureNewDimension($idSite = 1, 'MyName2', CustomDimensions::SCOPE_VISIT, 2, false, $extractions = array(), $caseSensitive = true);
     $configuration->configureNewDimension($idSite = 2, 'MyName1', CustomDimensions::SCOPE_VISIT, 1, true, $extractions = array(), $caseSensitive = true);
     $configuration->configureNewDimension($idSite = 1, 'MyName3', CustomDimensions::SCOPE_ACTION, 1, true, $extractions = array(), $caseSensitive = true);
     $configuration->configureNewDimension($idSite = 1, 'MyName4', CustomDimensions::SCOPE_ACTION, 2, $active = false, $extractions = array(), $caseSensitive = true);
     $configuration->configureNewDimension($idSite = 1, 'MyName5', CustomDimensions::SCOPE_ACTION, 3, $active = true, $extractions = array(), $caseSensitive = true);
     $configuration->configureNewDimension($idSite = 1, 'MyName6', CustomDimensions::SCOPE_VISIT, 4, $active = true, $extractions = array(), $caseSensitive = true);
     Cache::deleteCacheWebsiteAttributes(1);
     Cache::deleteCacheWebsiteAttributes(2);
 }
Exemplo n.º 11
0
 private function createIndex($idSite, $scope, $index)
 {
     $configuration = new Configuration();
     $configuration->configureNewDimension($idSite, 'MyName', $scope, $index, false, array(), $caseSensitive = true);
 }