ff86ec3e79e050b4fce3e5efaf06221398f6c06d
[plewww.git] / planetlab / includes / plc_forms.php
1 <?php
2
3 // $Id$
4
5 require_once 'plc_functions.php';
6
7 // the rationale behind having function names with _text is that
8 // the first functions that we had were actually printing the stuff instead of returning it
9 // so basically the foo (...) function should do ``print (foo_text(...))''
10
11 // options unused so far
12 function plc_form_start ($full_url, $values, $options=array()) {
13   if ( ! $values ) $values = array();
14   // extract var=value settings from url if any
15   $split=split_url($full_url);
16   $url=$split['url'];
17   $url_values=$split['values'];
18   if ( $url_values ) $values=array_merge($values,$url_values);
19   $method = array_key_exists('method',$options) ? $options['method'] : 'POST';
20   print "<form method=$method action='$url' enctype='multipart/form-data'>";
21   if ($values) foreach ($values as $key=>$value) {
22     print plc_form_hidden_text($key,$value);
23   }
24 }
25
26 function plc_form_end($options=array()) {
27   print "</form>";
28 }
29
30 function plc_form_hidden_text ($key,$value) {
31   return "<input type=hidden name='$key' value='$value'/>";  
32 }
33 function plc_form_hidden ($key,$value) { print plc_form_hidden_text($key,$value); }
34   
35 function plc_form_checkbox_text ($name,$value,$selected=false) {
36   if ($selected) $xtra=" selected=selected";
37   return "<input type=checkbox name='$name' value='$value'$xtra/>";
38 }
39
40 function plc_form_submit_text ($name,$display) {
41   return "<input type=submit name='$name' value='$display'/>";
42 }
43 function plc_form_submit ($name, $display) { print plc_form_submit_text($name,$display); }
44   
45 function plc_form_file_text ($name,$size) {
46   return "<input type=file name='$name' size=$size/>";
47 }
48
49 function plc_form_label_text ($name,$display) {
50   return "<label for=$name>$display </label>";
51 }
52
53 function plc_form_text_text ($name,$value,$size) {
54   return "<input type=text name='$name' size=$size value='$value'>";
55 }
56 function plc_form_textarea_text ($name,$value,$cols,$rows) {
57   return "<textarea name='$name' cols=$cols rows=$rows>$value</textarea>";
58 }
59  
60 function plc_form_select_text ($name,$values,$label="") {
61   $encoded=htmlentities($label,ENT_QUOTES);
62   $selector="";
63   $selector.="<select name='$name'>";
64   if ($label) 
65     $selector.="<option value=''>$encoded</option>";
66   foreach ($values as $chunk) {
67     $display=htmlentities($chunk['display'],ENT_QUOTES);
68     $value=$chunk['value'];
69     $selector .= "<option value='$value'";
70     if ($chunk['selected']) $selector .= " selected=selected";
71     $selector .= ">$display</option>\n";
72   }
73   $selector .= "</select>";
74   return $selector;
75 }
76
77 function plc_form_simple_button ($full_url,$text,$method="POST") {
78   $split=split_url($full_url);
79   $url=$split['url'];
80   $values=$split['values'];
81   $button=plc_form_submit_text("anonymous",$text);
82   if ($values) foreach ($values as $key=>$value) 
83       $button .= plc_form_hidden_text($key,$value);
84   return "<form method=$method action=$url>$button</form>";
85 }
86
87 ?>