diff options
author | Robin Appelman <icewind@owncloud.com> | 2012-05-14 22:49:20 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2012-05-14 22:49:31 +0200 |
commit | 6779f28af40c51a0bd3722eca2fd313130e1a367 (patch) | |
tree | 73f1d5463f04df859c452f4714ffaf1434c3bf41 /lib | |
parent | e03c5f39a8c7b94cba121f7dbc65eea96f32854e (diff) | |
download | nextcloud-server-6779f28af40c51a0bd3722eca2fd313130e1a367.tar.gz nextcloud-server-6779f28af40c51a0bd3722eca2fd313130e1a367.zip |
cache app types during install or update
Diffstat (limited to 'lib')
-rw-r--r-- | lib/app.php | 25 | ||||
-rw-r--r-- | lib/installer.php | 6 |
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; } |