From 30274ee33ed837088f662c1949a5b3a291cd6801 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Mon, 21 Jan 2013 22:18:11 +0100 Subject: [PATCH] Move to OC_App --- lib/app.php | 66 +++++++++++++++++++++++++++++++++++ settings/apps.php | 89 ----------------------------------------------- 2 files changed, 66 insertions(+), 89 deletions(-) diff --git a/lib/app.php b/lib/app.php index 82cffc279f2..108226fc1a1 100644 --- a/lib/app.php +++ b/lib/app.php @@ -588,6 +588,72 @@ class OC_App{ return $apps; } + /** + * @brief: Lists all apps, this is used in apps.php + * @return array + */ + public static function listAllApps() { + $installedApps = OC_App::getAllApps(); + + //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 + $appList = array(); + + foreach ( $installedApps as $app ) { + if ( array_search( $app, $blacklist ) === false ) { + + $info=OC_App::getAppInfo($app); + + if (!isset($info['name'])) { + OC_Log::write('core', 'App id "'.$app.'" has no name in appinfo', OC_Log::ERROR); + continue; + } + + if ( OC_Appconfig::getValue( $app, 'enabled', 'no') == 'yes' ) { + $active = true; + } else { + $active = false; + } + + $info['active'] = $active; + + if(isset($info['shipped']) and ($info['shipped']=='true')) { + $info['internal']=true; + $info['internallabel']='Internal App'; + } else { + $info['internal']=false; + $info['internallabel']='3rd Party App'; + } + + $info['preview'] = OC_Helper::imagePath('settings', 'trans.png'); + $info['version'] = OC_App::getAppVersion($app); + $appList[] = $info; + } + } + $remoteApps = OC_App::getAppstoreApps(); + 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 [ID] to info.xml of each 3rd party app: + // OR $app['ocs_id'] == $remote['ocs_id'] + ) { + unset( $remoteApps[$key]); + } + } + } + $combinedApps = array_merge( $appList, $remoteApps ); + } else { + $combinedApps = $appList; + } + return $combinedApps; +} + /** * @brief: get a list of all apps on apps.owncloud.com * @return array, multi-dimensional array of apps. Keys: id, name, type, typename, personid, license, detailpage, preview, changed, description diff --git a/settings/apps.php b/settings/apps.php index 99a3094399d..9de7bdc80a7 100644 --- a/settings/apps.php +++ b/settings/apps.php @@ -29,95 +29,6 @@ OC_Util::addStyle( "settings", "settings" ); OC_Util::addScript( "settings", "apps" ); OC_App::setActiveNavigationEntry( "core_apps" ); -$installedApps = OC_App::getAllApps(); - -//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 - -$appList = array(); - -foreach ( $installedApps as $app ) { - - if ( array_search( $app, $blacklist ) === false ) { - - $info=OC_App::getAppInfo($app); - - if (!isset($info['name'])) { - - OC_Log::write('core', 'App id "'.$app.'" has no name in appinfo', OC_Log::ERROR); - - continue; - - } - - if ( OC_Appconfig::getValue( $app, 'enabled', 'no') == 'yes' ) { - - $active = true; - - } else { - - $active = false; - - } - - $info['active'] = $active; - - if(isset($info['shipped']) and ($info['shipped']=='true')) { - - $info['internal']=true; - - $info['internallabel']='Internal App'; - - }else{ - - $info['internal']=false; - - $info['internallabel']='3rd Party App'; - - } - - $info['preview'] = OC_Helper::imagePath('settings', 'trans.png'); - - $info['version'] = OC_App::getAppVersion($app); - - $appList[] = $info; - - } -} - -$remoteApps = OC_App::getAppstoreApps(); - -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 [ID] to info.xml of each 3rd party app: - // OR $app['ocs_id'] == $remote['ocs_id'] - ) { - - unset( $remoteApps[$key]); - - } - - } - - } - - $combinedApps = array_merge( $appList, $remoteApps ); - -} else { - - $combinedApps = $appList; - -} function app_sort( $a, $b ) { -- 2.39.5