function smarty_function_html_checkboxes($params, &$smarty) { require_once $smarty->_get_plugin_filepath('shared', 'escape_special_chars'); $name = 'checkbox'; $values = null; $options = null; $selected = null; $separator = ''; $output = null; $extra = ''; foreach ($params as $_key => $_val) { switch ($_key) { case 'name': case 'separator': ${$_key} = $_val; break; case 'options': ${$_key} = (array) $_val; break; case 'values': case 'output': ${$_key} = array_values((array) $_val); break; case 'checked': case 'selected': $selected = array_values((array) $_val); break; case 'checkboxes': $smarty->trigger_error('html_checkboxes: the use of the "checkboxes" 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? */ settype($selected, 'array'); $_html_result = ''; if (is_array($options)) { foreach ($options as $_key => $_val) { $_html_result .= smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator); } } else { foreach ($values as $_i => $_key) { $_val = isset($output[$_i]) ? $output[$_i] : ''; $_html_result .= smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator); } } return $_html_result; }
/** * Smarty {html_checkboxes} function plugin * * File: function.html_checkboxes.php<br> * Type: function<br> * Name: html_checkboxes<br> * Date: 24.Feb.2003<br> * Purpose: Prints out a list of checkbox input types<br> * Examples: * <pre> * {html_checkboxes values=$ids output=$names} * {html_checkboxes values=$ids name='box' separator='<br>' output=$names} * {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names} * </pre> * @link http://smarty.php.net/manual/en/language.function.html.checkboxes.php {html_checkboxes} * (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 "checkbox" * - 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 checkbox * - 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_checkboxes($params, $smarty, $template) { require_once SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php'; //$smarty->loadPlugin('Smarty_shared_escape_special_chars'); $name = 'checkbox'; $values = null; $options = null; $selected = null; $separator = ''; $labels = true; $output = null; $extra = ''; foreach ($params as $_key => $_val) { switch ($_key) { case 'name': case 'separator': ${$_key} = $_val; break; case 'labels': ${$_key} = (bool) $_val; break; case 'options': ${$_key} = (array) $_val; break; case 'values': case 'output': ${$_key} = array_values((array) $_val); break; case 'checked': case 'selected': $selected = array_map('strval', array_values((array) $_val)); break; case 'checkboxes': trigger_error('html_checkboxes: the use of the "checkboxes" 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_checkboxes: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE); } break; } } if (!isset($options) && !isset($values)) { return ''; } /* raise error here? */ settype($selected, 'array'); $_html_result = array(); if (isset($options)) { foreach ($options as $_key => $_val) { $_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels); } } else { foreach ($values as $_i => $_key) { $_val = isset($output[$_i]) ? $output[$_i] : ''; $_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels); } } if (!empty($params['assign'])) { $template->assign($params['assign'], $_html_result); } else { return implode("\n", $_html_result); } }
/** * Smarty {html_checkboxes} function plugin * File: function.html_checkboxes.php<br> * Type: function<br> * Name: html_checkboxes<br> * Date: 24.Feb.2003<br> * Purpose: Prints out a list of checkbox input types<br> * Examples: * <pre> * {html_checkboxes values=$ids output=$names} * {html_checkboxes values=$ids name='box' separator='<br>' output=$names} * {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names} * </pre> * Params: * <pre> * - name (optional) - string default "checkbox" * - 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 checkbox * - assign (optional) - assign the output as an array to this variable * - escape (optional) - escape the content (not value), defaults to true * </pre> * * @link http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes} * (Smarty online manual) * @author Christopher Kvarme <*****@*****.**> * @author credits to Monte Ohrt <monte at ohrt dot com> * @version 1.0 * * @param array $params * parameters * @param object $template * template object * * @return string * @uses smarty_function_escape_special_chars() */ function smarty_function_html_checkboxes($params, $template) { require_once SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php'; $name = 'checkbox'; $values = null; $options = null; $selected = array(); $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 '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 'checked': case 'selected': if (is_array($_val)) { $selected = array(); foreach ($_val as $_sel) { if (is_object($_sel)) { if (method_exists($_sel, "__toString")) { $_sel = smarty_function_escape_special_chars((string) $_sel->__toString()); } else { trigger_error("html_checkboxes: selected attribute contains an object of class '" . get_class($_sel) . "' without __toString() method", E_USER_NOTICE); continue; } } else { $_sel = smarty_function_escape_special_chars((string) $_sel); } $selected[$_sel] = true; } } elseif (is_object($_val)) { if (method_exists($_val, "__toString")) { $selected = smarty_function_escape_special_chars((string) $_val->__toString()); } else { trigger_error("html_checkboxes: selected attribute is an object of class '" . get_class($_val) . "' without __toString() method", E_USER_NOTICE); } } else { $selected = smarty_function_escape_special_chars((string) $_val); } break; case 'checkboxes': trigger_error('html_checkboxes: the use of the "checkboxes" 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) { $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_key) . '"'; } break; } // omit break; to fall through! // omit break; to fall through! default: if (!is_array($_val)) { $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"'; } else { trigger_error("html_checkboxes: 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_checkboxes_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_checkboxes_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_checkboxes} function plugin * * File: function.html_checkboxes.php<br> * Type: function<br> * Name: html_checkboxes<br> * Date: 24.Feb.2003<br> * Purpose: Prints out a list of checkbox input types<br> * Examples: * <pre> * {html_checkboxes values=$ids output=$names} * {html_checkboxes values=$ids name='box' separator='<br>' output=$names} * {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names} * </pre> * Params: * <pre> * - name (optional) - string default "checkbox" * - 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 checkbox * - assign (optional) - assign the output as an array to this variable * - escape (optional) - escape the content (not value), defaults to true * </pre> * * @link http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes} * (Smarty online manual) * @author Christopher Kvarme <*****@*****.**> * @author credits to Monte Ohrt <monte at ohrt dot com> * @version 1.0 * @param array $params parameters * @param object $template template object * @return string * @uses smarty_function_escape_special_chars() */ function smarty_function_html_checkboxes($params, $template) { $template->assertIsNotStrict('`{html_checkboxes}` is a deprecated plugin and is not allowed in strict mode'); include_once SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php'; $options = array('name' => 'checkbox', 'values' => null, 'options' => null, 'selected' => array(), '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 '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 'checked': case 'selected': if (is_array($_val)) { $options['selected'] = array(); foreach ($_val as $_sel) { if (is_object($_sel)) { if (method_exists($_sel, "__toString")) { $_sel = smarty_function_escape_special_chars((string) $_sel->__toString()); } else { trigger_error("html_checkboxes: selected attribute contains an object of class '" . get_class($_sel) . "' without __toString() method", E_USER_NOTICE); continue; } } else { $_sel = smarty_function_escape_special_chars((string) $_sel); } $options['selected'][$_sel] = true; } } elseif (is_object($_val)) { if (method_exists($_val, "__toString")) { $options['selected'] = smarty_function_escape_special_chars((string) $_val->__toString()); } else { trigger_error("html_checkboxes: selected attribute is an object of class '" . get_class($_val) . "' without __toString() method", E_USER_NOTICE); } } else { $options['selected'] = smarty_function_escape_special_chars((string) $_val); } break; case 'checkboxes': trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', E_USER_WARNING); $options['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_checkboxes: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE); } break; } } if (empty($options['options']) && empty($options['values'])) { return ''; } /* raise error here? */ $_html_result = array(); if (!empty($options['options'])) { foreach ($options['options'] as $_key => $_val) { $_html_result[] = smarty_function_html_checkboxes_output($options['name'], $_key, $_val, $options['selected'], $options['extra'], $options['separator'], $options['labels'], $options['label_ids'], $options['escape']); } } else { foreach ($options['values'] as $_i => $_key) { $_val = isset($options['output'][$_i]) ? $options['output'][$_i] : ''; $_html_result[] = smarty_function_html_checkboxes_output($options['name'], $_key, $_val, $options['selected'], $options['extra'], $options['separator'], $options['labels'], $options['label_ids'], $options['escape']); } } if (!empty($params['assign'])) { $template->assign($params['assign'], $_html_result); } else { return implode("\n", $_html_result); } }
/** * Smarty {html_checkboxes} function plugin * * File: function.html_checkboxes.php<br> * Type: function<br> * Name: html_checkboxes<br> * Date: 24.Feb.2003<br> * Purpose: Prints out a list of checkbox input types<br> * Input:<br> * - name (optional) - string default "checkbox" * - 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 checkbox * - assign (optional) - assign the output as an array to this variable * Examples: * <pre> * {html_checkboxes values=$ids output=$names} * {html_checkboxes values=$ids name='box' separator='<br>' output=$names} * {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names} * </pre> * @link http://smarty.php.net/manual/en/language.function.html.checkboxes.php {html_checkboxes} * (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_checkboxes($params, &$smarty) { require_once $smarty->_get_plugin_filepath('shared', 'escape_special_chars'); $name = 'checkbox'; $values = null; $options = null; $selected = null; $separator = ''; $labels = true; $output = null; $extra = ''; foreach ($params as $_key => $_val) { switch ($_key) { case 'name': case 'separator': ${$_key} = $_val; break; case 'labels': ${$_key} = (bool) $_val; break; case 'options': ${$_key} = (array) $_val; break; case 'values': case 'output': ${$_key} = array_values((array) $_val); break; case 'checked': case 'selected': $_val = !is_array($_val) ? explode(',', $_val) : $_val; $selected = array_map('strval', array_values((array) $_val)); break; case 'checkboxes': $smarty->trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', E_USER_WARNING); $options = (array) $_val; break; case 'assign': break; case 'columns': break; default: if (!is_array($_val)) { $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"'; } else { $smarty->trigger_error("html_checkboxes: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE); } break; } } if (!isset($options) && !isset($values)) { return ''; } /* raise error here? */ settype($selected, 'array'); $_html_result = array(); $i = 0; $per_row = !empty($params['columns']) ? $params['columns'] : 1; $_html_result[] = '<table cellpadding="0" cellspacing="0" border="0">'; if (isset($options)) { $total = sizeof($options); foreach ($options as $_key => $_val) { $i++; if (($i - 1) % $per_row == 0) { $_html_result[] = '<tr>'; } $_html_result[] = '<td>' . smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels) . ' </td>'; if ($i % $per_row == 0) { $_html_result[] = '</tr>'; } if ($i == $total && ($j = $i % $per_row) != 0) { for ($l = 1; $l <= $per_row - $j; $l++) { $_html_result[] = '<td> </td>'; } $_html_result[] = '</tr>'; } } } else { foreach ($values as $_i => $_key) { $i++; if (($i - 1) % $per_row == 0) { $_html_result[] = '<tr>'; } $_val = isset($output[$_i]) ? $output[$_i] : ''; $_html_result[] = '<td>' . smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels) . ' </td>'; if ($i % $per_row == 0) { $_html_result[] = '</tr>'; } if ($i == $total && ($j = $i % $per_row) != 0) { for ($l = 1; $l <= $per_row - $j; $l++) { $_html_result[] = '<td> </td>'; } $_html_result[] = '</tr>'; } } } $_html_result[] = '</table>'; if (!empty($params['assign'])) { Registry::get('smarty')->assign($params['assign'], $_html_result); } else { return implode("\n", $_html_result); } }