[Pieforms-commit] SF.net SVN: pieforms: [189] pieforms-php5/trunk/src/pieform/elements/select .php
Status: Alpha
Brought to you by:
oracleshinoda
From: <ora...@us...> - 2007-02-19 23:17:52
|
Revision: 189 http://svn.sourceforge.net/pieforms/?rev=189&view=rev Author: oracleshinoda Date: 2007-02-19 15:17:52 -0800 (Mon, 19 Feb 2007) Log Message: ----------- Added support for disabling individual option values in a select box. Also added support for labelling options, which unfortunately isn't supported by any common user agent yet. Modified Paths: -------------- pieforms-php5/trunk/src/pieform/elements/select.php Modified: pieforms-php5/trunk/src/pieform/elements/select.php =================================================================== --- pieforms-php5/trunk/src/pieform/elements/select.php 2007-02-19 22:30:27 UTC (rev 188) +++ pieforms-php5/trunk/src/pieform/elements/select.php 2007-02-19 23:17:52 UTC (rev 189) @@ -48,6 +48,9 @@ if (!empty($element['collapseifoneoption']) && isset($element['options']) && is_array($element['options']) && count($element['options']) == 1) { foreach ($element['options'] as $key => $value) { + if (is_array($value)) { + $value = $value['value']; + } $result = $value . '<input type="hidden" name="' . $element['name'] . '" value="' . $key . '">'; } return $result; @@ -79,7 +82,36 @@ else { $selected = ''; } - $result .= "\t<option value=\"" . Pieform::hsc($key) . "\"$selected>" . Pieform::hsc($value) . "</option>\n"; + + // Disable the option if necessary + if (is_array($value) && !empty($value['disabled'])) { + $disabled = ' disabled="disabled"'; + } + else { + $disabled = ''; + } + + // Add a label if necessary. None of the common browsers actually render + // this properly at the moment, but that may change in future. + if (is_array($value) && isset($value['label'])) { + $label = ' label="' . Pieform::hsc($value['label']) . '"'; + } + else { + $label = ''; + } + + // Get the value to display/put in the value attribute + if (is_array($value)) { + if (!isset($value['value'])) { + Pieform::info('No value set for option "' . $key . '" of select element "' . $element['name'] . '"'); + $value = ''; + } + else { + $value = $value['value']; + } + } + + $result .= "\t<option value=\"" . Pieform::hsc($key) . "\"{$selected}{$label}{$disabled}>" . Pieform::hsc($value) . "</option>\n"; } if (!$optionselected && !is_array($values) && $values !== null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |