[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Smarty plugin 4 * 5 * @package Smarty 6 * @subpackage PluginsFunction 7 */ 8 9 /** 10 * Smarty {html_radios} function plugin 11 * 12 * File: function.html_radios.php<br> 13 * Type: function<br> 14 * Name: html_radios<br> 15 * Date: 24.Feb.2003<br> 16 * Purpose: Prints out a list of radio input types<br> 17 * Params: 18 * <pre> 19 * - name (optional) - string default "radio" 20 * - values (required) - array 21 * - options (required) - associative array 22 * - checked (optional) - array default not set 23 * - separator (optional) - ie <br> or 24 * - output (optional) - the output next to each radio button 25 * - assign (optional) - assign the output as an array to this variable 26 * - escape (optional) - escape the content (not value), defaults to true 27 * </pre> 28 * Examples: 29 * <pre> 30 * {html_radios values=$ids output=$names} 31 * {html_radios values=$ids name='box' separator='<br>' output=$names} 32 * {html_radios values=$ids checked=$checked separator='<br>' output=$names} 33 * </pre> 34 * 35 * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios} 36 * (Smarty online manual) 37 * @author Christopher Kvarme <[email protected]> 38 * @author credits to Monte Ohrt <monte at ohrt dot com> 39 * @version 1.0 40 * @param array $params parameters 41 * @param Smarty_Internal_Template $template template object 42 * @return string 43 * @uses smarty_function_escape_special_chars() 44 */ 45 function smarty_function_html_radios($params, $template) 46 { 47 require_once (SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php'); 48 49 $name = 'radio'; 50 $values = null; 51 $options = null; 52 $selected = null; 53 $separator = ''; 54 $escape = true; 55 $labels = true; 56 $label_ids = false; 57 $output = null; 58 $extra = ''; 59 60 foreach($params as $_key => $_val) { 61 switch ($_key) { 62 case 'name': 63 case 'separator': 64 $$_key = (string) $_val; 65 break; 66 67 case 'checked': 68 case 'selected': 69 if (is_array($_val)) { 70 trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING); 71 } elseif (is_object($_val)) { 72 if (method_exists($_val, "__toString")) { 73 $selected = smarty_function_escape_special_chars((string) $_val->__toString()); 74 } else { 75 trigger_error("html_radios: selected attribute is an object of class '". get_class($_val) ."' without __toString() method", E_USER_NOTICE); 76 } 77 } else { 78 $selected = (string) $_val; 79 } 80 break; 81 82 case 'escape': 83 case 'labels': 84 case 'label_ids': 85 $$_key = (bool) $_val; 86 break; 87 88 case 'options': 89 $$_key = (array) $_val; 90 break; 91 92 case 'values': 93 case 'output': 94 $$_key = array_values((array) $_val); 95 break; 96 97 case 'radios': 98 trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING); 99 $options = (array) $_val; 100 break; 101 102 case 'assign': 103 break; 104 105 default: 106 if (!is_array($_val)) { 107 $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"'; 108 } else { 109 trigger_error("html_radios: extra attribute '$_key' cannot be an array", E_USER_NOTICE); 110 } 111 break; 112 } 113 } 114 115 if (!isset($options) && !isset($values)) { 116 /* raise error here? */ 117 return ''; 118 } 119 120 $_html_result = array(); 121 122 if (isset($options)) { 123 foreach ($options as $_key => $_val) { 124 $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $escape); 125 } 126 } else { 127 foreach ($values as $_i => $_key) { 128 $_val = isset($output[$_i]) ? $output[$_i] : ''; 129 $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $escape); 130 } 131 } 132 133 if (!empty($params['assign'])) { 134 $template->assign($params['assign'], $_html_result); 135 } else { 136 return implode("\n", $_html_result); 137 } 138 } 139 140 function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids, $escape) 141 { 142 $_output = ''; 143 144 if (is_object($value)) { 145 if (method_exists($value, "__toString")) { 146 $value = (string) $value->__toString(); 147 } else { 148 trigger_error("html_options: value is an object of class '". get_class($value) ."' without __toString() method", E_USER_NOTICE); 149 return ''; 150 } 151 } else { 152 $value = (string) $value; 153 } 154 155 if (is_object($output)) { 156 if (method_exists($output, "__toString")) { 157 $output = (string) $output->__toString(); 158 } else { 159 trigger_error("html_options: output is an object of class '". get_class($output) ."' without __toString() method", E_USER_NOTICE); 160 return ''; 161 } 162 } else { 163 $output = (string) $output; 164 } 165 166 if ($labels) { 167 if ($label_ids) { 168 $_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!' . Smarty::$_UTF8_MODIFIER, '_', $name . '_' . $value)); 169 $_output .= '<label for="' . $_id . '">'; 170 } else { 171 $_output .= '<label>'; 172 } 173 } 174 175 $name = smarty_function_escape_special_chars($name); 176 $value = smarty_function_escape_special_chars($value); 177 if ($escape) { 178 $output = smarty_function_escape_special_chars($output); 179 } 180 181 $_output .= '<input type="radio" name="' . $name . '" value="' . $value . '"'; 182 183 if ($labels && $label_ids) { 184 $_output .= ' id="' . $_id . '"'; 185 } 186 187 if ($value === $selected) { 188 $_output .= ' checked="checked"'; 189 } 190 191 $_output .= $extra . ' />' . $output; 192 if ($labels) { 193 $_output .= '</label>'; 194 } 195 196 $_output .= $separator; 197 return $_output; 198 } 199 200 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |