summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2011-08-22 14:17:38 +0200
committerRobin Appelman <icewind1991@gmail.com>2011-08-22 14:17:38 +0200
commitaf3080402b06e86213c19e99c904b650d074f041 (patch)
treec387ff4468ced4d462ce15c7effd6550f9e31cd0 /lib
parentc9a11d0aab4d10f6dfe79d080a8851ee6d86e219 (diff)
downloadnextcloud-server-af3080402b06e86213c19e99c904b650d074f041.tar.gz
nextcloud-server-af3080402b06e86213c19e99c904b650d074f041.zip
fix installing shipped apps
Diffstat (limited to 'lib')
-rw-r--r--lib/app.php4
-rw-r--r--lib/installer.php31
2 files changed, 23 insertions, 12 deletions
diff --git a/lib/app.php b/lib/app.php
index e9f97a4354e..2bbc160b26b 100644
--- a/lib/app.php
+++ b/lib/app.php
@@ -95,6 +95,9 @@ class OC_App{
* This function set an app as enabled in appconfig.
*/
public static function enable( $app ){
+ if(!OC_Installer::isInstalled($app)){
+ OC_Installer::installShippedApp($app);
+ }
OC_Appconfig::setValue( $app, 'enabled', 'yes' );
}
@@ -202,7 +205,6 @@ class OC_App{
$admin=array(
array( "id" => "core_users", "order" => 2, "href" => OC_Helper::linkTo( "settings", "users.php" ), "name" => $l->t("Users"), "icon" => OC_Helper::imagePath( "settings", "users.svg" )),
array( "id" => "core_apps", "order" => 3, "href" => OC_Helper::linkTo( "settings", "apps.php?installed" ), "name" => $l->t("Apps"), "icon" => OC_Helper::imagePath( "settings", "apps.svg" )),
-// array( "id" => "files_administration", "order" => 3, "href" => OC_Helper::linkTo( "files", "admin.php" ), "name" => $l->t("Files"), "icon" => OC_Helper::imagePath( "settings", "options.svg" )),
);
$settings=array(
array( "id" => "help", "order" => 1000, "href" => OC_Helper::linkTo( "settings", "help.php" ), "name" => $l->t("Help"), "icon" => OC_Helper::imagePath( "settings", "help.svg" )),
diff --git a/lib/installer.php b/lib/installer.php
index e25f9d9c4ce..e6810a267db 100644
--- a/lib/installer.php
+++ b/lib/installer.php
@@ -252,17 +252,7 @@ class OC_Installer{
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_Installer::installShippedApp($filename);
if( $enabled ){
OC_Appconfig::setValue($filename,'enabled','yes');
}else{
@@ -274,4 +264,23 @@ class OC_Installer{
}
closedir( $dir );
}
+
+ /**
+ * install an app already placed in the app folder
+ * @param string $app id of the app to install
+ * @return bool
+ */
+ public static function installShippedApp($app){
+ //install the database
+ if(is_file(OC::$SERVERROOT."/apps/$app/appinfo/database.xml")){
+ OC_DB::createDbFromStructure(OC::$SERVERROOT."/apps/$app/appinfo/database.xml");
+ }
+
+ //run appinfo/install.php
+ if(is_file(OC::$SERVERROOT."/apps/$app/appinfo/install.php")){
+ include(OC::$SERVERROOT."/apps/$app/appinfo/install.php");
+ }
+ $info=OC_App::getAppInfo(OC::$SERVERROOT."/apps/$app/appinfo/info.xml");
+ OC_Appconfig::setValue($app,'installed_version',$info['version']);
+ }
}