Move to OC_App
This commit is contained in:
parent
a29f9f90ab
commit
30274ee33e
66
lib/app.php
66
lib/app.php
|
@ -588,6 +588,72 @@ class OC_App{
|
||||||
return $apps;
|
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 <ocs_id>[ID]</ocs_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
|
* @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
|
* @return array, multi-dimensional array of apps. Keys: id, name, type, typename, personid, license, detailpage, preview, changed, description
|
||||||
|
|
|
@ -29,95 +29,6 @@ OC_Util::addStyle( "settings", "settings" );
|
||||||
OC_Util::addScript( "settings", "apps" );
|
OC_Util::addScript( "settings", "apps" );
|
||||||
OC_App::setActiveNavigationEntry( "core_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 <ocs_id>[ID]</ocs_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 ) {
|
function app_sort( $a, $b ) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue