コード例 #1
0
/**
 *	  Factory method which creates a FRSRelease from an release id
 *
 *	  @param int	  The release id
 *	  @param array	The result array, if it's passed in
 *	  @return object  FRSRelease object
 */
function &frsrelease_get_object($release_id, $data = false)
{
    global $FRSRELEASE_OBJ;
    if (!isset($FRSRELEASE_OBJ['_' . $release_id . '_'])) {
        if ($data) {
            //the db result handle was passed in
        } else {
            $res = db_query("SELECT * FROM frs_release WHERE\n\t\t\trelease_id='{$release_id}'");
            if (db_numrows($res) < 1) {
                $FRSRELEASE_OBJ['_' . $release_id . '_'] = false;
                return false;
            }
            $data =& db_fetch_array($res);
        }
        $FRSPackage =& frspackage_get_object($data['package_id']);
        $FRSRELEASE_OBJ['_' . $release_id . '_'] = new FRSRelease($FRSPackage, $data['release_id'], $data);
    }
    return $FRSRELEASE_OBJ['_' . $release_id . '_'];
}
コード例 #2
0
ファイル: frs.php プロジェクト: neymanna/fusionforge
function addFile($session_ser, $group_id, $package_id, $release_id, $name, $base64_contents, $type_id, $processor_id, $release_time)
{
    continue_session($session_ser);
    $grp =& group_get_object($group_id);
    if (!$grp || !is_object($grp)) {
        return new soap_fault('', 'addFile', 'Could Not Get Group', 'Could Not Get Group');
    } elseif ($grp->isError()) {
        return new soap_fault('', 'addFile', $grp->getErrorMessage(), $grp->getErrorMessage());
    }
    $frsp =& frspackage_get_object($package_id);
    if (!$frsp || !is_object($frsp)) {
        return new soap_fault('', 'addFile', 'Could Not Get Package', 'Could Not Get Package');
    } else {
        if ($frsp->isError()) {
            return new soap_fault('', 'addFile', $frsp->getErrorMessage(), $frsp->getErrorMessage());
        }
    }
    $frsr =& frsrelease_get_object($release_id);
    if (!$frsr || !is_object($frsr)) {
        return new soap_fault('', 'addFile', 'Could Not Get Release', 'Could Not Get Release');
    } else {
        if ($frsr->isError()) {
            return new soap_fault('', 'addFile', $frsr->getErrorMessage(), $frsr->getErrorMessage());
        }
    }
    $frsf = new FRSFile($frsr);
    if (!$frsf || !is_object($frsf)) {
        return new soap_fault('', 'addFile', 'Could Not Get File', 'Could Not Get File');
    }
    $tmpname = tempnam("/tmp", "gforge_cli_frs");
    $fh = fopen($tmpname, "wb");
    if (!$fh) {
        return new soap_fault('', 'addFile', 'Could not create temporary file in directory /tmp');
    }
    fwrite($fh, base64_decode($base64_contents));
    fclose($fh);
    if (!$frsf->create($name, $tmpname, $type_id, $processor_id, $release_time)) {
        @unlink($tmpname);
        return new soap_fault('', 'addFile', $frsf->getErrorMessage(), $frsf->getErrorMessage());
    } else {
        @unlink($tmpname);
        return $frsf->getID();
    }
}