Exemplo n.º 1
0
function code_export()
{
    $fields_to_export = array('SystemName', 'StandardName', 'LongName', 'DBName', 'ShortName', 'MaximumLength', 'DataType', 'Precision', 'Searchable', 'Interpretation', 'Alignment', 'UseSeparator', 'EditMaskID', 'LookupName', 'MaxSelect', 'Units', 'Index', 'Minimum', 'Maximum', 'Default', 'Required', 'SearchHelpID', 'Unique', 'MetadataEntryID', 'ModTimeStamp', 'ForeignKeyName', 'ForeignField', 'InKeyIndex');
    if ($_SESSION['logged_in'] != "yes") {
        echo "Not logged in.";
        exit;
    }
    // set things up
    $rets = new phRETS();
    $rets->AddHeader("Accept", "*/*");
    $rets->AddHeader("RETS-Version", "RETS/{$_SESSION['rets_version']}");
    $rets->AddHeader("User-Agent", $_SESSION['user_agent']);
    $rets->SetParam("compression_enabled", true);
    if ($_SESSION['force_basic'] == "true") {
        $rets->SetParam("force_basic_authentication", true);
    }
    // make first connection
    $connect = $rets->Connect($_SESSION['login_url'], $_SESSION['username'], $_SESSION['password'], $_SESSION['ua_pwd']);
    if (!$connect) {
        $error_details = $rets->Error();
        $error_text = strip_tags($error_details['text']);
        $error_type = strtoupper($error_details['type']);
        show_error_page("<center><span style='color:red;font-weight:bold;'>{$error_type} ({$error_details['code']}) {$error_text}</span></center>");
    }
    $table = $rets->GetMetadataTable($_REQUEST['r_resource'], $_REQUEST['r_class']);
    $csv = fopen('php://temp/maxmemory:' . 5 * 1024 * 1024, 'r+');
    $output_list = array();
    foreach ($fields_to_export as $fi) {
        $output_list[] = $fi;
    }
    fputcsv($csv, $output_list);
    foreach ($table as $field) {
        $output_field = array();
        foreach ($fields_to_export as $fi) {
            if (isset($field[$fi])) {
                $output_field[$fi] = $field[$fi];
            }
        }
        fputcsv($csv, $output_field);
    }
    rewind($csv);
    $output = stream_get_contents($csv);
    $filename = strtolower("rets-metadata-{$_REQUEST['r_resource']}-{$_REQUEST['r_class']}.csv");
    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"{$filename}\"");
    echo $output;
}