boinc/doc/poll.inc

179 lines
4.9 KiB
PHP

<?php
// independent of any particular poll
function list_item2($x, $y) {
global $light_blue;
echo "
<tr>
<td width=50% bgcolor=$light_blue valign=top >$x</td>
<td colspan=8>$y</td>
</tr>
";
}
function boxes($options, $disabled) {
$x = "<font size=-2>[check all that apply]</font><br>\n";
foreach ($options as $name => $text) {
$x .= "<input type=checkbox $disabled name=$name> $text<br>\n";
}
return $x;
}
function radio($radio_name, $options, $disabled) {
$x = "";
foreach ($options as $name => $text) {
$x .= "<input type=radio $disabled name=$radio_name value=$name> $text<br>\n";
}
return $x;
}
function show_choice($choice, $outer_radio) {
$rname = $choice["rname"];
$text = $choice["text"];
$radio_name = $choice["radio_name"];
$x = "";
if ($rname) {
$disabled = "disabled";
$x .= "<input onclick=\"$rname()\" type=radio name=$outer_radio value=$rname >";
}
$x .= $text;
if ($radio_name) {
$y = radio($radio_name, $choice["options"], $disabled);
} else {
$y = boxes($choice["options"], $disabled);
$other_name = $choice['other_name'];
$y .= "Other: <input $disabled size=30 name=$other_name>";
}
list_item2($x, $y);
}
function show_choices($choices, $outer_radio) {
foreach ($choices as $choice) {
show_choice($choice, $outer_radio);
}
}
function generate_functions($choices) {
echo "<script>\n";
echo "function disable_all() {\n";
foreach ($choices as $choice) {
$radio_name = $choice["radio_name"];
if ($radio_name) {
$options = $choice["options"];
$i = 0;
foreach ($options as $name => $text) {
echo "document.forms.blah.".$radio_name."[".$i."].disabled=true;\n";
$i++;
}
} else {
$options = $choice["options"];
foreach ($options as $name => $text) {
echo "document.forms.blah.$name.disabled=true;\n";
}
$other_name = $choice['other_name'];
echo "document.forms.blah.$other_name.disabled=true;\n";
}
}
echo "}\n";
foreach ($choices as $choice) {
$rname = $choice["rname"];
echo "function $rname() {\n";
echo "disable_all();\n";
$radio_name = $choice["radio_name"];
if ($radio_name) {
$options = $choice["options"];
$i = 0;
foreach ($options as $name => $text) {
echo "document.forms.blah.".$radio_name."[".$i."].disabled=false;\n";
$i++;
}
} else {
$options = $choice["options"];
foreach ($options as $name => $text) {
echo "document.forms.blah.$name.disabled=false;\n";
}
$other_name = $choice['other_name'];
echo "document.forms.blah.$other_name.disabled=false;\n";
}
echo "}\n";
}
echo "</script>\n";
}
function new_response($uid, $xml) {
$now = time();
return mysql_query("insert into response (uid, create_time, update_time, xml) values ('$uid', $now, $now, '$xml')");
}
function update_response($uid, $xml) {
$now = time();
return mysql_query("update response set update_time=$now, xml='$xml' where uid='$uid'");
}
function select_response($uid) {
$result = mysql_query("select * from response where uid='$uid'");
$response = mysql_fetch_object($result);
mysql_free_result($result);
return $response;
}
function get_str($name) {
if (isset($_GET[$name])) {
$x = $_GET[$name];
$x = trim($x);
return mysql_real_escape_string($x);
}
return null;
}
function parse_form_choice($x, $choice) {
$radio_name= $choice["radio_name"];
if ($radio_name) {
$x[$radio_name] = get_str($radio_name);
} else {
$options = $choice["options"];
foreach ($options as $name=>$text) {
$x[$name] = get_str($name);
}
$other_name = $choice['other_name'];
$x[$other_name] = get_str($other_name);
}
return $x;
}
function parse_form_choices($x, $choices) {
foreach ($choices as $choice) {
$x = parse_form_choice($x, $choice);
}
return $x;
}
function gen_xml_choice($x, $choice) {
$xml = "";
$radio_name= $choice["radio_name"];
if ($radio_name) {
$val = $x[$radio_name];
$xml .= "<$radio_name>$val</$radio_name>\n";
} else {
$options = $choice["options"];
foreach ($options as $name=>$text) {
$val = $x[$name];
$xml .= "<$name>$val</$name>\n";
}
$other_name = $choice['other_name'];
$text = $x[$other_name];
$xml .= "<$other_name>$text</$other_name>\n";
}
return $xml;
}
function gen_xml_choices($x, $choices) {
foreach ($choices as $choice) {
$xml .= gen_xml_choice($x, $choice);
}
return $xml;
}
?>