Browse Source

Move to OC_App

tags/v5.0.0alpha1
Lukas Reschke 11 years ago
parent
commit
30274ee33e
2 changed files with 66 additions and 89 deletions
  1. 66
    0
      lib/app.php
  2. 0
    89
      settings/apps.php

+ 66
- 0
lib/app.php View File

@@ -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 <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
* @return array, multi-dimensional array of apps. Keys: id, name, type, typename, personid, license, detailpage, preview, changed, description

+ 0
- 89
settings/apps.php View File

@@ -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 <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 ) {


Loading…
Cancel
Save