summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlib/app.php17
-rw-r--r--lib/ocsclient.php2
-rw-r--r--settings/apps.php44
3 files changed, 41 insertions, 22 deletions
diff --git a/lib/app.php b/lib/app.php
index 328095a90d2..38ba4bcdc88 100755
--- a/lib/app.php
+++ b/lib/app.php
@@ -563,7 +563,12 @@ class OC_App{
if ( is_array( $catagoryNames ) ) {
- $categories = array_keys( $catagoryNames );
+ // Check that categories of apps were retrieved correctly
+ if ( ! $categories = array_keys( $catagoryNames ) ) {
+
+ return false;
+
+ }
$page = 0;
@@ -589,7 +594,15 @@ class OC_App{
}
- return $app1;
+ if ( empty( $app1 ) ) {
+
+ return false;
+
+ } else {
+
+ return $app1;
+
+ }
}
/**
diff --git a/lib/ocsclient.php b/lib/ocsclient.php
index 8596ea0b3c7..6428a883679 100644
--- a/lib/ocsclient.php
+++ b/lib/ocsclient.php
@@ -53,7 +53,7 @@ class OC_OCSClient{
/**
* @brief Get all the categories from the OCS server
* @returns array with category ids
- *
+ * @note returns NULL if config value appstoreenabled is set to false
* This function returns a list of all the application categories on the OCS server
*/
public static function getCategories() {
diff --git a/settings/apps.php b/settings/apps.php
index 1481f6fc4ad..a1c1bf6aa53 100644
--- a/settings/apps.php
+++ b/settings/apps.php
@@ -31,10 +31,6 @@ OC_App::setActiveNavigationEntry( "core_apps" );
$installedApps = OC_App::getAllApps();
-$remoteApps = OC_App::getAppstoreApps();
-
-//$remoteApps = array();
-
//TODO which apps do we want to blacklist and how do we integrate blacklisting with the multi apps folder feature?
$blacklist = array('files');//we dont want to show configuration for these
@@ -90,29 +86,39 @@ foreach ( $installedApps as $app ) {
}
}
-// Remove duplicates
-foreach ( $appList as $app ) {
+$remoteApps = OC_App::getAppstoreApps();
- foreach ( $remoteApps AS $key => $remote ) {
-
- if (
- $app['name'] == $remote['name']
- // To set duplicate detection to use OCS ID instead of string name,
- // enable this code, remove the line of code above,
- // and add <ocs_id>[ID]</ocs_id> to info.xml of each 3rd party app:
- // OR $app['ocs_id'] == $remote['ocs_id']
- ) {
+if ( $remoteApps ) {
+
+ // Remove duplicates
+ foreach ( $appList as $app ) {
+
+ foreach ( $remoteApps AS $key => $remote ) {
+
+ if (
+ $app['name'] == $remote['name']
+ // To set duplicate detection to use OCS ID instead of string name,
+ // enable this code, remove the line of code above,
+ // and add <ocs_id>[ID]</ocs_id> to info.xml of each 3rd party app:
+ // OR $app['ocs_id'] == $remote['ocs_id']
+ ) {
+
+ unset( $remoteApps[$key]);
- unset( $remoteApps[$key]);
+ }
}
-
+
}
+
+ $combinedApps = array_merge( $appList, $remoteApps );
+
+} else {
+
+ $combinedApps = $appList;
}
-$combinedApps = array_merge( $appList, $remoteApps );
-
function app_sort( $a, $b ) {
if ($a['active'] != $b['active']) {