mirror of
https://github.com/nextcloud/server.git
synced 2026-04-20 22:00:39 -04:00
make it possible to load apps seperately. needed to fix oc-910 without breaking oc-863
This commit is contained in:
parent
cf85a1e264
commit
b0d83d6d8d
1 changed files with 12 additions and 17 deletions
29
lib/app.php
29
lib/app.php
|
|
@ -35,6 +35,7 @@ class OC_App{
|
|||
static private $personalForms = array();
|
||||
static private $appInfo = array();
|
||||
static private $appTypes = array();
|
||||
static private $loadedApps = array();
|
||||
|
||||
/**
|
||||
* @brief loads all apps
|
||||
|
|
@ -48,24 +49,18 @@ class OC_App{
|
|||
* if $types is set, only apps of those types will be loaded
|
||||
*/
|
||||
public static function loadApps($types=null){
|
||||
// Did we already load everything?
|
||||
if( self::$init ){
|
||||
return true;
|
||||
}
|
||||
|
||||
// Load the enabled apps here
|
||||
$apps = self::getEnabledApps();
|
||||
// prevent app.php from printing output
|
||||
ob_start();
|
||||
foreach( $apps as $app ){
|
||||
if((is_null($types) or self::isType($app,$types))){
|
||||
if((is_null($types) or self::isType($app,$types)) && !in_array($app, self::$loadedApps)){
|
||||
self::loadApp($app);
|
||||
self::$loadedApps[] = $app;
|
||||
}
|
||||
}
|
||||
ob_end_clean();
|
||||
|
||||
self::$init = true;
|
||||
|
||||
// return
|
||||
return true;
|
||||
}
|
||||
|
|
@ -121,7 +116,7 @@ class OC_App{
|
|||
*/
|
||||
public static function setAppTypes($app){
|
||||
$appData=self::getAppInfo($app);
|
||||
|
||||
|
||||
if(isset($appData['types'])){
|
||||
$appTypes=implode(',',$appData['types']);
|
||||
}else{
|
||||
|
|
@ -183,7 +178,7 @@ class OC_App{
|
|||
if($app!==false){
|
||||
// check if the app is compatible with this version of ownCloud
|
||||
$info=OC_App::getAppInfo($app);
|
||||
$version=OC_Util::getVersion();
|
||||
$version=OC_Util::getVersion();
|
||||
if(!isset($info['require']) or ($version[0]>$info['require'])){
|
||||
OC_Log::write('core','App "'.$info['name'].'" can\'t be installed because it is not compatible with this version of ownCloud',OC_Log::ERROR);
|
||||
return false;
|
||||
|
|
@ -487,13 +482,13 @@ class OC_App{
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// check if the current enabled apps are compatible with the current ownCloud version. disable them if not.
|
||||
// this is important if you upgrade ownCloud and have non ported 3rd party apps installed
|
||||
$apps =OC_App::getEnabledApps();
|
||||
$version=OC_Util::getVersion();
|
||||
foreach($apps as $app) {
|
||||
|
||||
|
||||
// check if the app is compatible with this version of ownCloud
|
||||
$info=OC_App::getAppInfo($app);
|
||||
if(!isset($info['require']) or ($version[0]>$info['require'])){
|
||||
|
|
@ -501,12 +496,12 @@ class OC_App{
|
|||
OC_App::disable( $app );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue