setName('customvariables:info'); $this->setDescription('Get info about configured custom variables'); } protected function execute(InputInterface $input, OutputInterface $output) { $maxVars = CustomVariables::getNumUsableCustomVariables(); if ($this->hasEverywhereSameAmountOfVariables()) { $this->writeSuccessMessage($output, array( 'Your Piwik is configured for ' . $maxVars . ' custom variables.' )); return; } $output->writeln('There is a problem with your custom variables configuration:'); $output->writeln('Some database tables miss custom variables columns.'); $output->writeln(''); $output->writeln('Your Piwik seems to be configured for ' . $maxVars . ' custom variables.'); $output->writeln('Executing "./console customvariables:set-max-custom-variables ' . $maxVars . '" might fix this issue.'); $output->writeln('If not check the following tables whether they have the same columns starting with custom_var_: '); foreach (Model::getScopes() as $scope) { $output->writeln(Common::prefixTable($scope)); } } private function hasEverywhereSameAmountOfVariables() { $indexesBefore = null; foreach (Model::getScopes() as $scope) { $model = new Model($scope); $indexes = $model->getCustomVarIndexes(); if (is_null($indexesBefore)) { $indexesBefore = $indexes; } elseif ($indexes != $indexesBefore) { return false; } } return true; } }