finally fix the app sorting
This commit is contained in:
parent
f3336f8877
commit
f06df170cb
2 changed files with 33 additions and 17 deletions
|
@ -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" );
|
||||
|
||||
|
|
Loading…
Reference in a new issue