* the passed parameters
* @link http://smarty.php.net/manual/en/language.function.html.options.php {html_image}
* (Smarty online manual)
+ * @author Monte Ohrt <monte at ohrt dot com>
* @param array
* @param Smarty
* @return string
function smarty_function_html_options($params, &$smarty)
{
require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
-
+
$name = null;
$values = null;
$options = null;
$selected = array();
$output = null;
-
+
$extra = '';
-
+
foreach($params as $_key => $_val) {
switch($_key) {
case 'name':
$$_key = (string)$_val;
break;
-
+
case 'options':
$$_key = (array)$_val;
break;
-
+
case 'values':
case 'output':
$$_key = array_values((array)$_val);
case 'selected':
$$_key = array_map('strval', array_values((array)$_val));
break;
-
+
default:
if(!is_array($_val)) {
$extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
$_html_result = '';
if (isset($options)) {
-
+
foreach ($options as $_key=>$_val)
$_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected);
} else {
-
+
foreach ($values as $_i=>$_key) {
$_val = isset($output[$_i]) ? $output[$_i] : '';
$_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected);