b3c07fdc |
1 | <?php |
2 | |
3 | /** |
4 | * select.tpl |
5 | * |
6 | * Template for constructing a select input tag. |
7 | * |
8 | * The following variables are available in this template: |
42b7c9d4 |
9 | * string $name The name of the select input |
10 | * array $aValues An associative array corresponding to each |
11 | * select option where keys must be used as |
12 | * the option value and the values must be used |
13 | * as the option text |
14 | * boolean $bUsekeys When FALSE, the value of each option should |
15 | * be the same as the option text instead of |
16 | * using the array key for the option value |
17 | * boolean $multiple When TRUE, a multiple select list should be |
18 | * shown. |
19 | * array $default An array of option values that should be |
20 | * selected by default (only will contain one |
21 | * array element unless this is a multiple select |
22 | * list) |
23 | * array $aAttribs Any extra attributes: an associative array, where |
24 | * keys are attribute names, and values (which are |
25 | * optional and might be null) should be placed |
26 | * in double quotes as attribute values (optional; |
27 | * may not be present) |
b3c07fdc |
28 | * |
42b7c9d4 |
29 | * @copyright © 1999-2008 The SquirrelMail Project Team |
b3c07fdc |
30 | * @license http://opensource.org/licenses/gpl-license.php GNU Public License |
31 | * @version $Id$ |
32 | * @package squirrelmail |
33 | * @subpackage templates |
34 | */ |
35 | |
36 | |
37 | // retrieve the template vars |
38 | // |
39 | extract($t); |
40 | |
41 | |
42 | if (isset($aAttribs['id'])) { |
43 | $label_open = '<label for="' . $aAttribs['id'] . '">'; |
44 | $label_close = '</label>'; |
45 | } else { |
46 | $label_open = ''; |
47 | $label_close = ''; |
48 | } |
49 | |
50 | |
42b7c9d4 |
51 | echo '<select name="' . $name . ($multiple ? '[]" multiple="multiple" size="3"' : '"'); |
b3c07fdc |
52 | foreach ($aAttribs as $key => $value) { |
53 | echo ' ' . $key . (is_null($value) ? '' : '="' . $value . '"'); |
54 | } |
55 | echo ">\n"; |
56 | |
57 | |
58 | foreach ($aValues as $key => $value) { |
59 | if (!$bUsekeys) $key = $value; |
42b7c9d4 |
60 | echo '<option value="' . $key . '"'; |
61 | |
62 | // multiple select lists have possibly more than one default selection |
63 | // |
64 | if ($multiple) { |
65 | foreach ($default as $def) { |
07190b29 |
66 | if ((string)$def == (string)$key) { |
42b7c9d4 |
67 | echo ' selected="selected"'; |
68 | break; |
69 | } |
70 | } |
71 | } |
72 | |
73 | // single select widget only needs to check for one default value |
74 | // (we could use the same code above, but we do this here to increase |
75 | // efficency and performance) |
76 | // |
07190b29 |
77 | else if ((string)$default[0] == (string)$key) |
42b7c9d4 |
78 | echo ' selected="selected"'; |
79 | |
80 | echo '>' . $label_open . $value . $label_close . "</option>\n"; |
b3c07fdc |
81 | } |
82 | echo "</select>\n"; |
83 | |
84 | |