function printVistrailTag($input, $params)
{
    global $PATH_TO_IMAGES, $WEB_PATH_TO_IMAGES, $URL_TO_GRAPHS, $PATH_TO_GRAPHS, $VT_HOST, $VT_PORT, $USE_LOCAL_VISTRAILS_SERVER, $USE_VISTRAILS_XML_RPC_SERVER, $PATH_TO_VISTRAILS, $URL_TO_DOWNLOAD, $DB_HOST, $DB_NAME, $DB_PORT;
    $host = $DB_HOST;
    $dbname = $DB_NAME;
    $username = "******";
    $vtid = "";
    $version = "";
    $port = $DB_PORT;
    $version_tag = "";
    $execute = "False";
    $showspreadsheetonly = "False";
    $force_build = 'False';
    $embedWorkflow = 'False';
    $includeFullTree = 'False';
    $forceDB = 'False';
    $showTree = 'False';
    $showWorkflow = 'False';
    foreach ($params as $key => $value) {
        if ($key == "vtid") {
            $vtid = $value;
        }
        if ($key == "version") {
            $version = $value;
        }
        if ($key == "host") {
            $host = $value;
        }
        if ($key == "db") {
            $dbname = $value;
        }
        if ($key == "port") {
            $port = $value;
        }
        if ($key == "tag") {
            $version_tag = $value;
            if ($version_tag != '') {
                $request = xmlrpc_encode_request('get_tag_version', array($host, $port, $dbname, $vtid, $version_tag));
                $response = do_call($VT_HOST, $VT_PORT, $request);
                $version = get_version_from_response($response);
                //echo $version;
            }
        }
        if ($key == "execute") {
            $execute = $value;
        }
        if ($key == "showspreadsheetonly") {
            $showspreadsheetonly = $value;
        }
        if ($key == "buildalways") {
            $force_build = $value;
        }
        if ($key == 'embedworkflow') {
            $embedWorkflow = $value;
        }
        if ($key == 'includefulltree') {
            $includeFullTree = $value;
        }
        if ($key == 'forcedb') {
            $forceDB = $value;
        }
        if ($key == 'showworkflow') {
            $showWorkflow = $value;
        }
        if ($key == 'showtree') {
            $showTree = $value;
        }
    }
    $linkParams = "getvt=" . $vtid . "&version=" . $version . "&db=" . $dbname . "&host=" . $host . "&port=" . $port . "&tag=" . $version_tag . "&execute=" . $execute . "&showspreadsheetonly=" . $showspreadsheetonly . "&embedWorkflow=" . $embedWorkflow . "&includeFullTree=" . $includeFullTree . "&forceDB=" . $forceDB;
    if (strcasecmp($showTree, 'True') == 0) {
        $filename = md5($host . '_' . $dbname . '_' . $port . '_' . $vtid);
        $filename = 'vistrails/' . $filename . ".png";
        //this request is cached only on the server side
        $request = xmlrpc_encode_request("get_vt_graph_png", array($host, $port, $dbname, $vtid, $USE_LOCAL_VISTRAILS_SERVER));
        $response = do_call($VT_HOST, $VT_PORT, $request);
        $result = clean_up($response, $filename);
        list($width, $height, $type, $attr) = getimagesize($PATH_TO_GRAPHS . $result);
        if ($width > 400) {
            $width = 400;
        }
        $res = '<a href="' . $URL_TO_DOWNLOAD . '?' . $linkParams . '">';
        $res = $res . '<img src="' . $URL_TO_GRAPHS . $result . "\" alt=\"vt_id:{$vtid}\" width=\"{$width}\"/>";
        $res = $res . '</a>';
        return $res;
    } elseif (strcasecmp($showWorkflow, 'True') == 0) {
        $filename = md5($host . '_' . $dbname . '_' . $port . '_' . $vtid . '_' . $version);
        $filename = 'workflows/' . $filename . ".png";
        $fullpath = $PATH_TO_GRAPHS . $filename;
        $cached = file_exists($fullpath);
        if ($USE_LOCAL_VISTRAILS_SERVER or (!$cached or strcasecmp($force_build, 'True') == 0)) {
            $request = xmlrpc_encode_request("get_wf_graph_png", array($host, $port, $dbname, $vtid, $version, $USE_LOCAL_VISTRAILS_SERVER));
            $response = do_call($VT_HOST, $VT_PORT, $request);
            $result = clean_up($response, $filename);
        } else {
            $result = $filename;
        }
        list($width, $height, $type, $attr) = getimagesize($PATH_TO_GRAPHS . $result);
        if ($width > 400) {
            $width = 400;
        }
        $res = '<a href="' . $URL_TO_DOWNLOAD . '?' . $linkParams . '">';
        $res = $res . '<img src="' . $URL_TO_GRAPHS . $result . "\" alt=\"vt_id:{$vtid} version:{$version}\" width=\"{$width}\"/>";
        $res = $res . '</a>';
        return $res;
    } else {
        $result = '';
        $destdir = $PATH_TO_IMAGES;
        $destversion = $host . '_' . $dbname . '_' . $port . '_' . $vtid . '_' . $version;
        $destversion = md5($destversion);
        $destdir = $destdir . $destversion;
        $build_always_bool = False;
        if (strcasecmp($force_build, 'True') == 0) {
            $build_always_bool = True;
        }
        if (!path_exists_and_not_empty($destdir) or strcasecmp($force_build, 'True') == 0) {
            if (!file_exists($destdir)) {
                mkdir($destdir, 0770);
                chmod($destdir, 0770);
            }
            if (!$USE_VISTRAILS_XML_RPC_SERVER) {
                chdir($PATH_TO_VISTRAILS);
                $setVariables = 'export PATH=$PATH:/usr/bin/X11;export HOME=/var/lib/wwwrun; export TEMP=/tmp; export DISPLAY=localhost:1.0; export LD_LIBRARY_PATH=/usr/local/lib;';
                $mainCommand = 'python vistrails/run.py -b -e ' . $destdir . ' -t ' . host . ' -r ' . $port . ' -f ' . $dbname . ' -u ' . username . ' "' . $vtid . ':' . $version . '"';
                $result = exec($setVariables . $mainCommand . ' 2>&1', $output, $result);
            } else {
                $request = xmlrpc_encode_request('run_from_db', array($host, $port, $dbname, $vtid, $destdir, $version, False, '', $build_always_bool, '', $USE_LOCAL_VISTRAILS_SERVER));
                $response = do_call($VT_HOST, $VT_PORT, $request);
                $result = multiple_clean_up($response, $destdir);
            }
        }
    }
    $files = scandir($destdir);
    $n = sizeof($files);
    if ($n > 2) {
        $res = '<a href="' . $URL_TO_DOWNLOAD . '?' . $linkParams . '">';
        foreach ($files as $filename) {
            if ($filename != '.' and $filename != '..') {
                list($width, $height, $type, $attr) = getimagesize($destdir . '/' . $filename);
                if ($width > 350) {
                    $width = 350;
                }
                $res = $res . '<img src="' . $WEB_PATH_TO_IMAGES . $destversion . '/' . $filename . "\" alt=\"vt_id:{$vtid} version:{$version}\" width=\"{$width}\"/>";
            }
        }
        $res = $res . '</a>';
    } else {
        $res = "ERROR: Vistrails didn't produce any image.\n" . "This is the output: \n" . $result;
    }
    return $res;
}
Exemple #2
0
     } else {
         $result = $filename;
     }
     if ($pdf_bool == True) {
         $res = '<a href="' . $URL_TO_GRAPHS . $result . '">' . $result . '</a>';
     } else {
         $res = '<img src="' . $URL_TO_GRAPHS . $result . "\" alt=\"vt_id:{$vtid} version:{$version}\" />";
     }
     echo $res;
 } else {
     $destdir = $PATH_TO_IMAGES;
     $destversion = $host . '_' . $dbname . '_' . $port . '_' . $vtid . '_' . $version . $pdf_tag;
     $destversion = md5($destversion);
     $destdir = $destdir . $destversion;
     $result = '';
     if (!path_exists_and_not_empty($destdir) or strcasecmp($force_build, 'True') == 0) {
         if (!file_exists($destdir)) {
             mkdir($destdir);
             //,0770);
             chmod($destdir, 0770);
         }
         $request = xmlrpc_encode_request('run_from_db', array($host, $port, $dbname, $vtid, $destdir, $version, $pdf_bool, '', $build_always_bool, '', $USE_LOCAL_VISTRAILS_SERVER));
         $response = do_call($VT_HOST, $VT_PORT, $request);
         $result = multiple_clean_up($response, $destdir);
         //echo $result;
     }
     $files = scandir($destdir);
     $n = sizeof($files);
     if ($n > 2) {
         $res = '';
         foreach ($files as $filename) {