aboutsummaryrefslogtreecommitdiff
path: root/views/default/input/checkboxes.php
diff options
context:
space:
mode:
authorEvan Winslow <evan.b.winslow@gmail.com>2010-10-17 10:51:18 +0000
committerEvan Winslow <evan.b.winslow@gmail.com>2010-10-17 10:51:18 +0000
commit419c4e01ba3a8b8a038cee32c1fce7d1883532c1 (patch)
tree8dfc8aade1b36c0214a630cb9d9bc2d441109702 /views/default/input/checkboxes.php
parent0c8186592c6566bede22e4f567b04dddad7c493b (diff)
downloadelgg-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.php56
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