예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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');
         }
     }
 }