function get_available_addons($include_cloud = false) { $addons = array(); $addon_directories = $this->get_addon_directories(); foreach ($addon_directories as $addon_dir) { $list_dir = @opendir($addon_dir[0]); if ($list_dir) { while (($f = readdir($list_dir)) !== false) { // Skip common files in each directory if ($this->should_skip_file($f)) { continue; } $addon_info = $this->get_addon_information($addon_dir[0] . '/' . $f, $addon_dir[1] . '/' . $f); if ($addon_info) { $addons[$addon_info->name] = $addon_info; } } closedir($list_dir); } } if ($include_cloud) { if (false === ($cloud_addons = get_transient('_wptouch_available_cloud_addons'))) { $cloud_addons = wptouch_get_available_cloud_addons(); set_transient('_wptouch_available_cloud_addons', $cloud_addons, WPTOUCH_THEME_ADDON_TRANSIENT_TIME); } $to_add = array(); if (is_array($cloud_addons) && count($cloud_addons)) { foreach ($cloud_addons as $cloud_addon) { if (!isset($addons[$cloud_addon['name']])) { $this_addon = new stdClass(); $this_addon->name = $cloud_addon['name']; $this_addon->description = $cloud_addon['description']; $this_addon->author = $cloud_addon['author']; $this_addon->version = $cloud_addon['version']; $this_addon->screenshot = $cloud_addon['screenshot']; $this_addon->base = $cloud_addon['base']; $this_addon->location = 'cloud'; if (isset($cloud_addon['upgrade_url'])) { $this_addon->download_url = $cloud_addon['upgrade_url']; } if (isset($cloud_addon['buy_url'])) { $this_addon->buy_url = $cloud_addon['buy_url']; } if (isset($cloud_addon['info_url'])) { $this_addon->info_url = $cloud_addon['info_url']; } $to_add[$this_addon->name] = $this_addon; } else { $this_addon = $addons[$cloud_addon['name']]; $this_addon->cloud_version = $cloud_addon['version']; $this_addon->upgrade_available = $cloud_addon['version'] != $this_addon->version; if (isset($cloud_addon['upgrade_url'])) { $this_addon->download_url = $cloud_addon['upgrade_url']; } $addons[$cloud_addon['name']] = $this_addon; } } $addons = array_merge($addons, $to_add); } } return $addons; }
function get_available_addons($include_cloud = false) { $addons = array(); $addon_directories = $this->get_addon_directories(); foreach ($addon_directories as $addon_dir) { $list_dir = @opendir($addon_dir[0]); if ($list_dir) { while (($f = readdir($list_dir)) !== false) { // Skip common files in each directory if ($this->should_skip_file($f)) { continue; } $addon_info = $this->get_addon_information($addon_dir[0] . DIRECTORY_SEPARATOR . $f, $addon_dir[1] . DIRECTORY_SEPARATOR . $f); if ($addon_info) { $addons[$addon_info->name] = $addon_info; } } closedir($list_dir); } } if ($include_cloud) { if (defined('WPTOUCH_FORCE_CLOUD_REFRESH')) { delete_site_transient('_wptouch_available_cloud_addons'); } if (false === ($cloud_addons = get_site_transient('_wptouch_available_cloud_addons'))) { $cloud_addons = wptouch_get_available_cloud_addons(); set_site_transient('_wptouch_available_cloud_addons', $cloud_addons, WPTOUCH_THEME_ADDON_TRANSIENT_TIME); } $to_add = array(); if (is_array($cloud_addons) && count($cloud_addons)) { foreach ($cloud_addons as $cloud_addon) { if (!isset($addons[$cloud_addon['name']])) { $this_addon = new stdClass(); $this_addon->name = $cloud_addon['name']; $this_addon->description = $cloud_addon['description']; $this_addon->author = $cloud_addon['author']; $this_addon->version = $cloud_addon['version']; $this_addon->screenshot = $cloud_addon['screenshot']; $this_addon->base = $cloud_addon['base']; $this_addon->location = 'cloud'; $this_addon->long_description = ''; $this_addon->changelog = ''; if (isset($cloud_addon['changelog'])) { $this_addon->changelog = $cloud_addon['changelog']; } if (isset($cloud_addon['long_description'])) { $this_addon->long_description = $cloud_addon['long_description']; } if (isset($cloud_addon['upgrade_url'])) { $this_addon->download_url = $cloud_addon['upgrade_url']; } if (isset($cloud_addon['buy_url'])) { $this_addon->buy_url = $cloud_addon['buy_url']; } if (isset($cloud_addon['info_url'])) { $this_addon->info_url = $cloud_addon['info_url']; } $to_add[$this_addon->name] = $this_addon; } else { $this_addon = $addons[$cloud_addon['name']]; $this_addon->cloud_version = $cloud_addon['version']; $this_addon->extension_upgrade_available = version_compare($cloud_addon['version'], $this_addon->version, '>'); if (isset($cloud_addon['changelog'])) { $this_addon->changelog = $cloud_addon['changelog']; } else { $this_addon->changelog = ''; } if ($this_addon->long_description == '' && isset($cloud_addon['long_description'])) { $this_addon->long_description = $cloud_addon['long_description']; } if (isset($cloud_addon['upgrade_url'])) { $this_addon->download_url = $cloud_addon['upgrade_url']; } if ($this_addon->extension_upgrade_available) { $this->extension_upgrades_available = true; } $addons[$cloud_addon['name']] = $this_addon; } } $addons = array_merge($addons, $to_add); } } uksort($addons, 'strnatcasecmp'); return $addons; }