Formatting
[memberdb.git] / include / html.php
1 <?php
2
3 function html_escape($val)
4 {
5     return htmlentities($val, ENT_COMPAT, 'UTF-8');
6 }
7
8 function html_hidden_field($name, $value = '', $id = null)
9 {
10     if (!isset($id)) {
11         $id = $name;
12     }
13     if (is_array($value)) {
14         if (isset($value[$name])) {
15             $value = $value[$name];
16         } else {
17             $value = '';
18         }
19     }
20     return sprintf('<input type="hidden" name="%1$s" id="%3$s" value="%2$s"/>', $name, html_escape($value), $id) . "\n";
21 }
22
23 function html_text_field($label, $name, $value = '', $readonly = false, $id = null)
24 {
25     if (!isset($id)) {
26         $id = $name;
27     }
28     if (is_array($value)) {
29         if (isset($value[$name])) {
30             $value = $value[$name];
31         } else {
32             $value = '';
33         }
34     }
35     if ($readonly) {
36         $readonly = ' readonly="readonly"';
37     } else {
38         $readonly = '';
39     }
40     return sprintf('<label for="%4$s">%1$s:</label><input type="text" name="%2$s" id="%4$s" value="%3$s"%5$s/>',
41             html_escape($label), $name, html_escape($value), $id, $readonly) . "\n";
42 }
43
44 function html_money_field($label, $name, $value = '', $readonly = false, $id = null)
45 {
46     if (!isset($id)) {
47         $id = $name;
48     }
49     if (is_array($value)) {
50         if (isset($value[$name])) {
51             $value = $value[$name];
52         } else {
53             $value = '';
54         }
55     }
56     $value = str_replace(array('.', '€'), array(',', ''), $value);
57     if ($readonly) {
58         $readonly = ' readonly="readonly"';
59     } else {
60         $readonly = '';
61     }
62     return sprintf('<label for="%4$s">%1$s:</label><input type="text" name="%2$s" id="%4$s" value="%3$s"%5$s/>',
63             html_escape($label), $name, html_escape($value), $id, $readonly) . "\n";
64 }
65
66 function html_password_field($label, $name, $id = null)
67 {
68     if (!isset($id)) {
69         $id = $name;
70     }
71     return sprintf('<label for="%3$s">%1$s:</label><input type="password" name="%2$s" id="%3$s"/>', html_escape($label),
72             $name, $id) . "\n";
73 }
74
75 function html_checkbox($label, $name, $checked, $value, $readonly = false, $id = null)
76 {
77     if (!isset($id)) {
78         $id = $name;
79     }
80     if (is_array($checked)) {
81         if (isset($checked[$name])) {
82             $checked = $checked[$name];
83         } else {
84             $checked = false;
85         }
86     }
87     if ($checked) {
88         $checked = ' checked="checked"';
89     } else {
90         $checked = '';
91     }
92     if ($readonly) {
93         $readonly = ' disabled="disabled"';
94     } else {
95         $readonly = '';
96     }
97     return sprintf('<div class="checkbox"><input type="checkbox" name="%2$s" id="%4$s" value="%3$s"%5$s%6$s/><label for="%4$s">%1$s</label></div>',
98             html_escape($label), $name, html_escape($value), $id, $checked, $readonly) . "\n";
99 }
100
101 function html_list_box($label, $name, $list, $selected, $readonly = false, $id = null, $tag_params = '')
102 {
103     if (!isset($id)) {
104         $id = $name;
105     }
106     if (!empty($tag_params)) {
107         $tag_params = ' ' . $tag_params;
108     }
109     if (is_array($selected)) {
110         if (isset($selected[$name])) {
111             $selected = $selected[$name];
112         } else {
113             $selected = '';
114         }
115     }
116     if ($readonly) {
117         return html_text_field($label, $name, isset($list[$selected]) ? $list[$selected] : '-', true);
118     }
119
120     $ret = sprintf('<label for="%2$s">%1$s:</label>', html_escape($label), $id) . "\n";
121     $ret .= sprintf('<select id="%1$s" name="%1$s"%2$s>', html_escape($name), $tag_params);
122     foreach ($list as $key => $value) {
123         if ($key == $selected) {
124             $ret .= sprintf('<option value="%1$s" selected="selected">%2$s</option>', html_escape($key),
125                 str_replace(' ', '&nbsp;', html_escape($value)));
126         } else {
127             $ret .= sprintf('<option value="%1$s">%2$s</option>', html_escape($key),
128                 str_replace(' ', '&nbsp;', html_escape($value)));
129         }
130     }
131     $ret .= '</select>';
132     return $ret;
133 }