/**
  * 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;
 }