/** * Checks whether this package is required by other packages. * If so than a template will be displayed to warn the user that * a further uninstallation will uninstall also the dependent packages */ public static function checkDependencies() { $packageID = 0; if (isset($_REQUEST['packageID'])) { $packageID = intval($_REQUEST['packageID']); } // get packages info try { // create object of uninstalling package $package = new Package($packageID); } catch (SystemException $e) { throw new IllegalLinkException(); } // can not uninstall wcf package. if ($package->package == 'com.woltlab.wcf') { throw new IllegalLinkException(); } $dependentPackages = array(); $uninstallAvailable = true; if ($package->isRequired()) { // get packages that requires this package $dependentPackages = self::getPackageDependencies($package->packageID); foreach ($dependentPackages as $dependentPackage) { if ($dependentPackage['packageID'] == PACKAGE_ID) { $uninstallAvailable = false; break; } } } // add this package to queue self::addQueueEntries($package, $dependentPackages); }