From f5f3f205e97c2a3219897dd14de7d57659ce1181 Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Sat, 2 Jul 2011 09:21:30 -0400 Subject: Fixes #3624 input views use class extending rather than overriding --- views/default/input/access.php | 18 ++++--- views/default/input/autocomplete.php | 16 +++--- views/default/input/button.php | 15 +++--- views/default/input/calendar.php | 4 +- views/default/input/captcha.php | 2 +- views/default/input/checkbox.php | 16 ++++-- views/default/input/checkboxes.php | 99 ++++++++++++++++++++---------------- views/default/input/date.php | 13 +++-- views/default/input/dropdown.php | 21 +++++--- views/default/input/email.php | 11 +++- views/default/input/file.php | 15 ++++-- views/default/input/location.php | 10 +++- views/default/input/longtext.php | 27 +++++++--- views/default/input/password.php | 17 ++++--- views/default/input/plaintext.php | 21 +++++--- views/default/input/radio.php | 47 ++++++++++++----- views/default/input/tag.php | 14 +++-- views/default/input/tags.php | 12 +++-- views/default/input/text.php | 12 ++++- views/default/input/url.php | 11 +++- 20 files changed, 266 insertions(+), 135 deletions(-) (limited to 'views/default/input') diff --git a/views/default/input/access.php b/views/default/input/access.php index 40a93aaa4..137eea288 100644 --- a/views/default/input/access.php +++ b/views/default/input/access.php @@ -3,15 +3,21 @@ * Elgg access level input * Displays a dropdown input field * - * @uses $vars['value'] The current value, if any - * @uses $vars['options_values'] - * @uses $vars['name'] The name of the input field - * @uses $vars['entity'] Optional. The entity for this access control (uses access_id) + * @uses $vars['value'] The current value, if any + * @uses $vars['options_values'] Array of value => label pairs (overrides default) + * @uses $vars['name'] The name of the input field + * @uses $vars['entity'] Optional. The entity for this access control (uses access_id) + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-access {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-access"; +} + $defaults = array( - 'class' => 'elgg-input-access', - 'disabled' => FALSE, + 'disabled' => false, 'value' => get_default_access(), 'options_values' => get_write_access_array(), ); diff --git a/views/default/input/autocomplete.php b/views/default/input/autocomplete.php index 0a4057ddf..421541e24 100644 --- a/views/default/input/autocomplete.php +++ b/views/default/input/autocomplete.php @@ -7,20 +7,25 @@ * * @todo This currently only works for ONE AUTOCOMPLETE TEXT FIELD on a page. * - * @uses $vars['match_on'] Array | str What to match on. all|array(groups|users|friends|subtype) + * @uses $vars['value'] Current value for the text input + * @uses $vars['match_on'] Array | str What to match on. all|array(groups|users|friends|subtype) * @uses $vars['match_owner'] Bool. Match only entities that are owned by logged in user. - * + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-autocomplete {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-autocomplete"; +} + $defaults = array( - 'class' => '', 'value' => '', + 'disabled' => false, ); $vars = array_merge($defaults, $vars); -$vars['class'] = trim("elgg-input-autocomplete {$vars['class']}"); - $ac_url_params = http_build_query(array( 'match_on' => $vars['match_on'], 'match_owner' => $vars['match_owner'], @@ -38,4 +43,3 @@ elgg.provide('elgg.autocomplete'); elgg.autocomplete.url = ""; /> - diff --git a/views/default/input/button.php b/views/default/input/button.php index 3122068ca..c21989919 100644 --- a/views/default/input/button.php +++ b/views/default/input/button.php @@ -6,20 +6,21 @@ * @subpackage Core * * @uses $vars['src'] Src of an image - * @uses $vars['class'] Class to add to elgg-button - * - * @todo Handle classes better + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-button {$vars['class']}"; +} else { + $vars['class'] = "elgg-button"; +} + $defaults = array( 'type' => 'button', - 'class' => '', ); $vars = array_merge($defaults, $vars); -$vars['class'] = trim("elgg-button {$vars['class']}"); - switch ($vars['type']) { case 'button': case 'reset': @@ -36,4 +37,4 @@ if (strpos($vars['src'], elgg_get_site_url()) === false) { $vars['src'] = ""; } ?> - /> \ No newline at end of file + /> diff --git a/views/default/input/calendar.php b/views/default/input/calendar.php index 553a254ce..52c84ff82 100644 --- a/views/default/input/calendar.php +++ b/views/default/input/calendar.php @@ -1,6 +1,6 @@ 'elgg-input-checkbox', 'default' => 0, + 'disabled' => false, ); $vars = array_merge($defaults, $vars); @@ -29,5 +36,4 @@ if (isset($vars['name']) && $default !== false) { } ?> - - /> \ No newline at end of file + /> diff --git a/views/default/input/checkboxes.php b/views/default/input/checkboxes.php index c78fe4db0..985858b85 100644 --- a/views/default/input/checkboxes.php +++ b/views/default/input/checkboxes.php @@ -15,68 +15,77 @@ * @package Elgg * @subpackage Core * - * @uses string $vars['name'] 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['id'] 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. Set to FALSE for no default. - * @uses bool $vars['disabled'] Make all input elements disabled. Optional. - * @uses string $vars['value'] The current value. Optional. - * @uses string $vars['class'] Additional class of the list. Optional. - * @uses string $vars['align'] 'horizontal' or 'vertical' Default: 'vertical' + * @uses string $vars['name'] 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['default'] The default value to send if nothing is checked. + * Optional, defaults to 0. Set to FALSE for no default. + * @uses bool $vars['disabled'] Make all input elements disabled. Optional. + * @uses string $vars['value'] The current value. Single value or array. Optional. + * @uses string $vars['class'] Additional class of the list. Optional. + * @uses string $vars['align'] 'horizontal' or 'vertical' Default: 'vertical' * */ -$additional_class = elgg_extract('class', $vars); -$align = elgg_extract('align', $vars, 'vertical'); -$value = (isset($vars['value'])) ? $vars['value'] : NULL; -$value_array = (is_array($value)) ? array_map('elgg_strtolower', $value) : array(elgg_strtolower($value)); -$name = (isset($vars['name'])) ? $vars['name'] : ''; -$options = (isset($vars['options']) && is_array($vars['options'])) ? $vars['options'] : array(); -$default = (isset($vars['default'])) ? $vars['default'] : 0; +$defaults = array( + 'align' => 'vertical', + 'value' => array(), + 'default' => 0, + 'disabled' => false, + 'options' => array(), + 'name' => '', +); -$id = (isset($vars['id'])) ? $vars['id'] : ''; -$disabled = (isset($vars['disabled'])) ? $vars['disabled'] : FALSE; -$js = (isset($vars['js'])) ? $vars['js'] : ''; +$vars = array_merge($defaults, $vars); -$class = "elgg-input-checkboxes elgg-$align"; -if ($additional_class) { - $class = " $additional_class"; +$class = "elgg-input-checkboxes elgg-{$vars['align']}"; +if (isset($vars['class'])) { + $class .= " {$vars['class']}"; + unset($vars['class']); } -if ($options && count($options) > 0) { +$id = ''; +if (isset($vars['id'])) { + $id = "id=\"{$vars['id']}\""; + unset($vars['id']); + unset($vars['internalid']); +} + +if (is_array($vars['value'])) { + $values = array_map('elgg_strtolower', $vars['value']); +} else { + $values = array(elgg_strtolower($vars['value'])); +} + +$input_vars = $vars; +$input_vars['default'] = false; +if ($vars['name']) { + $input_vars['name'] = "{$vars['name']}[]"; +} +unset($input_vars['align']); +unset($input_vars['options']); + +if (count($vars['options']) > 0) { // include a default value so if nothing is checked 0 will be passed. - if ($name && $default !== FALSE) { - echo ""; + if ($vars['name'] && $vars['default'] !== false) { + echo ""; } - echo "