From 7eb3cc683c243061e47d1be197dd57b964f8b4f8 Mon Sep 17 00:00:00 2001 From: Max Kremmel Date: Thu, 30 Oct 2008 22:02:20 +0000 Subject: shuffle around some dependency stuff: move dep settings to schema_inc.php file since they are not related to upgrade versions, move dep methods to BitSystem to make them available on package page (we should really do something about these installer methods in kernel), add dep graph on package page for an easy overview if deps are met when a package has been activated - requireds PEAR::Image_GraphViz to be installed. --- admin/admin_packages_inc.php | 25 ++++++++++++++----------- admin/schema_inc.php | 10 +++++++++- admin/upgrades/2.0.0.php | 10 +--------- 3 files changed, 24 insertions(+), 21 deletions(-) (limited to 'admin') diff --git a/admin/admin_packages_inc.php b/admin/admin_packages_inc.php index e805624..87de1f3 100644 --- a/admin/admin_packages_inc.php +++ b/admin/admin_packages_inc.php @@ -1,6 +1,6 @@ scanPackages( 'bit_setup_inc.php', TRUE, 'all', TRUE, TRUE ); -ksort($gBitSystem->mPackages); // So packages will be listed in alphabetical order // make a copy of mPackages - expensive, but this is low use code -if(!empty( $_REQUEST['features'] ) ) { +if( !empty( $_REQUEST['features'] ) ) { $pkgArray = $gBitSystem->mPackages; foreach( array_keys( $pkgArray ) as $pkgKey ) { $pkg = $pkgArray[$pkgKey]; - if( isset( $pkg['name'] ) ) { + if( !empty( $pkg['name'] )) { $pkgName = strtolower( $pkg['name'] ); - #can only change already installed packages that are not required - if ($gBitSystem->isPackageInstalled($pkgName) && empty($pkg['required']) ) { - if( isset( $_REQUEST['fPackage'][$pkgName] ) ) { - #mark installed and active + // can only change already installed packages that are not required + if( $gBitSystem->isPackageInstalled( $pkgName ) && empty( $pkg['required'] )) { + if( isset( $_REQUEST['fPackage'][$pkgName] )) { + // mark installed and active $gBitSystem->storeConfig( 'package_'.$pkgName, 'y', $pkgName ); unset( $pkgArray[$pkgKey] ); - } - else { - #mark installed but not active + } else { + // mark installed but not active $gBitSystem->storeConfig( 'package_'.$pkgName, 'i', $pkgName ); unset( $pkgArray[$pkgKey] ); } @@ -43,4 +41,9 @@ if(!empty( $_REQUEST['features'] ) ) { global $gBitInstaller; $gBitInstaller = &$gBitSystem; $gBitSystem->verifyInstalledPackages(); +$gBitSmarty->assign( 'dependencies', $gBitInstaller->calculateDependencies() ); +$gBitSmarty->assign( 'dependencymap', $gBitSystem->drawDependencyGraph( 'cmapx' )); + +// So packages will be listed in alphabetical order +ksort( $gBitSystem->mPackages ); ?> diff --git a/admin/schema_inc.php b/admin/schema_inc.php index 1625ae2..f9be513 100644 --- a/admin/schema_inc.php +++ b/admin/schema_inc.php @@ -135,6 +135,14 @@ $gBitInstaller->registerModules( $moduleHash ); $gBitInstaller->registerUserPermissions( KERNEL_PKG_NAME, array( array('p_admin', 'Can manage users groups and permissions and all aspects of site management', 'admin', KERNEL_PKG_NAME ), array('p_access_closed_site', 'Can access site when closed', 'admin', KERNEL_PKG_NAME) -) ); +)); + +// Package dependencies +$gBitInstaller->registerDependencies( KERNEL_PKG_NAME, array( + 'liberty' => array( 'min' => '2.1.0' ), + 'users' => array( 'min' => '2.1.0' ), + 'themes' => array( 'min' => '2.0.0' ), + 'languages' => array( 'min' => '2.0.0' ), +)); ?> diff --git a/admin/upgrades/2.0.0.php b/admin/upgrades/2.0.0.php index 516e0e5..d86f031 100644 --- a/admin/upgrades/2.0.0.php +++ b/admin/upgrades/2.0.0.php @@ -1,6 +1,6 @@ str_replace( '.php', '', basename( __FILE__ )), 'description' => "Set core package version number.", ); - $gBitInstaller->registerPackageUpgrade( $infoHash ); - -$gBitInstaller->registerPackageDependencies( $infoHash, array( - 'liberty' => array( 'min' => '2.1.0' ), - 'users' => array( 'min' => '2.1.0' ), - 'themes' => array( 'min' => '2.0.0' ), - 'languages' => array( 'min' => '2.0.0' ), -)); ?> -- cgit v1.3