e67a2fd4407e7448a3a819908021208e8e3e9e58
[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   //  plc_debug('values',$values);
22   if ($values) foreach ($values as $key=>$value) {
23     print plc_form_hidden_text($key,$value);
24   }
25 }
26
27 function plc_form_end($options=array()) {
28   print "</form>";
29 }
30
31 function plc_form_hidden_text ($key,$value) {
32   return "<input type=hidden name='$key' value='$value'/>";  
33 }
34 function plc_form_hidden ($key,$value) { print plc_form_hidden_text($key,$value); }
35   
36 function plc_form_checkbox_text ($name,$value,$selected=false) {
37   if ($selected) $xtra=" selected=selected";
38   return "<input type=checkbox name='$name' value='$value'$xtra/>";
39 }
40
41 function plc_form_submit_text ($name,$display) {
42   return "<input type=submit name='$name' value='$display'/>";
43 }
44 function plc_form_submit ($name, $display) { print plc_form_submit_text($name,$display); }
45   
46 function plc_form_file_text ($name,$size) {
47   return "<input type=file name='$name' size=$size/>";
48 }
49
50 function plc_form_label_text ($name,$display) {
51   return "<label for=$name>$display </label>";
52 }
53
54 function plc_form_text_text ($name,$value,$size) {
55   return "<input type=text name='$name' size=$size value='$value'>";
56 }
57 function plc_form_textarea_text ($name,$value,$cols,$rows) {
58   return "<textarea name='$name' cols=$cols rows=$rows>$value</textarea>";
59 }
60  
61 function plc_form_select_text ($name,$values,$label="") {
62   $encoded=htmlentities($label,ENT_QUOTES);
63   $selector="";
64   $selector.="<select name='$name'>";
65   if ($label) 
66     $selector.="<option value=''>$encoded</option>";
67   foreach ($values as $chunk) {
68     $display=htmlentities($chunk['display'],ENT_QUOTES);
69     $value=$chunk['value'];
70     $selector .= "<option value='$value'";
71     if ($chunk['selected']) $selector .= " selected=selected";
72     $selector .= ">$display</option>\n";
73   }
74   $selector .= "</select>";
75   return $selector;
76 }
77
78 function plc_form_simple_button ($full_url,$text,$method="POST") {
79   $split=split_url($full_url);
80   $url=$split['url'];
81   $values=$split['values'];
82   $button=plc_form_submit_text("anonymous",$text);
83   if ($values) foreach ($values as $key=>$value) 
84       $button .= plc_form_hidden_text($key,$value);
85   return "<form method=$method action=$url>$button</form>";
86 }
87
88 ?>