Smarty 入門 不過因為有針對舊有的內容做一些小調整

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

软件大小: 100 K
上传用户: NJ_WK
关键词: Smarty
下载地址: 免注册下载 普通下载 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)				 * @author Monte Ohrt 				 * @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 (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);				        }								    }								    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: */								?>							

相关资源