handles urls with settings
[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   $selector="";
63   $selector.="<select name='$name'>";
64   if ($label) 
65     $selector.="<option value=''>$label</option>";
66   foreach ($values as $chunk) {
67     $display=$chunk['display'];
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 ?>