“Discuz!X/后台HTML显示函数”的版本间的差异
来自Blueidea
< Discuz!X
1033289127(讨论 | 贡献) (→表单头示函数(showformheader)) |
1033289127(讨论 | 贡献) |
||
(未显示同一用户的13个中间版本) | |||
第101行: | 第101行: | ||
$extra 表单编码方式指定 | $extra 表单编码方式指定 | ||
$name 表单名称 | $name 表单名称 | ||
− | $method 表单提交方式 | + | $method 表单提交方式 例如 post,get 等 |
*使用范例 | *使用范例 | ||
showformheader('pages&operation=sort&do='.$do); | showformheader('pages&operation=sort&do='.$do); | ||
+ | |||
+ | == 表单结尾标签显示函数(showformfooter) == | ||
+ | |||
+ | *函数原型 | ||
+ | <syntaxhighlight lang="php"> | ||
+ | function showformfooter() { | ||
+ | global $_G; | ||
+ | if(!empty($_G['setting_JS'])) { | ||
+ | echo '<script type="text/JavaScript">'.$_G['setting_JS'].'</script>'; | ||
+ | } | ||
+ | |||
+ | updatesession(); | ||
+ | |||
+ | echo '</form>'."\n"; | ||
+ | if($scrolltop = intval(getgpc('scrolltop'))) { | ||
+ | echo '<script type="text/JavaScript">_attachEvent(window, \'load\', function () { scroll(0,'.$scrolltop.') }, document);</script>'; | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | *使用范例 | ||
+ | //调用表单内容输出完毕后直接调用这个参数即可 | ||
+ | showformfooter() | ||
+ | |||
+ | == 按钮显示函数(showsubmit) == | ||
+ | |||
+ | *函数原型 | ||
+ | <syntaxhighlight lang="php"> | ||
+ | function showsubmit($name = '', $value = 'submit', $before = '', $after = '', $floatright = '', $entersubmit = true) { | ||
+ | global $_G; | ||
+ | if(!empty($_G['showsetting_multi'])) { | ||
+ | return; | ||
+ | } | ||
+ | $str = '<tr>'; | ||
+ | $str .= $name && in_array($before, array('del', 'select_all', 'td')) ? '<td class="td25">'.($before != 'td' ? '<input type="checkbox" name="chkall" id="chkall'.($chkkallid = random(4)).'" class="checkbox" onclick="checkAll(\'prefix\', this.form, \'delete\')" /><label for="chkall'.$chkkallid.'">'.cplang($before) : '').'</label></td>' : ''; | ||
+ | $str .= '<td colspan="15">'; | ||
+ | $str .= $floatright ? '<div class="cuspages right">'.$floatright.'</div>' : ''; | ||
+ | $str .= '<div class="fixsel">'; | ||
+ | $str .= $before && !in_array($before, array('del', 'select_all', 'td')) ? $before.' ' : ''; | ||
+ | $str .= $name ? '<input type="submit" class="btn" id="submit_'.$name.'" name="'.$name.'" title="'.($entersubmit ? cplang('submit_tips') : '').'" value="'.cplang($value).'" />' : ''; | ||
+ | $after = $after == 'more_options' ? '<input class="checkbox" type="checkbox" value="1" onclick="$(\'advanceoption\').style.display = $(\'advanceoption\').style.display == \'none\' ? \'\' : \'none\'; this.value = this.value == 1 ? 0 : 1; this.checked = this.value == 1 ? false : true" id="btn_more" /><label for="btn_more">'.cplang('more_options').'</label>' : $after; | ||
+ | $str = $after ? $str.(($before && $before != 'del') || $name ? ' ' : '').$after : $str; | ||
+ | $str .= '</div></td>'; | ||
+ | $str .= '</tr>'; | ||
+ | echo $str.($name && $entersubmit ? '<script type="text/JavaScript">_attachEvent(document.documentElement, \'keydown\', function (e) { entersubmit(e, \''.$name.'\'); });</script>' : ''); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *参数解释 | ||
+ | $name 按钮名称 | ||
+ | $value 按钮值 | ||
+ | |||
+ | *使用范例 | ||
+ | showsubmit('editsubmit'); | ||
+ | |||
+ | == 折叠式表单显示函数(showpages) == | ||
+ | |||
+ | *函数原型 | ||
+ | <syntaxhighlight lang="php"> | ||
+ | function showpages(&$cate, $type = '', $last = '') { | ||
+ | if($last == '') { | ||
+ | $return = '<tr class="hover"><td class="td25"><input type="checkbox" class="checkbox" name="delete[]" value="'.$cate['sortid'].'" /></td><td class="td25"><input type="text" class="txt" name="order['.$cate['sortid'].']" value="'.$cate['displayorder'].'" /></td><td>'; | ||
+ | if($type == 'parent') { | ||
+ | $return .= '<div class="parentboard">'; | ||
+ | } elseif($type == '') { | ||
+ | $return .= '<div class="board">'; | ||
+ | } elseif($type == 'child') { | ||
+ | $return .= '<div id="cb_'.$cate['sortid'].'" class="childboard">'; | ||
+ | } | ||
+ | |||
+ | $return .= '<input type="text" name="name['.$cate['sortid'].']" value="'.htmlspecialchars($cate['title']).'" class="txt" />'; | ||
+ | $return .= '</div></td></tr>'; | ||
+ | } else { | ||
+ | if($last == 'lastboard') { | ||
+ | $return = '<tr><td></td><td colspan="3"><div class="lastboard"><a | ||
+ | href="###" onclick="addrow(this, 1, '.$cate['sortid'].')" | ||
+ | class="addtr">'.cplang('add_parentsort').'</a></div></td></tr>'; | ||
+ | } elseif($last == 'lastchildboard' && $type) { | ||
+ | $return = '<script type="text/JavaScript">$(\'cb_'.$type.'\').className = \'lastchildboard\';</script>'; | ||
+ | } elseif($last == 'last') { | ||
+ | $return = '<tr><td colspan="3"><div><a href="###" | ||
+ | onclick="addrow(this, 0)" class="addtr">'.cplang('add_sort').'</a></div></td></tr>'; | ||
+ | } | ||
+ | } | ||
+ | echo $return; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *参数解析 | ||
+ | |||
+ | == 表格头显示函数(showtableheader) == | ||
+ | |||
+ | *函数原型 | ||
+ | <syntaxhighlight lang="php"> | ||
+ | function showtableheader($title = '', $classname = '', $extra = '', $titlespan = 15) { | ||
+ | global $_G; | ||
+ | $classname = str_replace(array('nobottom', 'notop'), array('nobdb', 'nobdt'), $classname); | ||
+ | if(isset($_G['showsetting_multi'])) { | ||
+ | if($_G['showsetting_multi'] == 0) { | ||
+ | $extra .= ' style="width:'.($_G['showsetting_multicount'] * 270 + 20).'px"'; | ||
+ | } else { | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | echo "\n".'<table class="tb tb2 '.$classname.'"'.($extra ? " $extra" : '').'>'; | ||
+ | if($title) { | ||
+ | $span = $titlespan ? 'colspan="'.$titlespan.'"' : ''; | ||
+ | echo "\n".'<tr><th '.$span.' class="partition">'.cplang($title).'</th></tr>'; | ||
+ | showmultititle(); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | *参数解释 | ||
+ | $title 表格标题 | ||
+ | $classname 表格样式名 | ||
+ | $extra 表格大小参数 | ||
+ | $titlespan 表格列数 | ||
+ | *使用范例 | ||
+ | showtableheader('admin', 'fixpadding'); | ||
+ | |||
+ | |||
+ | == 表格结束显示函数(showtablefooter) == | ||
+ | |||
+ | *函数原型 | ||
+ | <syntaxhighlight lang="php"> | ||
+ | function showtablefooter() { | ||
+ | global $_G; | ||
+ | if(!empty($_G['showsetting_multi'])) { | ||
+ | return; | ||
+ | } | ||
+ | echo '</table>'."\n"; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | *使用范例 | ||
+ | //调用showtableheader函数后直接调用该函数 | ||
+ | showtablefooter(); | ||
+ | |||
+ | |||
+ | == 控件显示函数(showseting) == | ||
+ | |||
+ | *函数原型 | ||
+ | |||
+ | <syntaxhighlight lang="php"> | ||
+ | function showsetting($setname, $varname, $value, $type = 'radio', $disabled = '', $hidden = 0, $comment = '', $extra = '', $setid = '') { | ||
+ | |||
+ | global $_G; | ||
+ | $s = "\n"; | ||
+ | $check = array(); | ||
+ | $check['disabled'] = $disabled ? ($disabled == 'readonly' ? ' readonly' : ' disabled') : ''; | ||
+ | $check['disabledaltstyle'] = $disabled ? ', 1' : ''; | ||
+ | |||
+ | $nocomment = false; | ||
+ | |||
+ | if(isset($_G['showsetting_multi'])) { | ||
+ | $hidden = 0; | ||
+ | if(is_array($varname)) { | ||
+ | $varnameid = '_'.str_replace(array('[', ']'), '_', $varname[0]).'|'.$_G['showsetting_multi']; | ||
+ | $varname[0] = preg_replace('/\w+new/', 'multinew['.$_G['showsetting_multi'].'][\\0]', $varname[0]); | ||
+ | } else { | ||
+ | $varnameid = '_'.str_replace(array('[', ']'), '_', $varname).'|'.$_G['showsetting_multi']; | ||
+ | $varname = preg_replace('/\w+new/', 'multinew['.$_G['showsetting_multi'].'][\\0]', $varname); | ||
+ | } | ||
+ | } else { | ||
+ | $varnameid = ''; | ||
+ | } | ||
+ | |||
+ | if($type == 'radio') { | ||
+ | $value ? $check['true'] = "checked" : $check['false'] = "checked"; | ||
+ | $value ? $check['false'] = '' : $check['true'] = ''; | ||
+ | $check['hidden1'] = $hidden ? ' onclick="$(\'hidden_'.$setname.'\').style.display = \'\';"' : ''; | ||
+ | $check['hidden0'] = $hidden ? ' onclick="$(\'hidden_'.$setname.'\').style.display = \'none\';"' : ''; | ||
+ | $onclick = $disabled && $disabled == 'readonly' ? ' onclick="return false"' : ''; | ||
+ | $s .= '<ul onmouseover="altStyle(this'.$check['disabledaltstyle'].');">'. | ||
+ | '<li'.($check['true'] ? ' class="checked"' : '').'><input class="radio" type="radio"'.($varnameid ? ' id="_v1_'.$varnameid.'"' : '').' name="'.$varname.'" value="1" '.$check['true'].$check['hidden1'].$check['disabled'].$onclick.'> '.cplang('yes').'</li>'. | ||
+ | '<li'.($check['false'] ? ' class="checked"' : '').'><input class="radio" type="radio"'.($varnameid ? ' id="_v0_'.$varnameid.'"' : '').' name="'.$varname.'" value="0" '.$check['false'].$check['hidden0'].$check['disabled'].$onclick.'> '.cplang('no').'</li>'. | ||
+ | '</ul>'; | ||
+ | } elseif($type == 'text' || $type == 'password' || $type == 'number') { | ||
+ | $s .= '<input name="'.$varname.'" value="'.dhtmlspecialchars($value).'" type="'.$type.'" class="txt" '.$check['disabled'].' '.$extra.' />'; | ||
+ | } elseif($type == 'file') { | ||
+ | $s .= '<input name="'.$varname.'" value="" type="file" class="txt uploadbtn marginbot" '.$check['disabled'].' '.$extra.' />'; | ||
+ | } elseif($type == 'filetext') { | ||
+ | $defaulttype = $value ? 1 : 0; | ||
+ | $id = 'file'.random(2); | ||
+ | $s .= '<input id="'.$id.'_0" style="display:'.($defaulttype ? 'none' : '').'" name="'.($defaulttype ? 'TMP' : '').$varname.'" value="" type="file" class="txt uploadbtn marginbot" '.$check['disabled'].' '.$extra.' />'. | ||
+ | '<input id="'.$id.'_1" style="display:'.(!$defaulttype ? 'none' : '').'" name="'.(!$defaulttype ? 'TMP' : '').$varname.'" value="'.dhtmlspecialchars($value).'" type="text" class="txt marginbot" '.$extra.' /><br />'. | ||
+ | '<a id="'.$id.'_0a" style="'.(!$defaulttype ? 'font-weight:bold' : '').'" href="javascript:;" onclick="$(\''.$id.'_1a\').style.fontWeight = \'\';this.style.fontWeight = \'bold\';$(\''.$id.'_1\').name = \'TMP'.$varname.'\';$(\''.$id.'_0\').name = \''.$varname.'\';$(\''.$id.'_0\').style.display = \'\';$(\''.$id.'_1\').style.display = \'none\'">'.cplang('switch_upload').'</a> '. | ||
+ | '<a id="'.$id.'_1a" style="'.($defaulttype ? 'font-weight:bold' : '').'" href="javascript:;" onclick="$(\''.$id.'_0a\').style.fontWeight = \'\';this.style.fontWeight = \'bold\';$(\''.$id.'_0\').name = \'TMP'.$varname.'\';$(\''.$id.'_1\').name = \''.$varname.'\';$(\''.$id.'_1\').style.display = \'\';$(\''.$id.'_0\').style.display = \'none\'">'.cplang('switch_url').'</a>'; | ||
+ | } elseif($type == 'textarea') { | ||
+ | $readonly = $disabled ? 'readonly' : ''; | ||
+ | $s .= "<textarea $readonly rows=\"6\" ".(!isset($_G['showsetting_multi']) ? "ondblclick=\"textareasize(this, 1)\"" : '')." onkeyup=\"textareasize(this, 0)\" name=\"$varname\" id=\"$varname\" cols=\"50\" class=\"tarea\" '.$extra.'>".dhtmlspecialchars($value)."</textarea>"; | ||
+ | } elseif($type == 'select') { | ||
+ | $s .= '<select name="'.$varname[0].'" '.$extra.'>'; | ||
+ | foreach($varname[1] as $option) { | ||
+ | $selected = $option[0] == $value ? 'selected="selected"' : ''; | ||
+ | if(empty($option[2])) { | ||
+ | $s .= "<option value=\"$option[0]\" $selected>".$option[1]."</option>\n"; | ||
+ | } else { | ||
+ | $s .= "<optgroup label=\"".$option[1]."\"></optgroup>\n"; | ||
+ | } | ||
+ | } | ||
+ | $s .= '</select>'; | ||
+ | } elseif($type == 'mradio' || $type == 'mradio2') { | ||
+ | $nocomment = $type == 'mradio2' && !isset($_G['showsetting_multi']) ? true : false; | ||
+ | $addstyle = $nocomment ? ' style="float: left; width: 18%"' : ''; | ||
+ | $ulstyle = $nocomment ? ' style="width: 830px"' : ''; | ||
+ | if(is_array($varname)) { | ||
+ | $radiocheck = array($value => ' checked'); | ||
+ | $s .= '<ul'.(empty($varname[2]) ? ' class="nofloat"' : '').' onmouseover="altStyle(this'.$check['disabledaltstyle'].');"'.$ulstyle.'>'; | ||
+ | foreach($varname[1] as $varary) { | ||
+ | if(is_array($varary) && !empty($varary)) { | ||
+ | $onclick = ''; | ||
+ | if(!isset($_G['showsetting_multi']) && !empty($varary[2])) { | ||
+ | foreach($varary[2] as $ctrlid => $display) { | ||
+ | $onclick .= '$(\''.$ctrlid.'\').style.display = \''.$display.'\';'; | ||
+ | } | ||
+ | } | ||
+ | $onclick && $onclick = ' onclick="'.$onclick.'"'; | ||
+ | $s .= '<li'.($radiocheck[$varary[0]] ? ' class="checked"' : '').$addstyle.'><input class="radio" type="radio"'.($varnameid ? ' id="_v'.md5($varary[0]).'_'.$varnameid.'"' : '').' name="'.$varname[0].'" value="'.$varary[0].'"'.$radiocheck[$varary[0]].$check['disabled'].$onclick.'> '.$varary[1].'</li>'; | ||
+ | } | ||
+ | } | ||
+ | $s .= '</ul>'; | ||
+ | } | ||
+ | } elseif($type == 'mcheckbox' || $type == 'mcheckbox2') { | ||
+ | $nocomment = $type != 'mcheckbox2' && count($varname[1]) > 3 && !isset($_G['showsetting_multi']) ? true : false; | ||
+ | $addstyle = $nocomment ? ' style="float: left; width: 18%"' : ''; | ||
+ | $ulstyle = $nocomment ? ' style="width: 830px"' : ''; | ||
+ | $s .= '<ul class="nofloat" onmouseover="altStyle(this'.$check['disabledaltstyle'].');"'.$ulstyle.'>'; | ||
+ | foreach($varname[1] as $varary) { | ||
+ | if(is_array($varary) && !empty($varary)) { | ||
+ | $onclick = !isset($_G['showsetting_multi']) && !empty($varary[2]) ? ' onclick="$(\''.$varary[2].'\').style.display = $(\''.$varary[2].'\').style.display == \'none\' ? \'\' : \'none\';"' : ''; | ||
+ | $checked = is_array($value) && in_array($varary[0], $value) ? ' checked' : ''; | ||
+ | $s .= '<li'.($checked ? ' class="checked"' : '').$addstyle.'><input class="checkbox" type="checkbox"'.($varnameid ? ' id="_v'.md5($varary[0]).'_'.$varnameid.'"' : '').' name="'.$varname[0].'[]" value="'.$varary[0].'"'.$checked.$check['disabled'].$onclick.'> '.$varary[1].'</li>'; | ||
+ | } | ||
+ | } | ||
+ | $s .= '</ul>'; | ||
+ | } elseif($type == 'binmcheckbox') { | ||
+ | $checkboxs = count($varname[1]); | ||
+ | $value = sprintf('%0'.$checkboxs.'b', $value);$i = 1; | ||
+ | $s .= '<ul class="nofloat" onmouseover="altStyle(this'.$check['disabledaltstyle'].');">'; | ||
+ | foreach($varname[1] as $key => $var) { | ||
+ | $s .= '<li'.($value{$checkboxs - $i} ? ' class="checked"' : '').'><input class="checkbox" type="checkbox"'.($varnameid ? ' id="_v'.md5($i).'_'.$varnameid.'"' : '').' name="'.$varname[0].'['.$i.']" value="1"'.($value{$checkboxs - $i} ? ' checked' : '').' '.(!empty($varname[2][$key]) ? $varname[2][$key] : '').'> '.$var.'</li>'; | ||
+ | $i++; | ||
+ | } | ||
+ | $s .= '</ul>'; | ||
+ | } elseif($type == 'omcheckbox') { | ||
+ | $nocomment = count($varname[1]) > 3 ? true : false; | ||
+ | $addstyle = $nocomment ? 'style="float: left; width: 18%"' : ''; | ||
+ | $ulstyle = $nocomment ? 'style="width: 830px"' : ''; | ||
+ | $s .= '<ul onmouseover="altStyle(this'.$check['disabledaltstyle'].');"'.(empty($varname[2]) ? ' class="nofloat"' : 'class="ckbox"').' '.$ulstyle.'>'; | ||
+ | foreach($varname[1] as $varary) { | ||
+ | if(is_array($varary) && !empty($varary)) { | ||
+ | $checked = is_array($value) && $value[$varary[0]] ? ' checked' : ''; | ||
+ | $s .= '<li'.($checked ? ' class="checked"' : '').' '.$addstyle.'><input class="checkbox" type="checkbox" name="'.$varname[0].'['.$varary[0].']" value="'.$varary[2].'"'.$checked.$check['disabled'].'> '.$varary[1].'</li>'; | ||
+ | } | ||
+ | } | ||
+ | $s .= '</ul>'; | ||
+ | } elseif($type == 'mselect') { | ||
+ | $s .= '<select name="'.$varname[0].'" multiple="multiple" size="10" '.$extra.'>'; | ||
+ | foreach($varname[1] as $option) { | ||
+ | $selected = is_array($value) && in_array($option[0], $value) ? 'selected="selected"' : ''; | ||
+ | if(empty($option[2])) { | ||
+ | $s .= "<option value=\"$option[0]\" $selected>".$option[1]."</option>\n"; | ||
+ | } else { | ||
+ | $s .= "<optgroup label=\"".$option[1]."\"></optgroup>\n"; | ||
+ | } | ||
+ | } | ||
+ | $s .= '</select>'; | ||
+ | } elseif($type == 'color') { | ||
+ | global $stylestuff; | ||
+ | $preview_varname = str_replace('[', '_', str_replace(']', '', $varname)); | ||
+ | $code = explode(' ', $value); | ||
+ | $css = ''; | ||
+ | for($i = 0; $i <= 1; $i++) { | ||
+ | if($code[$i] != '') { | ||
+ | if($code[$i]{0} == '#') { | ||
+ | $css .= strtoupper($code[$i]).' '; | ||
+ | } elseif(preg_match('/^http:\/\//i', $code[$i])) { | ||
+ | $css .= 'url(\''.$code[$i].'\') '; | ||
+ | } else { | ||
+ | $css .= 'url(\''.$stylestuff['imgdir']['subst'].'/'.$code[$i].'\') '; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | $background = trim($css); | ||
+ | $colorid = ++$GLOBALS['coloridcount']; | ||
+ | $s .= "<input id=\"c{$colorid}_v\" type=\"text\" class=\"txt\" style=\"float:left; width:210px;\" value=\"$value\" name=\"$varname\" onchange=\"updatecolorpreview('c{$colorid}')\">\n". | ||
+ | "<input id=\"c$colorid\" onclick=\"c{$colorid}_frame.location='static/image/admincp/getcolor.htm?c{$colorid}|c{$colorid}_v';showMenu({'ctrlid':'c$colorid'})\" type=\"button\" class=\"colorwd\" value=\"\" style=\"background: $background\"><span id=\"c{$colorid}_menu\" style=\"display: none\"><iframe name=\"c{$colorid}_frame\" src=\"\" frameborder=\"0\" width=\"210\" height=\"148\" scrolling=\"no\"></iframe></span>\n$extra"; | ||
+ | } elseif($type == 'calendar') { | ||
+ | $s .= "<input type=\"text\" class=\"txt\" name=\"$varname\" value=\"".dhtmlspecialchars($value)."\" onclick=\"showcalendar(event, this".($extra ? ', 1' : '').")\">\n"; | ||
+ | } elseif(in_array($type, array('multiply', 'range', 'daterange'))) { | ||
+ | $onclick = $type == 'daterange' ? ' onclick="showcalendar(event, this)"' : ''; | ||
+ | if(isset($_G['showsetting_multi'])) { | ||
+ | $varname[1] = preg_replace('/\w+new/', 'multinew['.$_G['showsetting_multi'].'][\\0]', $varname[1]); | ||
+ | } | ||
+ | $s .= "<input type=\"text\" class=\"txt\" name=\"$varname[0]\" value=\"".dhtmlspecialchars($value[0])."\" style=\"width: 108px; margin-right: 5px;\"$onclick>".($type == 'multiply' ? ' X ' : ' -- ')."<input type=\"text\" class=\"txt\" name=\"$varname[1]\" value=\"".dhtmlspecialchars($value[1])."\"class=\"txt\" style=\"width: 108px; margin-left: 5px;\"$onclick>"; | ||
+ | } else { | ||
+ | $s .= $type; | ||
+ | } | ||
+ | $name = cplang($setname); | ||
+ | $name .= $name && substr($name, -1) != ':' ? ':' : ''; | ||
+ | $name = $disabled ? '<span class="lightfont">'.$name.'</span>' : $name; | ||
+ | $setid = !$setid ? substr(md5($setname), 0, 4) : $setid; | ||
+ | $setid = isset($_G['showsetting_multi']) ? 'S'.$setid : $setid; | ||
+ | if(!empty($_G['showsetting_multirow'])) { | ||
+ | if(empty($_G['showsetting_multirow_n'])) { | ||
+ | echo '<tr>'; | ||
+ | } | ||
+ | echo '<td class="vtop rowform"><p class="td27m">'.$name.'</p>'.$s.'</td>'; | ||
+ | $_G['showsetting_multirow_n']++; | ||
+ | if($_G['showsetting_multirow_n'] == 2) { | ||
+ | if(empty($_G['showsetting_multirow_n'])) { | ||
+ | echo '</tr>'; | ||
+ | } | ||
+ | $_G['showsetting_multirow_n'] = 0; | ||
+ | } | ||
+ | return; | ||
+ | } | ||
+ | if(!isset($_G['showsetting_multi'])) { | ||
+ | $faqurl = 'http://faq.comsenz.com?type=admin&ver='.$_G['setting']['version'].'&action='.rawurlencode($_GET['action']).'&operation='.rawurlencode($_GET['operation']).'&key='.rawurlencode($setname); | ||
+ | showtablerow('onmouseover="setfaq(this, \'faq'.$setid.'\')"', 'colspan="2" class="td27" s="1"', $name.'<a id="faq'.$setid.'" class="faq" title="'.cplang('setting_faq_title').'" href="'.$faqurl.'" target="_blank" style="display:none"> </a>'); | ||
+ | } else { | ||
+ | if(empty($_G['showsetting_multijs'])) { | ||
+ | $_G['setting_JS'] .= 'var ss = new Array();'; | ||
+ | $_G['showsetting_multijs'] = 1; | ||
+ | } | ||
+ | if($_G['showsetting_multi'] == 0) { | ||
+ | showtablerow('', array('class="td27"'), array('<div id="D'.$setid.'"></div>')); | ||
+ | $_G['setting_JS'] .= 'ss[\'D'.$setid.'\'] = new Array();'; | ||
+ | } | ||
+ | $name = preg_replace("/\r\n|\n|\r/", '\n', addcslashes($name, "'\\")); | ||
+ | $_G['setting_JS'] .= 'ss[\'D'.$setid.'\'] += \'<div class="multicol">'.$name.'</div>\';'; | ||
+ | } | ||
+ | if(!$nocomment && ($type != 'omcheckbox' || $varname[2] != 'isfloat')) { | ||
+ | if(!isset($_G['showsetting_multi'])) { | ||
+ | showtablerow('class="noborder" onmouseover="setfaq(this, \'faq'.$setid.'\')"', array('class="vtop rowform"', 'class="vtop tips2" s="1"'), array( | ||
+ | $s, | ||
+ | ($comment ? $comment : cplang($setname.'_comment', false)).($type == 'textarea' ? '<br />'.cplang('tips_textarea') : ''). | ||
+ | ($disabled ? '<br /><span class="smalltxt" style="color:#F00">'.cplang($setname.'_disabled', false).'</span>' : NULL) | ||
+ | )); | ||
+ | } else { | ||
+ | if($_G['showsetting_multi'] == 0) { | ||
+ | showtablerow('class="noborder"', array('class="vtop rowform" style="width:auto"'), array( | ||
+ | '<div id="'.$setid.'"></div>' | ||
+ | )); | ||
+ | $_G['setting_JS'] .= 'ss[\''.$setid.'\'] = new Array();'; | ||
+ | } | ||
+ | $s = preg_replace("/\r\n|\n|\r/", '\n', addcslashes($s, "'\\")); | ||
+ | $_G['setting_JS'] .= 'ss[\''.$setid.'\'] += \'<div class="multicol">'.$s.'</div>\';'; | ||
+ | } | ||
+ | } else { | ||
+ | showtablerow('class="noborder" onmouseover="setfaq(this, \'faq'.$setid.'\')"', array('colspan="2" class="vtop rowform"'), array($s)); | ||
+ | } | ||
+ | |||
+ | if($hidden) { | ||
+ | showtagheader('tbody', 'hidden_'.$setname, $value, 'sub'); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | *参数说明 | ||
+ | $setname 控件标题 | ||
+ | $varname 控件NAME | ||
+ | $value 控件默认值,输入valua值 | ||
+ | $type 控件类型 | ||
+ | $disabled 是否隐藏 | ||
+ | $hidden 是否为隐藏域 | ||
+ | |||
+ | == 技巧提示显示函数(showtips) == | ||
+ | |||
+ | *函数原型 | ||
+ | <syntaxhighlight lang="php"> | ||
+ | function showtips($tips, $id = 'tips', $display = TRUE) { | ||
+ | $tips = cplang($tips); | ||
+ | $tips = preg_replace('#</li>\s*<li>#i', '</li><li>', $tips); | ||
+ | $tmp = explode('</li><li>', substr($tips, 4, -5)); | ||
+ | if(count($tmp) > 4) { | ||
+ | $tips = '<li>'.$tmp[0].'</li><li>'.$tmp[1].'</li><li id="'.$id.'_more" style="border: none; background: none; margin-bottom: 6px;"><a href="###" onclick="var tiplis = $(\''.$id.'lis\').getElementsByTagName(\'li\');for(var i = 0; i < tiplis.length; i++){tiplis[i].style.display=\'\'}$(\''.$id.'_more\').style.display=\'none\';">'.cplang('tips_all').'...</a></li>'; | ||
+ | foreach($tmp AS $k => $v) { | ||
+ | if($k > 1) { | ||
+ | $tips .= '<li style="display: none">'.$v.'</li>'; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | unset($tmp); | ||
+ | showtableheader('tips', '', 'id="'.$id.'"'.(!$display ? ' style="display: none;"' : ''), 0); | ||
+ | showtablerow('', 'class="tipsblock"', '<ul id="'.$id.'lis">'.$tips.'</ul>'); | ||
+ | showtablefooter(); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *参数解释 | ||
+ | $tips 提示的消息内容 | ||
+ | |||
+ | *使用范例 | ||
+ | showtips('settings_sms_tips'); |
2011-07-28T09:27:06的最后版本
discuzx 后台模块开发大多直接调用后台HTML函数输出,使用HTML输出函数更加方便快捷的构建一个后台WEB页面。
目录
- 函数原型
function shownav($header = '', $menu = '', $nav = '') { global $action, $operation; $title = 'cplog_'.$action.($operation ? '_'.$operation : ''); if(in_array($action, array('home', 'custommenu'))) { $customtitle = ''; } elseif(cplang($title, false)) { $customtitle = $title; } elseif(cplang('nav_'.($header ? $header : 'index'), false)) { $customtitle = 'nav_'.$header; } else { $customtitle = rawurlencode($nav ? $nav : ($menu ? $menu : '')); } $title = cplang('header_'.($header ? $header : 'index')).($menu ? ' » '.cplang($menu) : '').($nav ? ' » '.cplang($nav) : ''); $ctitle = cplang('header_'.($header ? $header : 'index')); if($menu) { $ctitle = cplang($menu); } if($nav) { $ctitle = cplang($nav); } $addtomenu = " <a target=\"main\" title=\"".cplang('custommenu_addto')."\" href=\"".ADMINSCRIPT."?action=misc&operation=custommenu&do=add&title=".rawurlencode($ctitle)."&url=".rawurlencode(cpurl())."\">[+]</a>"; $dtitle = str_replace("'", "\'", cplang('admincp_title').' - '.str_replace(' » ', ' - ', $title)); echo '<script type="text/JavaScript">parent.document.title = \''.$dtitle.'\';if(parent.$(\'admincpnav\')) parent.$(\'admincpnav\').innerHTML=\''.$title.$addtomenu.'\';</script>'; }
- 参数解释
$header 导航模块名 $menu 菜单 $nav 当前导航名
- 使用范例
//品网后台导航显示 shownav('pages', 'menu_pages_sortoption');
- 函数原型
function showsubmenu($title, $menus = array(), $right = '', $replace = array()) { if(empty($menus)) { $s = '<div class="itemtitle">'.$right.'<h3>'.cplang($title, $replace).'</h3></div>'; } elseif(is_array($menus)) { $s = '<div class="itemtitle">'.$right.'<h3>'.cplang($title, $replace).'</h3>'; if(is_array($menus)) { $s .= '<ul class="tab1">'; foreach($menus as $k => $menu) { if(is_array($menu[0])) { $s .= '<li id="addjs'.$k.'" class="'.($menu[1] ? 'current' : 'hasdropmenu').'" onmouseover="dropmenu(this);"><a href="#"><span>'.cplang($menu[0]['menu']).'<em> </em></span></a><div id="addjs'.$k.'child" class="dropmenu" style="display:none;">'; if(is_array($menu[0]['submenu'])) { foreach($menu[0]['submenu'] as $submenu) { $s .= $submenu[1] ? '<a href="'.ADMINSCRIPT.'?action='.$submenu[1].'" class="'.($submenu[2] ? 'current' : '').'" onclick="'.$submenu[3].'">'.cplang($submenu[0]).'</a>' : '<a><b>'.cplang($submenu[0]).'</b></a>'; } } $s .= '</div></li>'; } else { $s .= '<li'.($menu[2] ? ' class="current"' : '').'><a href="'.(!$menu[4] ? ADMINSCRIPT.'?action='.$menu[1] : $menu[1]).'"'.(!empty($menu[3]) ? ' target="_blank"' : '').'><span>'.cplang($menu[0]).'</span></a></li>'; } } $s .= '</ul>'; } $s .= '</div>'; } echo !empty($menus) ? '<div class="floattop">'.$s.'</div><div class="floattopempty"></div>' : $s; }
- 参数解释
$title 二级导航标题 $menus 展示的二级菜单(数组)
- 使用范例
showsubmenu('menu_pages_sortoption');
表单头示函数(showformheader)
- 函数原型
function showformheader($action, $extra = '', $name = 'cpform', $method = 'post') { global $_G; $anchor = isset($_G['gp_anchor']) ? htmlspecialchars($_G['gp_anchor']) : ''; echo '<form name="'.$name.'" method="'.$method.'" autocomplete="off" action="'.ADMINSCRIPT.'?action='.$action.'" id="'.$name.'"'.($extra == 'enctype' ? ' enctype="multipart/form-data"' : " $extra").'>'. '<input type="hidden" name="formhash" value="'.FORMHASH.'" />'. '<input type="hidden" id="formscrolltop" name="scrolltop" value="" />'. '<input type="hidden" name="anchor" value="'.$anchor.'" />'; }
- 参数解释
$action 提交页面地址 $extra 表单编码方式指定 $name 表单名称 $method 表单提交方式 例如 post,get 等
- 使用范例
showformheader('pages&operation=sort&do='.$do);
- 函数原型
function showformfooter() { global $_G; if(!empty($_G['setting_JS'])) { echo '<script type="text/JavaScript">'.$_G['setting_JS'].'</script>'; } updatesession(); echo '</form>'."\n"; if($scrolltop = intval(getgpc('scrolltop'))) { echo '<script type="text/JavaScript">_attachEvent(window, \'load\', function () { scroll(0,'.$scrolltop.') }, document);</script>'; } }
- 使用范例
//调用表单内容输出完毕后直接调用这个参数即可 showformfooter()
按钮显示函数(showsubmit)
- 函数原型
function showsubmit($name = '', $value = 'submit', $before = '', $after = '', $floatright = '', $entersubmit = true) { global $_G; if(!empty($_G['showsetting_multi'])) { return; } $str = '<tr>'; $str .= $name && in_array($before, array('del', 'select_all', 'td')) ? '<td class="td25">'.($before != 'td' ? '<input type="checkbox" name="chkall" id="chkall'.($chkkallid = random(4)).'" class="checkbox" onclick="checkAll(\'prefix\', this.form, \'delete\')" /><label for="chkall'.$chkkallid.'">'.cplang($before) : '').'</label></td>' : ''; $str .= '<td colspan="15">'; $str .= $floatright ? '<div class="cuspages right">'.$floatright.'</div>' : ''; $str .= '<div class="fixsel">'; $str .= $before && !in_array($before, array('del', 'select_all', 'td')) ? $before.' ' : ''; $str .= $name ? '<input type="submit" class="btn" id="submit_'.$name.'" name="'.$name.'" title="'.($entersubmit ? cplang('submit_tips') : '').'" value="'.cplang($value).'" />' : ''; $after = $after == 'more_options' ? '<input class="checkbox" type="checkbox" value="1" onclick="$(\'advanceoption\').style.display = $(\'advanceoption\').style.display == \'none\' ? \'\' : \'none\'; this.value = this.value == 1 ? 0 : 1; this.checked = this.value == 1 ? false : true" id="btn_more" /><label for="btn_more">'.cplang('more_options').'</label>' : $after; $str = $after ? $str.(($before && $before != 'del') || $name ? ' ' : '').$after : $str; $str .= '</div></td>'; $str .= '</tr>'; echo $str.($name && $entersubmit ? '<script type="text/JavaScript">_attachEvent(document.documentElement, \'keydown\', function (e) { entersubmit(e, \''.$name.'\'); });</script>' : ''); }
- 参数解释
$name 按钮名称 $value 按钮值
- 使用范例
showsubmit('editsubmit');
折叠式表单显示函数(showpages)
- 函数原型
function showpages(&$cate, $type = '', $last = '') { if($last == '') { $return = '<tr class="hover"><td class="td25"><input type="checkbox" class="checkbox" name="delete[]" value="'.$cate['sortid'].'" /></td><td class="td25"><input type="text" class="txt" name="order['.$cate['sortid'].']" value="'.$cate['displayorder'].'" /></td><td>'; if($type == 'parent') { $return .= '<div class="parentboard">'; } elseif($type == '') { $return .= '<div class="board">'; } elseif($type == 'child') { $return .= '<div id="cb_'.$cate['sortid'].'" class="childboard">'; } $return .= '<input type="text" name="name['.$cate['sortid'].']" value="'.htmlspecialchars($cate['title']).'" class="txt" />'; $return .= '</div></td></tr>'; } else { if($last == 'lastboard') { $return = '<tr><td></td><td colspan="3"><div class="lastboard"><a href="###" onclick="addrow(this, 1, '.$cate['sortid'].')" class="addtr">'.cplang('add_parentsort').'</a></div></td></tr>'; } elseif($last == 'lastchildboard' && $type) { $return = '<script type="text/JavaScript">$(\'cb_'.$type.'\').className = \'lastchildboard\';</script>'; } elseif($last == 'last') { $return = '<tr><td colspan="3"><div><a href="###" onclick="addrow(this, 0)" class="addtr">'.cplang('add_sort').'</a></div></td></tr>'; } } echo $return; }
- 参数解析
表格头显示函数(showtableheader)
- 函数原型
function showtableheader($title = '', $classname = '', $extra = '', $titlespan = 15) { global $_G; $classname = str_replace(array('nobottom', 'notop'), array('nobdb', 'nobdt'), $classname); if(isset($_G['showsetting_multi'])) { if($_G['showsetting_multi'] == 0) { $extra .= ' style="width:'.($_G['showsetting_multicount'] * 270 + 20).'px"'; } else { return; } } echo "\n".'<table class="tb tb2 '.$classname.'"'.($extra ? " $extra" : '').'>'; if($title) { $span = $titlespan ? 'colspan="'.$titlespan.'"' : ''; echo "\n".'<tr><th '.$span.' class="partition">'.cplang($title).'</th></tr>'; showmultititle(); } }
- 参数解释
$title 表格标题 $classname 表格样式名 $extra 表格大小参数 $titlespan 表格列数
- 使用范例
showtableheader('admin', 'fixpadding');
- 函数原型
function showtablefooter() { global $_G; if(!empty($_G['showsetting_multi'])) { return; } echo '</table>'."\n"; }
- 使用范例
//调用showtableheader函数后直接调用该函数 showtablefooter();
控件显示函数(showseting)
- 函数原型
function showsetting($setname, $varname, $value, $type = 'radio', $disabled = '', $hidden = 0, $comment = '', $extra = '', $setid = '') { global $_G; $s = "\n"; $check = array(); $check['disabled'] = $disabled ? ($disabled == 'readonly' ? ' readonly' : ' disabled') : ''; $check['disabledaltstyle'] = $disabled ? ', 1' : ''; $nocomment = false; if(isset($_G['showsetting_multi'])) { $hidden = 0; if(is_array($varname)) { $varnameid = '_'.str_replace(array('[', ']'), '_', $varname[0]).'|'.$_G['showsetting_multi']; $varname[0] = preg_replace('/\w+new/', 'multinew['.$_G['showsetting_multi'].'][\\0]', $varname[0]); } else { $varnameid = '_'.str_replace(array('[', ']'), '_', $varname).'|'.$_G['showsetting_multi']; $varname = preg_replace('/\w+new/', 'multinew['.$_G['showsetting_multi'].'][\\0]', $varname); } } else { $varnameid = ''; } if($type == 'radio') { $value ? $check['true'] = "checked" : $check['false'] = "checked"; $value ? $check['false'] = '' : $check['true'] = ''; $check['hidden1'] = $hidden ? ' onclick="$(\'hidden_'.$setname.'\').style.display = \'\';"' : ''; $check['hidden0'] = $hidden ? ' onclick="$(\'hidden_'.$setname.'\').style.display = \'none\';"' : ''; $onclick = $disabled && $disabled == 'readonly' ? ' onclick="return false"' : ''; $s .= '<ul onmouseover="altStyle(this'.$check['disabledaltstyle'].');">'. '<li'.($check['true'] ? ' class="checked"' : '').'><input class="radio" type="radio"'.($varnameid ? ' id="_v1_'.$varnameid.'"' : '').' name="'.$varname.'" value="1" '.$check['true'].$check['hidden1'].$check['disabled'].$onclick.'> '.cplang('yes').'</li>'. '<li'.($check['false'] ? ' class="checked"' : '').'><input class="radio" type="radio"'.($varnameid ? ' id="_v0_'.$varnameid.'"' : '').' name="'.$varname.'" value="0" '.$check['false'].$check['hidden0'].$check['disabled'].$onclick.'> '.cplang('no').'</li>'. '</ul>'; } elseif($type == 'text' || $type == 'password' || $type == 'number') { $s .= '<input name="'.$varname.'" value="'.dhtmlspecialchars($value).'" type="'.$type.'" class="txt" '.$check['disabled'].' '.$extra.' />'; } elseif($type == 'file') { $s .= '<input name="'.$varname.'" value="" type="file" class="txt uploadbtn marginbot" '.$check['disabled'].' '.$extra.' />'; } elseif($type == 'filetext') { $defaulttype = $value ? 1 : 0; $id = 'file'.random(2); $s .= '<input id="'.$id.'_0" style="display:'.($defaulttype ? 'none' : '').'" name="'.($defaulttype ? 'TMP' : '').$varname.'" value="" type="file" class="txt uploadbtn marginbot" '.$check['disabled'].' '.$extra.' />'. '<input id="'.$id.'_1" style="display:'.(!$defaulttype ? 'none' : '').'" name="'.(!$defaulttype ? 'TMP' : '').$varname.'" value="'.dhtmlspecialchars($value).'" type="text" class="txt marginbot" '.$extra.' /><br />'. '<a id="'.$id.'_0a" style="'.(!$defaulttype ? 'font-weight:bold' : '').'" href="javascript:;" onclick="$(\''.$id.'_1a\').style.fontWeight = \'\';this.style.fontWeight = \'bold\';$(\''.$id.'_1\').name = \'TMP'.$varname.'\';$(\''.$id.'_0\').name = \''.$varname.'\';$(\''.$id.'_0\').style.display = \'\';$(\''.$id.'_1\').style.display = \'none\'">'.cplang('switch_upload').'</a> '. '<a id="'.$id.'_1a" style="'.($defaulttype ? 'font-weight:bold' : '').'" href="javascript:;" onclick="$(\''.$id.'_0a\').style.fontWeight = \'\';this.style.fontWeight = \'bold\';$(\''.$id.'_0\').name = \'TMP'.$varname.'\';$(\''.$id.'_1\').name = \''.$varname.'\';$(\''.$id.'_1\').style.display = \'\';$(\''.$id.'_0\').style.display = \'none\'">'.cplang('switch_url').'</a>'; } elseif($type == 'textarea') { $readonly = $disabled ? 'readonly' : ''; $s .= "<textarea $readonly rows=\"6\" ".(!isset($_G['showsetting_multi']) ? "ondblclick=\"textareasize(this, 1)\"" : '')." onkeyup=\"textareasize(this, 0)\" name=\"$varname\" id=\"$varname\" cols=\"50\" class=\"tarea\" '.$extra.'>".dhtmlspecialchars($value)."</textarea>"; } elseif($type == 'select') { $s .= '<select name="'.$varname[0].'" '.$extra.'>'; foreach($varname[1] as $option) { $selected = $option[0] == $value ? 'selected="selected"' : ''; if(empty($option[2])) { $s .= "<option value=\"$option[0]\" $selected>".$option[1]."</option>\n"; } else { $s .= "<optgroup label=\"".$option[1]."\"></optgroup>\n"; } } $s .= '</select>'; } elseif($type == 'mradio' || $type == 'mradio2') { $nocomment = $type == 'mradio2' && !isset($_G['showsetting_multi']) ? true : false; $addstyle = $nocomment ? ' style="float: left; width: 18%"' : ''; $ulstyle = $nocomment ? ' style="width: 830px"' : ''; if(is_array($varname)) { $radiocheck = array($value => ' checked'); $s .= '<ul'.(empty($varname[2]) ? ' class="nofloat"' : '').' onmouseover="altStyle(this'.$check['disabledaltstyle'].');"'.$ulstyle.'>'; foreach($varname[1] as $varary) { if(is_array($varary) && !empty($varary)) { $onclick = ''; if(!isset($_G['showsetting_multi']) && !empty($varary[2])) { foreach($varary[2] as $ctrlid => $display) { $onclick .= '$(\''.$ctrlid.'\').style.display = \''.$display.'\';'; } } $onclick && $onclick = ' onclick="'.$onclick.'"'; $s .= '<li'.($radiocheck[$varary[0]] ? ' class="checked"' : '').$addstyle.'><input class="radio" type="radio"'.($varnameid ? ' id="_v'.md5($varary[0]).'_'.$varnameid.'"' : '').' name="'.$varname[0].'" value="'.$varary[0].'"'.$radiocheck[$varary[0]].$check['disabled'].$onclick.'> '.$varary[1].'</li>'; } } $s .= '</ul>'; } } elseif($type == 'mcheckbox' || $type == 'mcheckbox2') { $nocomment = $type != 'mcheckbox2' && count($varname[1]) > 3 && !isset($_G['showsetting_multi']) ? true : false; $addstyle = $nocomment ? ' style="float: left; width: 18%"' : ''; $ulstyle = $nocomment ? ' style="width: 830px"' : ''; $s .= '<ul class="nofloat" onmouseover="altStyle(this'.$check['disabledaltstyle'].');"'.$ulstyle.'>'; foreach($varname[1] as $varary) { if(is_array($varary) && !empty($varary)) { $onclick = !isset($_G['showsetting_multi']) && !empty($varary[2]) ? ' onclick="$(\''.$varary[2].'\').style.display = $(\''.$varary[2].'\').style.display == \'none\' ? \'\' : \'none\';"' : ''; $checked = is_array($value) && in_array($varary[0], $value) ? ' checked' : ''; $s .= '<li'.($checked ? ' class="checked"' : '').$addstyle.'><input class="checkbox" type="checkbox"'.($varnameid ? ' id="_v'.md5($varary[0]).'_'.$varnameid.'"' : '').' name="'.$varname[0].'[]" value="'.$varary[0].'"'.$checked.$check['disabled'].$onclick.'> '.$varary[1].'</li>'; } } $s .= '</ul>'; } elseif($type == 'binmcheckbox') { $checkboxs = count($varname[1]); $value = sprintf('%0'.$checkboxs.'b', $value);$i = 1; $s .= '<ul class="nofloat" onmouseover="altStyle(this'.$check['disabledaltstyle'].');">'; foreach($varname[1] as $key => $var) { $s .= '<li'.($value{$checkboxs - $i} ? ' class="checked"' : '').'><input class="checkbox" type="checkbox"'.($varnameid ? ' id="_v'.md5($i).'_'.$varnameid.'"' : '').' name="'.$varname[0].'['.$i.']" value="1"'.($value{$checkboxs - $i} ? ' checked' : '').' '.(!empty($varname[2][$key]) ? $varname[2][$key] : '').'> '.$var.'</li>'; $i++; } $s .= '</ul>'; } elseif($type == 'omcheckbox') { $nocomment = count($varname[1]) > 3 ? true : false; $addstyle = $nocomment ? 'style="float: left; width: 18%"' : ''; $ulstyle = $nocomment ? 'style="width: 830px"' : ''; $s .= '<ul onmouseover="altStyle(this'.$check['disabledaltstyle'].');"'.(empty($varname[2]) ? ' class="nofloat"' : 'class="ckbox"').' '.$ulstyle.'>'; foreach($varname[1] as $varary) { if(is_array($varary) && !empty($varary)) { $checked = is_array($value) && $value[$varary[0]] ? ' checked' : ''; $s .= '<li'.($checked ? ' class="checked"' : '').' '.$addstyle.'><input class="checkbox" type="checkbox" name="'.$varname[0].'['.$varary[0].']" value="'.$varary[2].'"'.$checked.$check['disabled'].'> '.$varary[1].'</li>'; } } $s .= '</ul>'; } elseif($type == 'mselect') { $s .= '<select name="'.$varname[0].'" multiple="multiple" size="10" '.$extra.'>'; foreach($varname[1] as $option) { $selected = is_array($value) && in_array($option[0], $value) ? 'selected="selected"' : ''; if(empty($option[2])) { $s .= "<option value=\"$option[0]\" $selected>".$option[1]."</option>\n"; } else { $s .= "<optgroup label=\"".$option[1]."\"></optgroup>\n"; } } $s .= '</select>'; } elseif($type == 'color') { global $stylestuff; $preview_varname = str_replace('[', '_', str_replace(']', '', $varname)); $code = explode(' ', $value); $css = ''; for($i = 0; $i <= 1; $i++) { if($code[$i] != '') { if($code[$i]{0} == '#') { $css .= strtoupper($code[$i]).' '; } elseif(preg_match('/^http:\/\//i', $code[$i])) { $css .= 'url(\''.$code[$i].'\') '; } else { $css .= 'url(\''.$stylestuff['imgdir']['subst'].'/'.$code[$i].'\') '; } } } $background = trim($css); $colorid = ++$GLOBALS['coloridcount']; $s .= "<input id=\"c{$colorid}_v\" type=\"text\" class=\"txt\" style=\"float:left; width:210px;\" value=\"$value\" name=\"$varname\" onchange=\"updatecolorpreview('c{$colorid}')\">\n". "<input id=\"c$colorid\" onclick=\"c{$colorid}_frame.location='static/image/admincp/getcolor.htm?c{$colorid}|c{$colorid}_v';showMenu({'ctrlid':'c$colorid'})\" type=\"button\" class=\"colorwd\" value=\"\" style=\"background: $background\"><span id=\"c{$colorid}_menu\" style=\"display: none\"><iframe name=\"c{$colorid}_frame\" src=\"\" frameborder=\"0\" width=\"210\" height=\"148\" scrolling=\"no\"></iframe></span>\n$extra"; } elseif($type == 'calendar') { $s .= "<input type=\"text\" class=\"txt\" name=\"$varname\" value=\"".dhtmlspecialchars($value)."\" onclick=\"showcalendar(event, this".($extra ? ', 1' : '').")\">\n"; } elseif(in_array($type, array('multiply', 'range', 'daterange'))) { $onclick = $type == 'daterange' ? ' onclick="showcalendar(event, this)"' : ''; if(isset($_G['showsetting_multi'])) { $varname[1] = preg_replace('/\w+new/', 'multinew['.$_G['showsetting_multi'].'][\\0]', $varname[1]); } $s .= "<input type=\"text\" class=\"txt\" name=\"$varname[0]\" value=\"".dhtmlspecialchars($value[0])."\" style=\"width: 108px; margin-right: 5px;\"$onclick>".($type == 'multiply' ? ' X ' : ' -- ')."<input type=\"text\" class=\"txt\" name=\"$varname[1]\" value=\"".dhtmlspecialchars($value[1])."\"class=\"txt\" style=\"width: 108px; margin-left: 5px;\"$onclick>"; } else { $s .= $type; } $name = cplang($setname); $name .= $name && substr($name, -1) != ':' ? ':' : ''; $name = $disabled ? '<span class="lightfont">'.$name.'</span>' : $name; $setid = !$setid ? substr(md5($setname), 0, 4) : $setid; $setid = isset($_G['showsetting_multi']) ? 'S'.$setid : $setid; if(!empty($_G['showsetting_multirow'])) { if(empty($_G['showsetting_multirow_n'])) { echo '<tr>'; } echo '<td class="vtop rowform"><p class="td27m">'.$name.'</p>'.$s.'</td>'; $_G['showsetting_multirow_n']++; if($_G['showsetting_multirow_n'] == 2) { if(empty($_G['showsetting_multirow_n'])) { echo '</tr>'; } $_G['showsetting_multirow_n'] = 0; } return; } if(!isset($_G['showsetting_multi'])) { $faqurl = 'http://faq.comsenz.com?type=admin&ver='.$_G['setting']['version'].'&action='.rawurlencode($_GET['action']).'&operation='.rawurlencode($_GET['operation']).'&key='.rawurlencode($setname); showtablerow('onmouseover="setfaq(this, \'faq'.$setid.'\')"', 'colspan="2" class="td27" s="1"', $name.'<a id="faq'.$setid.'" class="faq" title="'.cplang('setting_faq_title').'" href="'.$faqurl.'" target="_blank" style="display:none"> </a>'); } else { if(empty($_G['showsetting_multijs'])) { $_G['setting_JS'] .= 'var ss = new Array();'; $_G['showsetting_multijs'] = 1; } if($_G['showsetting_multi'] == 0) { showtablerow('', array('class="td27"'), array('<div id="D'.$setid.'"></div>')); $_G['setting_JS'] .= 'ss[\'D'.$setid.'\'] = new Array();'; } $name = preg_replace("/\r\n|\n|\r/", '\n', addcslashes($name, "'\\")); $_G['setting_JS'] .= 'ss[\'D'.$setid.'\'] += \'<div class="multicol">'.$name.'</div>\';'; } if(!$nocomment && ($type != 'omcheckbox' || $varname[2] != 'isfloat')) { if(!isset($_G['showsetting_multi'])) { showtablerow('class="noborder" onmouseover="setfaq(this, \'faq'.$setid.'\')"', array('class="vtop rowform"', 'class="vtop tips2" s="1"'), array( $s, ($comment ? $comment : cplang($setname.'_comment', false)).($type == 'textarea' ? '<br />'.cplang('tips_textarea') : ''). ($disabled ? '<br /><span class="smalltxt" style="color:#F00">'.cplang($setname.'_disabled', false).'</span>' : NULL) )); } else { if($_G['showsetting_multi'] == 0) { showtablerow('class="noborder"', array('class="vtop rowform" style="width:auto"'), array( '<div id="'.$setid.'"></div>' )); $_G['setting_JS'] .= 'ss[\''.$setid.'\'] = new Array();'; } $s = preg_replace("/\r\n|\n|\r/", '\n', addcslashes($s, "'\\")); $_G['setting_JS'] .= 'ss[\''.$setid.'\'] += \'<div class="multicol">'.$s.'</div>\';'; } } else { showtablerow('class="noborder" onmouseover="setfaq(this, \'faq'.$setid.'\')"', array('colspan="2" class="vtop rowform"'), array($s)); } if($hidden) { showtagheader('tbody', 'hidden_'.$setname, $value, 'sub'); } }
- 参数说明
$setname 控件标题 $varname 控件NAME $value 控件默认值,输入valua值 $type 控件类型 $disabled 是否隐藏 $hidden 是否为隐藏域
技巧提示显示函数(showtips)
- 函数原型
function showtips($tips, $id = 'tips', $display = TRUE) { $tips = cplang($tips); $tips = preg_replace('#</li>\s*<li>#i', '</li><li>', $tips); $tmp = explode('</li><li>', substr($tips, 4, -5)); if(count($tmp) > 4) { $tips = '<li>'.$tmp[0].'</li><li>'.$tmp[1].'</li><li id="'.$id.'_more" style="border: none; background: none; margin-bottom: 6px;"><a href="###" onclick="var tiplis = $(\''.$id.'lis\').getElementsByTagName(\'li\');for(var i = 0; i < tiplis.length; i++){tiplis[i].style.display=\'\'}$(\''.$id.'_more\').style.display=\'none\';">'.cplang('tips_all').'...</a></li>'; foreach($tmp AS $k => $v) { if($k > 1) { $tips .= '<li style="display: none">'.$v.'</li>'; } } } unset($tmp); showtableheader('tips', '', 'id="'.$id.'"'.(!$display ? ' style="display: none;"' : ''), 0); showtablerow('', 'class="tipsblock"', '<ul id="'.$id.'lis">'.$tips.'</ul>'); showtablefooter(); }
- 参数解释
$tips 提示的消息内容
- 使用范例
showtips('settings_sms_tips');