/** * Method to get all extensions that are using redCORE * * @return array Array of extensions */ public static function getExtensionsRedcore() { if (empty($loadedRedcoreExtensions)) { /** @var RedcoreModelConfig $model */ $model = RModelAdmin::getAdminInstance('Config', array(), 'com_redcore'); self::$loadedRedcoreExtensions = RComponentHelper::getRedcoreComponents(); foreach (self::$loadedRedcoreExtensions as $componentKey => $componentName) { self::$loadedRedcoreExtensions[$componentKey] = $model->getComponent($componentName); } } return self::$loadedRedcoreExtensions; }
/** * Prevents uninstalling redcore component if some components using it are still installed. * * @param JInstallerAdapter $parent class calling this method * * @return void * * @throws RuntimeException */ private function preventUninstallRedcore($parent) { $this->loadRedcoreLibrary(); // Avoid uninstalling redcore if there is a component using it $manifest = $this->getManifest($parent); $isRedcore = 'COM_REDCORE' === (string) $manifest->name; if ($isRedcore) { if (method_exists('RComponentHelper', 'getRedcoreComponents') && ($components = RComponentHelper::getRedcoreComponents())) { $app = JFactory::getApplication(); $message = sprintf("Cannot uninstall redCORE because the following components are using it: <br /> [%s]", implode(",<br /> ", $components)); $app->enqueueMessage($message, 'error'); $app->redirect('index.php?option=com_installer&view=manage'); } } }