在综合英文版XOOPS 2.09, 2.091, 2.092 的基础上正式发布XOOPS 2.09中文版 XOOPS 2.09x 版主要是PHP5升级、bug修正和安全补正: 1 全面兼容PHP 5.

源代码在线查看: function.html_options.php

软件大小: 3473 K
上传用户: susanxuwenjun
关键词: XOOPS 2.09 2.091 2.092
下载地址: 免注册下载 普通下载 VIP

相关代码

								/**
				 * Smarty plugin
				 * @package Smarty
				 * @subpackage plugins
				 */
				
				
				/**
				 * Smarty {html_options} function plugin
				 *
				 * Type:     function
				 * Name:     html_options
				 * Input:
				 *           - name       (optional) - string default "select"
				 *           - values     (required if no options supplied) - array
				 *           - options    (required if no values supplied) - associative array
				 *           - selected   (optional) - string default not set
				 *           - output     (required if not options supplied) - array
				 * Purpose:  Prints the list of  tags generated from
				 *           the passed parameters
				 * @link http://smarty.php.net/manual/en/language.function.html.options.php {html_image}
				 *      (Smarty online manual)
				 * @param array
				 * @param Smarty
				 * @return string
				 * @uses smarty_function_escape_special_chars()
				 */
				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);
				                break;
				
				            case 'selected':
				                $$_key = array_map('strval', array_values((array)$_val));
				                break;
				                
				            default:
				                if(!is_array($_val)) {
				                    $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
				                } else {
				                    $smarty->trigger_error("html_options: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
				                }
				                break;
				        }
				    }
				
				    if (!isset($options) && !isset($values))
				        return ''; /* raise error here? */
				
				    $_html_result = '';
				
				    if (is_array($options)) {
				        
				        foreach ($options as $_key=>$_val)
				            $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected);
				
				    } else {
				        
				        foreach ((array)$values as $_i=>$_key) {
				            $_val = isset($output[$_i]) ? $output[$_i] : '';
				            $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected);
				        }
				
				    }
				
				    if(!empty($name)) {
				        $_html_result = '' . "\n" . $_html_result . '' . "\n";
				    }
				
				    return $_html_result;
				
				}
				
				function smarty_function_html_options_optoutput($key, $value, $selected) {
				    if(!is_array($value)) {
				        $_html_result = '				            smarty_function_escape_special_chars($key) . '"';
				        if (in_array((string)$key, $selected))
				            $_html_result .= ' selected="selected"';
				        $_html_result .= '>' . smarty_function_escape_special_chars($value) . '' . "\n";
				    } else {
				        $_html_result = smarty_function_html_options_optgroup($key, $value, $selected);
				    }
				    return $_html_result;
				}
				
				function smarty_function_html_options_optgroup($key, $values, $selected) {
				    $optgroup_html = '' . "\n";
				    foreach ($values as $key => $value) {
				        $optgroup_html .= smarty_function_html_options_optoutput($key, $value, $selected);
				    }
				    $optgroup_html .= "\n";
				    return $optgroup_html;
				}
				
				/* vim: set expandtab: */
				
				?>
							

相关资源