“Discuz!X/后台HTML显示函数”的版本间的差异

来自Blueidea
跳转至: 导航搜索
 
(未显示同一用户的15个中间版本)
第82行: 第82行:
 
*使用范例
 
*使用范例
 
  showsubmenu('menu_pages_sortoption');
 
  showsubmenu('menu_pages_sortoption');
 +
 +
 +
== 表单头示函数(showformheader) ==
 +
 +
*函数原型
 +
<syntaxhighlight lang="php">
 +
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.'" />';
 +
}
 +
</syntaxhighlight>
 +
*参数解释
 +
$action 提交页面地址
 +
$extra 表单编码方式指定
 +
$name 表单名称
 +
$method 表单提交方式 例如 post,get 等
 +
*使用范例
 +
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.' &nbsp;' : '';
 +
$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 ? ' &nbsp;' : '').$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.'>&nbsp;'.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.'>&nbsp;'.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>&nbsp;'.
 +
'<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.'>&nbsp;'.$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.'>&nbsp;'.$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] : '').'>&nbsp;'.$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'].'>&nbsp;'.$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">&nbsp;&nbsp;&nbsp;</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页面。


导航显示函数(shownav)

  • 函数原型
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 ? '&nbsp;&raquo;&nbsp;'.cplang($menu) : '').($nav ? '&nbsp;&raquo;&nbsp;'.cplang($nav) : '');
	$ctitle = cplang('header_'.($header ? $header : 'index'));
	if($menu) {
		$ctitle = cplang($menu);
	}
	if($nav) {
		$ctitle = cplang($nav);
	}
	$addtomenu = "&nbsp;&nbsp;<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('&nbsp;&raquo;&nbsp;', ' - ', $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');


子菜单显示函数(showsubmenu)

  • 函数原型
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>&nbsp;&nbsp;</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);

表单结尾标签显示函数(showformfooter)

  • 函数原型
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.' &nbsp;' : '';
	$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 ? ' &nbsp;' : '').$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');


表格结束显示函数(showtablefooter)

  • 函数原型
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.'>&nbsp;'.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.'>&nbsp;'.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>&nbsp;'.
			'<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.'>&nbsp;'.$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.'>&nbsp;'.$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] : '').'>&nbsp;'.$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'].'>&nbsp;'.$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">&nbsp;&nbsp;&nbsp;</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');