From e047feb2ad90c3b103c92d35f794988767b2ba21 Mon Sep 17 00:00:00 2001 From: Kamil Domanski Date: Tue, 21 Jun 2011 22:16:41 +0200 Subject: [PATCH] install shipped apps also in "installed apps" page --- admin/apps.php | 3 +++ lib/installer.php | 38 ++++++++++++++++++++++++++++++++++++++ lib/setup.php | 28 +--------------------------- 3 files changed, 42 insertions(+), 27 deletions(-) diff --git a/admin/apps.php b/admin/apps.php index 5eec7e626d3..56e76d139d2 100644 --- a/admin/apps.php +++ b/admin/apps.php @@ -22,6 +22,7 @@ */ require_once('../lib/base.php'); +include_once('../lib/installer.php'); require( 'template.php' ); if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' )){ header( "Location: ".OC_HELPER::linkTo( "", "index.php" )); @@ -42,6 +43,8 @@ if($installed){ $apps = OC_APPCONFIG::getApps(); $records = array(); + OC_INSTALLER::installShippedApps(false); + OC_APP::setActiveNavigationEntry( "core_apps_installed" ); foreach($apps as $app){ $info=OC_APP::getAppInfo("$SERVERROOT/apps/$app/appinfo/info.xml"); diff --git a/lib/installer.php b/lib/installer.php index 91b7ea7da67..a237caa0983 100644 --- a/lib/installer.php +++ b/lib/installer.php @@ -236,4 +236,42 @@ class OC_INSTALLER{ // TODO: write function return true; } + + /** + * @brief Installs shipped apps + * @param $enabled + * + * This function installs all apps found in the 'apps' directory; + * If $enabled is true, apps are installed as enabled. + * If $enabled is false, apps are installed as disabled. + */ + public static function installShippedApps( $enabled ){ + global $SERVERROOT; + $dir = opendir( "$SERVERROOT/apps" ); + while( false !== ( $filename = readdir( $dir ))){ + if( substr( $filename, 0, 1 ) != '.' and is_dir("$SERVERROOT/apps/$filename") ){ + if( file_exists( "$SERVERROOT/apps/$filename/appinfo/app.php" )){ + if(!OC_INSTALLER::isInstalled($filename)){ + //install the database + if(is_file("$SERVERROOT/apps/$filename/appinfo/database.xml")){ + OC_DB::createDbFromStructure("$SERVERROOT/apps/$filename/appinfo/database.xml"); + } + + //run appinfo/install.php + if(is_file("$SERVERROOT/apps/$filename/appinfo/install.php")){ + include("$SERVERROOT/apps/$filename/appinfo/install.php"); + } + $info=OC_APP::getAppInfo("$SERVERROOT/apps/$filename/appinfo/info.xml"); + OC_APPCONFIG::setValue($filename,'installed_version',$info['version']); + if( $enabled ){ + OC_APPCONFIG::setValue($filename,'enabled','yes'); + }else{ + OC_APPCONFIG::setValue($filename,'enabled','no'); + } + } + } + } + } + closedir( $dir ); + } } diff --git a/lib/setup.php b/lib/setup.php index bdb5dcc4e24..281f24db507 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -136,7 +136,7 @@ class OC_SETUP { OC_GROUP::addToGroup($username, 'admin'); //guess what this does - self::installShippedApps(); + OC_INSTALLER::installShippedApps(true); //create htaccess files for apache hosts self::createHtaccess(); //TODO detect if apache is used @@ -186,32 +186,6 @@ class OC_SETUP { $content = "deny from all"; file_put_contents(OC_CONFIG::getValue('datadirectory', $SERVERROOT.'/data').'/.htaccess', $content); } - - private static function installShippedApps(){ - global $SERVERROOT; - $dir = opendir( "$SERVERROOT/apps" ); - while( false !== ( $filename = readdir( $dir ))){ - if( substr( $filename, 0, 1 ) != '.' and is_dir("$SERVERROOT/apps/$filename") ){ - if( file_exists( "$SERVERROOT/apps/$filename/appinfo/app.php" )){ - if(!OC_INSTALLER::isInstalled($filename)){ - //install the database - if(is_file("$SERVERROOT/apps/$filename/appinfo/database.xml")){ - OC_DB::createDbFromStructure("$SERVERROOT/apps/$filename/appinfo/database.xml"); - } - - //run appinfo/install.php - if(is_file("$SERVERROOT/apps/$filename/appinfo/install.php")){ - include("$SERVERROOT/apps/$filename/appinfo/install.php"); - } - $info=OC_APP::getAppInfo("$SERVERROOT/apps/$filename/appinfo/info.xml"); - OC_APPCONFIG::setValue($filename,'installed_version',$info['version']); - OC_APPCONFIG::setValue($filename,'enabled','yes'); - } - } - } - } - closedir( $dir ); - } } ?> -- 2.39.5