|
|
|
@ -752,9 +752,42 @@ class OC_App{ |
|
|
|
|
} else { |
|
|
|
|
$combinedApps = $appList; |
|
|
|
|
} |
|
|
|
|
// bring the apps into the right order with a custom sort funtion |
|
|
|
|
usort($combinedApps,'\OC_App::customSort'); |
|
|
|
|
|
|
|
|
|
return $combinedApps; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @brief: Internal custom sort funtion to bring the app into the right order. Should only be called by listAllApps |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
private static function customSort($a, $b) { |
|
|
|
|
|
|
|
|
|
// prio 1: active |
|
|
|
|
if ($a['active'] != $b['active']) { |
|
|
|
|
return $b['active'] - $a['active']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// prio 2: shipped |
|
|
|
|
if ($a['shipped'] != $b['shipped']) { |
|
|
|
|
$atemp = ($a['shipped']==true ? 1 : 0); |
|
|
|
|
$btemp = ($b['shipped']==true ? 1 : 0); |
|
|
|
|
return ($btemp - $atemp); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// prio 3: recommended |
|
|
|
|
if ($a['internalclass'] != $b['internalclass']) { |
|
|
|
|
$atemp = ($a['internalclass']=='recommendedapp' ? 1 : 0); |
|
|
|
|
$btemp = ($b['internalclass']=='recommendedapp' ? 1 : 0); |
|
|
|
|
return ($btemp - $atemp); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// prio 4: alphabetical |
|
|
|
|
return strcmp($a['name'], $b['name']); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @brief: get a list of all apps on apps.owncloud.com |
|
|
|
|
* @return array, multi-dimensional array of apps. |
|
|
|
|