/** * Check the SugarDepot for updates for the given type as passed in via POST * @param type the type to check for * @return array return an array of releases for each given installed object if an update is found */ function checkForUpdates() { $json = getJSONobj(); $type = ''; if (isset($_REQUEST['type'])) { $type = nl2br($_REQUEST['type']); } $pm = new PackageManager(); $updates = $pm->checkForUpdates(); $nodes = array(); $release_map = array(); if (!empty($updates)) { foreach ($updates as $update) { $update = PackageManager::fromNameValueList($update); $nodes[] = array('label' => $update['name'], 'description' => $update['description'], 'version' => $update['version'], 'build_number' => $update['build_number'], 'id' => $update['id'], 'type' => $update['type']); $release_map[$update['id']] = array('package_id' => $update['package_id'], 'category_id' => $update['category_id'], 'type' => $update['type']); } } //patches $filter = array(array('name' => 'type', 'value' => "'patch'")); $releases = $pm->getReleases('', '', $filter); if (!empty($releases['packages'])) { foreach ($releases['packages'] as $update) { $update = PackageManager::fromNameValueList($update); $nodes[] = array('label' => $update['name'], 'description' => $update['description'], 'version' => $update['version'], 'build_number' => $update['build_number'], 'id' => $update['id'], 'type' => $update['type']); $release_map[$update['id']] = array('package_id' => $update['package_id'], 'category_id' => $update['category_id'], 'type' => $update['type']); } } $_SESSION['ML_PATCHES'] = $release_map; echo 'result = ' . $json->encode(array('updates' => $nodes)); }
function createJavascriptPackageArray($releases) { $output = "var mti_data = ["; $count = count($releases); $index = 1; if (!empty($releases['packages'])) { foreach ($releases['packages'] as $release) { $release = PackageManager::fromNameValueList($release); $output .= "["; $output .= "'" . $release['description'] . "', '" . $release['version'] . "', '" . $release['build_number'] . "', '" . $release['id'] . "'"; $output .= "]"; if ($index < $count) { $output .= ","; } $index++; } } $output .= "]\n;"; return $output; }
function buildPackageXML($package, $releases = array()) { $xml = '<package>'; $xml .= '<package_id>' . $package['id'] . '</package_id>'; $xml .= '<name>' . $package['name'] . '</name>'; $xml .= '<description>' . $package['description'] . '</description>'; if (!empty($releases)) { $xml .= '<releases>'; foreach ($releases['packages'] as $release) { $myrelease = PackageManager::fromNameValueList($release); $xml .= '<release>'; $xml .= '<release_id>' . $myrelease['id'] . '</release_id>'; $xml .= '<version>' . $myrelease['version'] . '</version>'; $xml .= '<description>' . $myrelease['description'] . '</description>'; $xml .= '<package_id>' . $package['id'] . '</package_id>'; $xml .= '<category_id>' . $package['category_id'] . '</category_id>'; $xml .= '</release>'; } $xml .= '</releases>'; } $xml .= '</package>'; return $xml; }