diff options
author | Kamil Domanski <kdomanski@kdemail.net> | 2011-06-21 22:16:41 +0200 |
---|---|---|
committer | Kamil Domanski <kdomanski@kdemail.net> | 2011-06-21 22:17:53 +0200 |
commit | e047feb2ad90c3b103c92d35f794988767b2ba21 (patch) | |
tree | 78cbff89498262f9df8a85b25c9594120fc1cc7d /lib/installer.php | |
parent | ee0f1490e1872cbe6071f5758e292ae1646ab1af (diff) | |
download | nextcloud-server-e047feb2ad90c3b103c92d35f794988767b2ba21.tar.gz nextcloud-server-e047feb2ad90c3b103c92d35f794988767b2ba21.zip |
install shipped apps also in "installed apps" page
Diffstat (limited to 'lib/installer.php')
-rw-r--r-- | lib/installer.php | 38 |
1 files changed, 38 insertions, 0 deletions
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 ); + } } |