summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/app.php25
-rw-r--r--lib/installer.php6
2 files changed, 21 insertions, 10 deletions
diff --git a/lib/app.php b/lib/app.php
index 04fa0ff495d..865be5c5a1e 100644
--- a/lib/app.php
+++ b/lib/app.php
@@ -114,19 +114,22 @@ class OC_App{
self::$appTypes=OC_Appconfig::getValues(false,'types');
}
- //get it from info.xml if we haven't cached it
- if(!isset(self::$appTypes[$app])){
- $appData=self::getAppInfo($app);
- if(isset($appData['types'])){
- self::$appTypes[$app]=implode(',',$appData['types']);
- }else{
- self::$appTypes[$app]='';
- }
+ return explode(',',self::$appTypes[$app]);
+ }
- OC_Appconfig::setValue($app,'types',self::$appTypes[$app]);
+ /**
+ * read app types from info.xml and cache them in the database
+ */
+ public static function setAppTypes($app){
+ $appData=self::getAppInfo($app);
+
+ if(isset($appData['types'])){
+ $appTypes=implode(',',$appData['types']);
+ }else{
+ $appTypes='';
}
- return explode(',',self::$appTypes[$app]);
+ OC_Appconfig::setValue($app,'types',$appTypes);
}
/**
@@ -542,6 +545,8 @@ class OC_App{
foreach($appData['public'] as $name=>$path){
OCP\CONFIG::setAppValue('core', 'public_'.$name, '/apps/'.$appid.'/'.$path);
}
+
+ self::setAppTypes($appid);
}
/**
diff --git a/lib/installer.php b/lib/installer.php
index e1f30ebe272..731eaaa9030 100644
--- a/lib/installer.php
+++ b/lib/installer.php
@@ -193,6 +193,9 @@ class OC_Installer{
foreach($info['public'] as $name=>$path){
OCP\CONFIG::setAppValue('core', 'public_'.$name, '/apps/'.$info['id'].'/'.$path);
}
+
+ OC_App::setAppTypes($info['id']);
+
return $info['id'];
}
@@ -318,6 +321,9 @@ class OC_Installer{
foreach($info['public'] as $name=>$path){
OCP\CONFIG::setAppValue('core', 'public_'.$name, '/apps/'.$app.'/'.$path);
}
+
+ OC_App::setAppTypes($info['id']);
+
return $info;
}