Skip to content
Snippets Groups Projects
Commit f06df170 authored by Frank Karlitschek's avatar Frank Karlitschek
Browse files

finally fix the app sorting

parent f3336f88
No related branches found
No related tags found
No related merge requests found
......@@ -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.
......
......@@ -28,24 +28,7 @@ OC_App::loadApps();
OC_Util::addStyle( "settings", "settings" );
OC_App::setActiveNavigationEntry( "core_apps" );
function app_sort( $a, $b ) {
if ($a['active'] !== $b['active']) {
return $b['active'] - $a['active'];
}
if ($a['internal'] !== $b['internal']) {
return $b['internal'] - $a['internal'];
}
return strcmp($a['name'], $b['name']);
}
$combinedApps = OC_App::listAllApps();
usort( $combinedApps, 'app_sort' );
$tmpl = new OC_Template( "settings", "apps", "user" );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment