diff options
author | Evan Winslow <evan.b.winslow@gmail.com> | 2010-10-17 10:51:18 +0000 |
---|---|---|
committer | Evan Winslow <evan.b.winslow@gmail.com> | 2010-10-17 10:51:18 +0000 |
commit | 419c4e01ba3a8b8a038cee32c1fce7d1883532c1 (patch) | |
tree | 8dfc8aade1b36c0214a630cb9d9bc2d441109702 /views/default/input/checkboxes.php | |
parent | 0c8186592c6566bede22e4f567b04dddad7c493b (diff) | |
download | elgg-419c4e01ba3a8b8a038cee32c1fce7d1883532c1.tar.gz elgg-419c4e01ba3a8b8a038cee32c1fce7d1883532c1.tar.bz2 |
Added checkboxes, form, longtext, option, plaintext, pulldown, and tags input views. Kept things dry by creating a html/tag view that takes care of outputting attributes/body.
Diffstat (limited to 'views/default/input/checkboxes.php')
-rw-r--r-- | views/default/input/checkboxes.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/views/default/input/checkboxes.php b/views/default/input/checkboxes.php new file mode 100644 index 000000000..95460a6a8 --- /dev/null +++ b/views/default/input/checkboxes.php @@ -0,0 +1,56 @@ +<?php +/** + * Elgg checkbox input + * Displays a checkbox input field + * NB: This also includes a hidden input with the same name as the checkboxes + * to make sure something is sent to the server. The default value is 0. + * If using JS, be specific to avoid selecting the hidden default value: + * $('input[type=checkbox][name=internalname]) + * + * @package Elgg + * @subpackage Core + * @author Curverider Ltd + * @link http://elgg.org/ + * + * @uses string $vars['internalname'] The name of the input fields (Forced to an array by appending []) + * @uses array $vars['options'] An array of strings representing the label => option for the each checkbox field + * @uses string $vars['internalid'] The id for each input field. Optional (Only use this with a single value.) + * @uses string $vars['default'] The default value to send if nothing is checked. Optional, defaults to 0. + * @uses bool $vars['disabled'] Make all input elements disabled. Optional. + * @uses string $vars['value'] The current value. Optional. + * @uses string $vars['class'] The class of each input element. Optional. + * @uses string $vars['js'] Any Javascript to enter into the input tag. Optional. + * + */ + +$defaults = array( + 'class' => 'input-checkboxes', + 'default' => 0, + 'disabled' => FALSE, +); + +$args = array_merge($defaults, $vars); + +$value_array = (is_array($args['value'])) ? array_map('strtolower', $args['value']) : array(strtolower($args['value'])); + +$options = $args['options']; + +if ($options) { + // include a default value so if nothing is checked 0 will be passed. + if ($args['internalname']) { + echo elgg_view('input/hidden', array('internalname' => $args['internalname'], 'value' => $args['default'])); + } + + foreach($options as $option => $label) { + $opts = array( + 'value' => $option, + 'checked' => in_array(strtolower($option), $value_array)), + 'class' => $args['class'], + 'disabled' => $args['disabled'], + 'js' => $args['js'], + 'internalname' => $args['internalname'].'[]', + ); + + echo "<label>".elgg_view('input/checkbox', $opts)."$label</label><br />"; + } +}
\ No newline at end of file |