$x $y "; } function version_url($v) { global $url_base; $file = $v["file"]; if (is_dev($v)) { return "http://boinc.berkeley.edu/dl/$file"; } else { return $url_base.$file; } } function show_detail($v) { $num = $v["num"]; $file = $v["file"]; $status = $v["status"]; $path = "dl/$file"; $url = version_url($v); $dlink = "$file"; $s = number_format(filesize($path)/1000000, 2); $date = $v["date"]; $type = type_text($v["type"]); list_start(); dl_item("File (click to download)", "$dlink ($s MB)"); dl_item("Version number", $num); dl_item("Release date", $date); list_end(); } function show_version_xml($v, $p) { $name = $p["name"]; $dbname = $p["dbname"]; $num = $v["num"]; $file = $v["file"]; $status = $v["status"]; $path = "dl/$file"; $url = version_url($v); $dlink = "$file"; $s = number_format(filesize($path)/1000000, 2); $date = $v["date"]; $type = type_text($v["type"]); echo " $name $dbname $status $date $num $url $file $s $type "; } function show_version($pname, $i, $v) { $num = $v["num"]; $file = $v["file"]; $status = $v["status"]; if (is_dev($v)) { $status = $status."
(MAY BE UNSTABLE - USE ONLY FOR TESTING) "; } $path = "dl/$file"; $s = number_format(filesize($path)/1000000, 2); $date = $v["date"]; $type = $v["type"]; $type_text = type_text($type); $url = version_url($v); echo " $num $status Download ($s MB) $date "; } function show_platform($short_name, $p, $dev) { global $min_version; global $max_version; $long_name = $p["name"]; $description = $p["description"]; if ($p["url"]) { $url = $p["url"]; $long_name .= " details"; } list_bar($long_name, $description); foreach ($p["versions"] as $i=>$v) { if ($min_version && version_compare($v['num'], $min_version, "<")) continue; if ($max_version && version_compare($v['num'], $max_version, ">")) continue; if (!$dev && is_dev($v)) continue; show_version($short_name, $i, $v); } } function show_platform_xml($short_name, $p, $dev) { foreach ($p["versions"] as $i=>$v) { if (!$dev && is_dev($v)) continue; // show only those builds that have been around for over // two weeks. Gives us time to address any showstoppers // found by the early adopters if (!$dev && ((time() - strtotime($v["date"])) >= 86400*14)) continue; show_version_xml($v, $p); } } // show details on a version if URL indicates // if ($pname && $version) { $p = $platforms[$pname]; if (!$p) { error_page("platform not found"); } $long_name = $p["name"]; $va = $p["versions"]; foreach ($va as $v) { if ($v['num'] == $version && $type_name==$v['type']) { page_head("BOINC version $version for $long_name"); show_detail($v); page_tail(); exit(); } } error_page( "version not found\n"); } if ($xml) { header('Content-type: text/xml'); echo "\n \n "; foreach($platforms as $short_name=>$p) { show_platform_xml($short_name, $p, $dev); } echo " \n "; } else { if ($pname) { $p = $platforms[$pname]; $name = $p['name']; page_head("Download BOINC client software for $name"); echo ""; show_platform($pname, $p, $dev); list_end(); } else { page_head("Download BOINC client software"); echo "
"; foreach($platforms as $short_name=>$p) { show_platform($short_name, $p, $dev); } list_end(); echo "

Other platforms

If your computer is not of one of these types, you can

Linux info

"; show_linux_info(); } echo "

Customizing this page

The information on this page can be restricted by platform and/or version number, or presented in XML format. "; page_tail(); } //?>