/** * @param $pluginName */ private function executePluginUninstall($pluginName) { try { $plugin = $this->getLoadedPlugin($pluginName); $plugin->uninstall(); } catch (\Exception $e) { } if (empty($plugin)) { return; } try { $visitDimensions = VisitDimension::getAllDimensions(); foreach (VisitDimension::getDimensions($plugin) as $dimension) { $this->uninstallDimension(VisitDimension::INSTALLER_PREFIX, $dimension, $visitDimensions); } } catch (\Exception $e) { } try { $actionDimensions = ActionDimension::getAllDimensions(); foreach (ActionDimension::getDimensions($plugin) as $dimension) { $this->uninstallDimension(ActionDimension::INSTALLER_PREFIX, $dimension, $actionDimensions); } } catch (\Exception $e) { } try { $conversionDimensions = ConversionDimension::getAllDimensions(); foreach (ConversionDimension::getDimensions($plugin) as $dimension) { $this->uninstallDimension(ConversionDimension::INSTALLER_PREFIX, $dimension, $conversionDimensions); } } catch (\Exception $e) { } }
public static function getDimensions(Plugin $plugin) { $dimensions = array(); foreach (VisitDimension::getDimensions($plugin) as $dimension) { $dimensions[] = $dimension; } foreach (ActionDimension::getDimensions($plugin) as $dimension) { $dimensions[] = $dimension; } foreach (ConversionDimension::getDimensions($plugin) as $dimension) { $dimensions[] = $dimension; } return $dimensions; }
/** * @param $pluginName */ private function executePluginUninstall($pluginName) { try { $plugin = $this->getLoadedPlugin($pluginName); $plugin->uninstall(); } catch (\Exception $e) { } if (empty($plugin)) { return; } try { foreach (VisitDimension::getDimensions($plugin) as $dimension) { $this->uninstallDimension($dimension); } } catch (\Exception $e) { } try { foreach (ActionDimension::getDimensions($plugin) as $dimension) { $this->uninstallDimension($dimension); } } catch (\Exception $e) { } try { foreach (ConversionDimension::getDimensions($plugin) as $dimension) { $this->uninstallDimension($dimension); } } catch (\Exception $e) { } }
public function test_getDimensions_shouldOnlyLoadAllVisitDimensionsFromACertainPlugin() { Manager::getInstance()->loadPlugins(array('Actions')); $plugin = Manager::getInstance()->loadPlugin('Actions'); $dimensions = VisitDimension::getDimensions($plugin); $this->assertGreaterThan(5, count($dimensions)); foreach ($dimensions as $dimension) { $this->assertInstanceOf('\\Piwik\\Plugin\\Dimension\\VisitDimension', $dimension); $this->assertStringStartsWith('Piwik\\Plugins\\Actions\\Columns', get_class($dimension)); } }