|
|
|
|
@ -132,8 +132,12 @@ class OC_App { |
|
|
|
|
*/ |
|
|
|
|
public static function loadApp($app, $checkUpgrade = true) { |
|
|
|
|
self::$loadedApps[] = $app; |
|
|
|
|
\OC::$loader->addValidRoot(self::getAppPath($app)); // in case someone calls loadApp() directly |
|
|
|
|
if (is_file(self::getAppPath($app) . '/appinfo/app.php')) { |
|
|
|
|
$appPath = self::getAppPath($app); |
|
|
|
|
if($appPath === false) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
\OC::$loader->addValidRoot($appPath); // in case someone calls loadApp() directly |
|
|
|
|
if (is_file($appPath . '/appinfo/app.php')) { |
|
|
|
|
\OC::$server->getEventLogger()->start('load_app_' . $app, 'Load app: ' . $app); |
|
|
|
|
if ($checkUpgrade and self::shouldUpgrade($app)) { |
|
|
|
|
throw new \OC\NeedsUpdateException(); |
|
|
|
|
@ -605,7 +609,11 @@ class OC_App { |
|
|
|
|
if (isset(self::$appInfo[$appId])) { |
|
|
|
|
return self::$appInfo[$appId]; |
|
|
|
|
} |
|
|
|
|
$file = self::getAppPath($appId) . '/appinfo/info.xml'; |
|
|
|
|
$appPath = self::getAppPath($appId); |
|
|
|
|
if($appPath === false) { |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
$file = $appPath . '/appinfo/info.xml'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$parser = new \OC\App\InfoParser(\OC::$server->getHTTPHelper(), \OC::$server->getURLGenerator()); |
|
|
|
|
@ -807,15 +815,18 @@ class OC_App { |
|
|
|
|
|
|
|
|
|
$info['update'] = ($includeUpdateInfo) ? OC_Installer::isUpdateAvailable($app) : null; |
|
|
|
|
|
|
|
|
|
$appIcon = self::getAppPath($app) . '/img/' . $app . '.svg'; |
|
|
|
|
if (file_exists($appIcon)) { |
|
|
|
|
$info['preview'] = \OC::$server->getURLGenerator()->imagePath($app, $app . '.svg'); |
|
|
|
|
$info['previewAsIcon'] = true; |
|
|
|
|
} else { |
|
|
|
|
$appIcon = self::getAppPath($app) . '/img/app.svg'; |
|
|
|
|
$appPath = self::getAppPath($app); |
|
|
|
|
if($appPath !== false) { |
|
|
|
|
$appIcon = $appPath . '/img/' . $app . '.svg'; |
|
|
|
|
if (file_exists($appIcon)) { |
|
|
|
|
$info['preview'] = \OC::$server->getURLGenerator()->imagePath($app, 'app.svg'); |
|
|
|
|
$info['preview'] = \OC::$server->getURLGenerator()->imagePath($app, $app . '.svg'); |
|
|
|
|
$info['previewAsIcon'] = true; |
|
|
|
|
} else { |
|
|
|
|
$appIcon = $appPath . '/img/app.svg'; |
|
|
|
|
if (file_exists($appIcon)) { |
|
|
|
|
$info['preview'] = \OC::$server->getURLGenerator()->imagePath($app, 'app.svg'); |
|
|
|
|
$info['previewAsIcon'] = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$info['version'] = OC_App::getAppVersion($app); |
|
|
|
|
@ -1112,14 +1123,18 @@ class OC_App { |
|
|
|
|
* @return bool |
|
|
|
|
*/ |
|
|
|
|
public static function updateApp($appId) { |
|
|
|
|
if (file_exists(self::getAppPath($appId) . '/appinfo/database.xml')) { |
|
|
|
|
OC_DB::updateDbFromStructure(self::getAppPath($appId) . '/appinfo/database.xml'); |
|
|
|
|
$appPath = self::getAppPath($appId); |
|
|
|
|
if($appPath === false) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
if (file_exists($appPath . '/appinfo/database.xml')) { |
|
|
|
|
OC_DB::updateDbFromStructure($appPath . '/appinfo/database.xml'); |
|
|
|
|
} |
|
|
|
|
unset(self::$appVersion[$appId]); |
|
|
|
|
// run upgrade code |
|
|
|
|
if (file_exists(self::getAppPath($appId) . '/appinfo/update.php')) { |
|
|
|
|
if (file_exists($appPath . '/appinfo/update.php')) { |
|
|
|
|
self::loadApp($appId, false); |
|
|
|
|
include self::getAppPath($appId) . '/appinfo/update.php'; |
|
|
|
|
include $appPath . '/appinfo/update.php'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//set remote/public handlers |
|
|
|
|
|