function smarty_function_html_radios($params, &$smarty) { require_once $smarty->_get_plugin_filepath('shared', 'escape_special_chars'); $name = 'radio'; $values = null; $options = null; $selected = null; $separator = ''; $output = null; $extra = ''; foreach ($params as $_key => $_val) { switch ($_key) { case 'name': case 'separator': ${$_key} = (string) $_val; break; case 'checked': case 'selected': if (is_array($_val)) { $smarty->trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING); } else { $selected = (string) $_val; } break; case 'options': ${$_key} = (array) $_val; break; case 'values': case 'output': ${$_key} = array_values((array) $_val); break; case 'radios': $smarty->trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING); $options = (array) $_val; break; default: $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars((string) $_val) . '"'; break; } } if (!isset($options) && !isset($values)) { return ''; } /* raise error here? */ $_html_result = ''; if (isset($options) && is_array($options)) { foreach ((array) $options as $_key => $_val) { $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator); } } else { foreach ((array) $values as $_i => $_key) { $_val = isset($output[$_i]) ? $output[$_i] : ''; $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator); } } return $_html_result; }
/** * Smarty {html_radios} function plugin * * File: function.html_radios.php<br> * Type: function<br> * Name: html_radios<br> * Date: 24.Feb.2003<br> * Purpose: Prints out a list of radio input types<br> * Params: * <pre> * - name (optional) - string default "radio" * - values (required) - array * - options (required) - associative array * - checked (optional) - array default not set * - separator (optional) - ie <br> or * - output (optional) - the output next to each radio button * - assign (optional) - assign the output as an array to this variable * - escape (optional) - escape the content (not value), defaults to true * </pre> * Examples: * <pre> * {html_radios values=$ids output=$names} * {html_radios values=$ids name='box' separator='<br>' output=$names} * {html_radios values=$ids checked=$checked separator='<br>' output=$names} * </pre> * * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios} * (Smarty online manual) * @author Christopher Kvarme <*****@*****.**> * @author credits to Monte Ohrt <monte at ohrt dot com> * @version 1.0 * @param array $params parameters * @param Smarty_Internal_Template $template template object * @return string * @uses smarty_function_escape_special_chars() */ function smarty_function_html_radios($params, $template) { require_once SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php'; $name = 'radio'; $values = null; $options = null; $selected = null; $separator = ''; $escape = true; $labels = true; $label_ids = false; $output = null; $extra = ''; foreach ($params as $_key => $_val) { switch ($_key) { case 'name': case 'separator': ${$_key} = (string) $_val; break; case 'checked': case 'selected': if (is_array($_val)) { trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING); } elseif (is_object($_val)) { if (method_exists($_val, "__toString")) { $selected = smarty_function_escape_special_chars((string) $_val->__toString()); } else { trigger_error("html_radios: selected attribute is an object of class '" . get_class($_val) . "' without __toString() method", E_USER_NOTICE); } } else { $selected = (string) $_val; } break; case 'escape': case 'labels': case 'label_ids': ${$_key} = (bool) $_val; break; case 'options': ${$_key} = (array) $_val; break; case 'values': case 'output': ${$_key} = array_values((array) $_val); break; case 'radios': trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING); $options = (array) $_val; break; case 'assign': break; default: if (!is_array($_val)) { $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"'; } else { trigger_error("html_radios: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE); } break; } } if (!isset($options) && !isset($values)) { /* raise error here? */ return ''; } $_html_result = array(); if (isset($options)) { foreach ($options as $_key => $_val) { $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $escape); } } else { foreach ($values as $_i => $_key) { $_val = isset($output[$_i]) ? $output[$_i] : ''; $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $escape); } } if (!empty($params['assign'])) { $template->assign($params['assign'], $_html_result); } else { return implode("\n", $_html_result); } }
/** * Smarty {html_radios} function plugin * * File: function.html_radios.php<br> * Type: function<br> * Name: html_radios<br> * Date: 24.Feb.2003<br> * Purpose: Prints out a list of radio input types<br> * Input:<br> * - name (optional) - string default "radio" * - values (required) - array * - options (optional) - associative array * - checked (optional) - array default not set * - separator (optional) - ie <br> or * - output (optional) - the output next to each radio button * - assign (optional) - assign the output as an array to this variable * Examples: * <pre> * {html_radios values=$ids output=$names} * {html_radios values=$ids name='box' separator='<br>' output=$names} * {html_radios values=$ids checked=$checked separator='<br>' output=$names} * </pre> * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios} * (Smarty online manual) * @author Christopher Kvarme <*****@*****.**> * @author credits to Monte Ohrt <monte at ohrt dot com> * @version 1.0 * @param array * @param Smarty * @return string * @uses smarty_function_escape_special_chars() */ function smarty_function_html_radios($params, &$smarty) { require_once $smarty->_get_plugin_filepath('shared', 'escape_special_chars'); $name = 'radio'; $values = null; $options = null; $selected = null; $separator = ''; $labels = true; $label_ids = false; $output = null; $extra = ''; foreach ($params as $_key => $_val) { switch ($_key) { case 'name': case 'separator': ${$_key} = (string) $_val; break; case 'checked': case 'selected': if (is_array($_val)) { $smarty->trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING); } else { $selected = (string) $_val; } break; case 'labels': case 'label_ids': ${$_key} = (bool) $_val; break; case 'options': ${$_key} = (array) $_val; break; case 'values': case 'output': ${$_key} = array_values((array) $_val); break; case 'radios': $smarty->trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING); $options = (array) $_val; break; case 'assign': break; default: if (!is_array($_val)) { $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"'; } else { $smarty->trigger_error("html_radios: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE); } break; } } if (!isset($options) && !isset($values)) { return ''; } /* raise error here? */ $_html_result = array(); if (isset($options)) { foreach ($options as $_key => $_val) { $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids); } } else { foreach ($values as $_i => $_key) { $_val = isset($output[$_i]) ? $output[$_i] : ''; $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids); } } if (!empty($params['assign'])) { $smarty->assign($params['assign'], $_html_result); } else { return implode("\n", $_html_result); } }
/** * Smarty {html_radios} function plugin * * File: function.html_radios.php<br> * Type: function<br> * Name: html_radios<br> * Date: 24.Feb.2003<br> * Purpose: Prints out a list of radio input types<br> * Examples: * <pre> * {html_radios values=$ids output=$names} * {html_radios values=$ids name='box' separator='<br>' output=$names} * {html_radios values=$ids checked=$checked separator='<br>' output=$names} * </pre> * * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios} * (Smarty online manual) * @author Christopher Kvarme <*****@*****.**> * @author credits to Monte Ohrt <monte at ohrt dot com> * @version 1.0 * @param array $params parameters * Input:<br> * - name (optional) - string default "radio" * - values (required) - array * - options (optional) - associative array * - checked (optional) - array default not set * - separator (optional) - ie <br> or * - output (optional) - the output next to each radio button * - assign (optional) - assign the output as an array to this variable * @param object $smarty Smarty object * @param object $template template object * @return string * @uses smarty_function_escape_special_chars() */ function smarty_function_html_radios($params, $template) { require_once SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php'; $name = 'radio'; $values = null; $options = null; $selected = null; $separator = ''; $labels = true; $label_ids = false; $output = null; $extra = ''; $label_extra = ''; foreach ($params as $_key => $_val) { switch ($_key) { case 'name': case 'separator': ${$_key} = (string) $_val; break; case 'checked': case 'selected': if (is_array($_val)) { trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING); } else { $selected = (string) $_val; } break; case 'labels': case 'label_ids': ${$_key} = (bool) $_val; break; case 'options': ${$_key} = (array) $_val; break; case 'values': case 'output': ${$_key} = array_values((array) $_val); break; case 'radios': trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING); $options = (array) $_val; break; case 'assign': break; default: if (!is_array($_val)) { if (preg_match('/label_(.*)/', $_key, $m)) { $label_extra .= ' ' . $m[1] . '="' . smarty_function_escape_special_chars($_val) . '"'; } else { $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"'; } } else { trigger_error("html_radios: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE); } break; } } if (!isset($options) && !isset($values)) { return ''; } /* raise error here? */ $_html_result = ''; if (isset($options) && is_array($options)) { foreach ((array) $options as $_key => $_val) { $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_extra); } } else { foreach ((array) $values as $_i => $_key) { $_val = isset($output[$_i]) ? $output[$_i] : ''; $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_extra); } } return $_html_result; }
/** * Smarty {html_radios} function plugin * * File: function.html_radios.php<br> * Type: function<br> * Name: html_radios<br> * Date: 24.Feb.2003<br> * Purpose: Prints out a list of radio input types<br> * Params: * <pre> * - name (optional) - string default "radio" * - values (required) - array * - options (required) - associative array * - checked (optional) - array default not set * - separator (optional) - ie <br> or * - output (optional) - the output next to each radio button * - assign (optional) - assign the output as an array to this variable * - escape (optional) - escape the content (not value), defaults to true * </pre> * Examples: * <pre> * {html_radios values=$ids output=$names} * {html_radios values=$ids name='box' separator='<br>' output=$names} * {html_radios values=$ids checked=$checked separator='<br>' output=$names} * </pre> * * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios} * (Smarty online manual) * @author Christopher Kvarme <*****@*****.**> * @author credits to Monte Ohrt <monte at ohrt dot com> * @version 1.0 * @param array $params parameters * @param Template $template template object * @return string * @uses smarty_function_escape_special_chars() */ function smarty_function_html_radios($params, $template) { $template->assertIsNotStrict('`{html_radios}` is a deprecated plugin and is not allowed in strict mode'); include_once SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php'; $options = array('name' => 'radio', 'values' => null, 'options' => null, 'selected' => null, 'separator' => '', 'escape' => true, 'labels' => true, 'label_ids' => false, 'output' => null, 'extra' => ''); foreach ($params as $_key => $_val) { switch ($_key) { case 'name': case 'separator': $options[$_key] = (string) $_val; break; case 'checked': case 'selected': if (is_array($_val)) { trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING); } elseif (is_object($_val)) { if (method_exists($_val, "__toString")) { $options['selected'] = smarty_function_escape_special_chars((string) $_val->__toString()); } else { trigger_error("html_radios: selected attribute is an object of class '" . get_class($_val) . "' without __toString() method", E_USER_NOTICE); } } else { $options['selected'] = (string) $_val; } break; case 'escape': case 'labels': case 'label_ids': $options[$_key] = (bool) $_val; break; case 'options': $options[$_key] = (array) $_val; break; case 'values': case 'output': $options[$_key] = array_values((array) $_val); break; case 'radios': trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING); $options = (array) $_val; break; case 'assign': break; case 'strict': break; case 'disabled': case 'readonly': if (!empty($params['strict'])) { if (!is_scalar($_val)) { trigger_error("html_options: {$_key} attribute must be a scalar, only boolean true or string '{$_key}' will actually add the attribute", E_USER_NOTICE); } if ($_val === true || $_val === $_key) { $options['extra'] .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_key) . '"'; } break; } // omit break; to fall through! // omit break; to fall through! default: if (!is_array($_val)) { $options['extra'] .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"'; } else { trigger_error("html_radios: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE); } break; } } if (!isset($options) && !isset($values)) { /* raise error here? */ return ''; } $_html_result = array(); if (isset($options['options'])) { foreach ($options['options'] as $_key => $_val) { $_html_result[] = smarty_function_html_radios_output($options, $_key, $_val); } } else { foreach ($options['values'] as $_i => $_key) { $_val = isset($options['output'][$_i]) ? $options['output'][$_i] : ''; $_html_result[] = smarty_function_html_radios_output($options, $_key, $_val); } } if (!empty($params['assign'])) { $template->assign($params['assign'], $_html_result); } else { return implode("\n", $_html_result); } }