您的位置:首页 > 产品设计 > UI/UE

discuz学习笔记:以easyUI DataGrid为前台进行数据库增查删改操作

2016-12-20 19:33 489 查看
    编辑和新增记录的过程,本来想从前台直接向discuz后台传送json格式表单数据,发现discuz的安全过滤十分严格,直接屏蔽了。所以只能以普通方式提交表单数据。

  


\bgtj_crud.php

<?php

/**
*      [Discuz!] (C)2001-2099 Comsenz Inc.
*      This is NOT a freeware, use is subject to license terms
*
*      $Id: bgtj.php  cuibq $
*/

define('APPTYPEID', 101);
define('CURSCRIPT', 'bgtj');

require './source/class/class_core.php';

$discuz = C::app();

$discuz->reject_robot();
$modarray = array('bgtj', 'bgtj_crud');

$mod = getgpc('mod');
$mod = (empty($mod) || !in_array($mod, $modarray)) ? 'error' : $mod;

$discuz->init();

define('CURMODULE', $mod);

require DISCUZ_ROOT.'./source/module/cat/bgtj_pub_crud.php';
//include_once template("cat/bgtj_publish");
?>


\source\class\table\table_bgtj.php

<?php

/**
*      [Discuz!] (C)2001-2099 Comsenz Inc.
*      This is NOT a freeware, use is subject to license terms
*      工业产品表
*      $Id: table_gycp.php
*/

if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}

class table_bgtj extends discuz_table
{
public function __construct() {

$this->_table = 'bgtj';
$this->_pk    = 'id';

parent::__construct();
}

public function fetch_all_by_displayorder() {
return DB::fetch_all('SELECT * FROM %t ORDER BY id ASC', array($this->_table), $this->_pk);
}

public function fetch_all_by_sql($start, $limit) {
return DB::fetch_all('SELECT * FROM %t ORDER BY id ASC'.DB::limit($start, $limit), array($this->_table), $this->_pk);
}

//返回json格式数据
public function fetch_json_by_sql($start, $limit) {
$query = DB::query('SELECT * FROM %t ORDER BY id ASC'.DB::limit($start, $limit), array($this->_table), $this->_pk);

$result = array();

// 记录数量
$row = DB::fetch_first('SELECT count(*) as cnt FROM %t ', array($this->_table), $this->_pk); //所有记录数量
$result["total"] = intval($row['cnt']);

while($data = DB::fetch($query)){
$list[] = array(
'ID' => $data['ID'],
'XH' => $data['XH'],
'WT' => urlencode($data['WT']),
'DA' => urlencode($data['DA'])
);
}
$result["rows"] = $list;

return urldecode(json_encode($result));
}

//public function fetch_by_id_username($id, $username, $adminid = 1) {
//return DB::fetch_first('SELECT * FROM %t WHERE id=%d', array($this->_table, $id, $adminid, $username));
//}

// 根据id删除一条记录
public function delete_by_id($id) {

$delcnt = DB::delete($this->_table, DB::field($this->_pk, $id)); // 返回删除记录数量,若为0表示删除失败

if ($delcnt == 0) {
$arr = array ('msg' => 'wrong!', 'success' => false);
}
else {
$arr = array ('msg' => 'ok!', 'success' => true);
}

return urldecode(json_encode($arr));

}

// 根据id 编辑一条数据
public function update_by_id($ID, $form_data) {

$ret = DB::update($this->_table, $form_data,  "ID=$ID");

$logfile = fopen("log.txt", "w") or die("Unable to open file!");
fwrite($logfile, 'ret:'.$ret);
fclose($logfile);

if ($ret == 0) {
$arr = array ('msg' => 'wrong!', 'success' => false);
}
else {
$arr = array ('msg' => 'ok!', 'success' => true);
}

return urldecode(json_encode($arr));

}

// 插入一条数据
public function insert_data($form_data, $return_insert_id, $replace, $silent) {

$ret = DB::insert($this->_table, $form_data, $return_insert_id, $replace, $silent);

$logfile = fopen("log.txt", "w") or die("Unable to open file!");
fwrite($logfile, 'ins result:'.$ret);
fclose($logfile);

if ($ret == 0) {
$arr = array ('msg' => 'wrong!', 'success' => false);
}
else {
$arr = array ('msg' => 'ok!', 'success' => true);
}

return urldecode(json_encode($arr));

}

//public function delete_by_ids($ids, $adminid = 1) {
//if(($ids = dintval((array)$ids, true))) {
//DB::query('DELETE FROM %t WHERE id IN(%n)', array($this->_table, $ids), false, true);
//}
//}

//public function update_displayorder_by_id_username($id, $displayorder, $username, $adminid = 1) {
//if(($id = dintval((array)$id, true))) {
//DB::query('UPDATE %t SET displayorder=%d WHERE id IN(%n)', array($this->_table, $displayorder, $id, $adminid, $username), false, true);
//}
//}

//public function update_by_id_username($id, $data, $username, $adminid = 1) {
//if(($id = dintval($id, true)) && $data && is_array($data)) {
//$adminid = dintval($adminid);
//DB::update($this->_table, $data, DB::field($this->_pk, $id).')', true);
//}
//}

}

?>


\source\module\cat\bgtj_pub_crud.php

<?php
// mod文件只能被入口文件引用,不能直接访问
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}

require_once libfile('function/discuzcode');

// -------------------------------------------
// 分页
require_once libfile('function/home');

$perpage = empty($_GET['rows'])?0:intval($_GET['rows']);//页码
$perpage = mob_perpage($perpage);

$page = empty($_GET['page'])?0:intval($_GET['page']);//页码
if($page<1) $page = 1;
$start = ($page-1)*$perpage;//开始记录

//ckstart($start, $perpage);//分页判断

//$count = C::t('bgtj')->count();//所有记录数量
//$mpurl = 'bgtj.php';
// ============================================

$action = $_GET['ac'];
$action = dhtmlspecialchars($action);

$ID = $_GET['ID'];
$ID = dhtmlspecialchars($ID);

//$querydata = C::t('bgtj')->fetch_all_by_sql($start, $perpage);

//$queryarr = array();
//foreach ($querydata as $rec) {
//$queryarr[] = $rec;
//}

//$multipage = multi($count, $perpage, $page, $mpurl);

//echo 'aaa:'.$action;
//exit;

//$get_json = C::t('bgtj')->fetch_json_by_sql($start, $perpage);
// 动作请求 ac=g
if ($action == 'g'){
// 取得json格式数据
$get_json = C::t('bgtj')->fetch_json_by_sql($start, $perpage);
echo $get_json;
exit;
}
// 删除一条数据
elseif ($action == 'd') {
echo C::t('bgtj')->delete_by_id($ID);
exit;

}
// 编辑一条数据
elseif ($action == 'e') {
$XH = dhtmlspecialchars($_GET['XH']);
$WT = dhtmlspecialchars($_GET['WT']);
$DA = dhtmlspecialchars($_GET['DA']);

$form_data = array();
$form_data['XH'] = $XH;
$form_data['WT'] = $WT;
$form_data['DA'] = $DA;

echo C::t('bgtj')->update_by_id($ID, $form_data);
exit;
}
// 插入一条数据
elseif ($action == 'a') {
$XH = dhtmlspecialchars($_GET['XH']);
$WT = dhtmlspecialchars($_GET['WT']);
$DA = dhtmlspecialchars($_GET['DA']);

$form_data = array();
$form_data['XH'] = $XH;
$form_data['WT'] = $WT;
$form_data['DA'] = $DA;

$return_insert_id = false;
$replace = false;
$silent = false;
echo C::t('bgtj')->insert_data($form_data, $return_insert_id, $replace, $silent);
exit;
}
else {

//显示发布表单
include_once template("cat/bgtj_crud");
}
?>


\template\default\cat\bgtj_crud.htm

<!--//说明: 显示公共头部模板-->
<!--{template common/header_cat_edata}-->

<br>

<table id="dg" class="easyui-datagrid" style="width:1000px;height:400px"
toolbar="#toolbar" idField="ID"
data-options="
singleSelect:true,
collapsible:true,
url: '/upload/bgtj_crud.php?ac=g',
pagination:true,
method:'get',
"
title="公务员常识题库" iconCls="icon-save"
rownumbers="true" pagination="true">
<thead>
<tr>
<th field="ID" width="50">ID</th>
<th field="XH" width="50">序号</th>
<th field="WT" width="500" align="left">问题</th>
<th field="DA" width="400" align="left">答案</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">新增</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">编辑</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyUser()">删除</a>
</div>

<div id="dlg" class="easyui-dialog" style="width:400px"
closed="true" buttons="#dlg-buttons">
<form id="fm" method="post" novalidate style="margin:0;padding:20px 50px">
<div style="margin-bottom:20px;font-size:14px;border-bottom:1px solid #ccc">问题</div>
<div style="margin-bottom:10px">
<input name="ID" class="easyui-textbox" required="true" label="ID:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input name="XH" class="easyui-textbox" required="true" label="序号:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input name="WT" class="easyui-textbox" required="true" label="问题:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input name="DA" class="easyui-textbox" required="true" label="答案:" style="width:100%">
</div>
</form>
</div>

<div id="dlg-buttons">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="saveUser()" style="width:90px">保存</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')" style="width:90px">取消</a>
</div>

<script type="text/javascript">
var url;

$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};

function newUser(){
$('#dlg').dialog('open').dialog('center').dialog('setTitle','新增');
$('#fm').form('clear');
url = '/upload/bgtj_crud.php?ac=a';
}

function editUser(){
var row = $('#dg').datagrid('getSelected');
if (row){
$('#dlg').dialog('open').dialog('center').dialog('setTitle','编辑');
$('#fm').form('load',row);
url = '/upload/bgtj_crud.php?ac=e&ID='+row.ID;
}
}

function saveUser(){

$('#fm').form('submit',{
url: url,
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
var result = eval('('+result+')');
if (result.errorMsg){
$.messager.show({
title: 'Error',
msg: result.errorMsg
});
} else {
$('#dlg').dialog('close');        // close the dialog
$('#dg').datagrid('reload');    // reload the user data
}
}
});
}

function destroyUser(){
var row = $('#dg').datagrid('getSelected');
if (row){
$.messager.confirm('请确认','您真的要删除这条记录吗?',function(r){
if (r){
$.post('/upload/bgtj_crud.php?ac=d',{ID:row.ID},function(result){
if (result.success){
$('#dg').datagrid('reload');    // reload the user data
} else {
$.messager.show({    // show error message
title: '出错啦',
msg: result.errorMsg
});
}
},'json');
}
});
}
}

</script>

<!--//说明: 显示公共尾部模板-->
<!--{template common/footer}-->


\template\default\common\header_cat.htm

<!--{subtemplate common/header_common}-->
<meta name="application-name" content="$_G['setting']['bbname']" />
<meta name="msapplication-tooltip" content="$_G['setting']['bbname']" />
<!--{if $_G['setting']['portalstatus']}--><meta name="msapplication-task" content="name=$_G['setting']['navs'][1]['navname'];action-uri={echo !empty($_G['setting']['domain']['app']['portal']) ? 'http://'.$_G['setting']['domain']['app']['portal'] : $_G[siteurl].'portal.php'};icon-uri={$_G[siteurl]}{IMGDIR}/portal.ico" /><!--{/if}-->
<meta name="msapplication-task" content="name=$_G['setting']['navs'][2]['navname'];action-uri={echo !empty($_G['setting']['domain']['app']['forum']) ? 'http://'.$_G['setting']['domain']['app']['forum'] : $_G[siteurl].'forum.php'};icon-uri={$_G[siteurl]}{IMGDIR}/bbs.ico" />
<!--{if $_G['setting']['groupstatus']}--><meta name="msapplication-task" content="name=$_G['setting']['navs'][3]['navname'];action-uri={echo !empty($_G['setting']['domain']['app']['group']) ? 'http://'.$_G['setting']['domain']['app']['group'] : $_G[siteurl].'group.php'};icon-uri={$_G[siteurl]}{IMGDIR}/group.ico" /><!--{/if}-->
<!--{if helper_access::check_module('feed')}--><meta name="msapplication-task" content="name=$_G['setting']['navs'][4]['navname'];action-uri={echo !empty($_G['setting']['domain']['app']['home']) ? 'http://'.$_G['setting']['domain']['app']['home'] : $_G[siteurl].'home.php'};icon-uri={$_G[siteurl]}{IMGDIR}/home.ico" /><!--{/if}-->
<!--{if $_G['basescript'] == 'forum' && $_G['setting']['archiver']}-->
<link rel="archives" title="$_G['setting']['bbname']" href="{$_G[siteurl]}archiver/" />
<!--{/if}-->
<!--{if !empty($rsshead)}-->$rsshead<!--{/if}-->
<!--{if widthauto()}-->
<link rel="stylesheet" id="css_widthauto" type="text/css" href='{$_G['setting']['csspath']}{STYLEID}_widthauto.css?{VERHASH}' />
<script type="text/javascript">HTMLNODE.className += ' widthauto'</script>
<!--{/if}-->
<!--{if $_G['basescript'] == 'forum' || $_G['basescript'] == 'group'}-->
<script type="text/javascript" src="{$_G[setting][jspath]}forum.js?{VERHASH}"></script>
<!--{elseif $_G['basescript'] == 'home' || $_G['basescript'] == 'userapp'}-->
<script type="text/javascript" src="{$_G[setting][jspath]}home.js?{VERHASH}"></script>
<!--{elseif $_G['basescript'] == 'portal'}-->
<script type="text/javascript" src="{$_G[setting][jspath]}portal.js?{VERHASH}"></script>
<!--{/if}-->
<!--{if $_G['basescript'] != 'portal' && $_GET['diy'] == 'yes' && check_diy_perm($topic)}-->
<script type="text/javascript" src="{$_G[setting][jspath]}portal.js?{VERHASH}"></script>
<!--{/if}-->
<!--{if $_GET['diy'] == 'yes' && check_diy_perm($topic)}-->
<link rel="stylesheet" type="text/css" id="diy_common" href="{$_G['setting']['csspath']}{STYLEID}_css_diy.css?{VERHASH}" />
<!--{/if}-->

<!--cbq-->
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="./easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="./easyui/themes/icon.css">
<link rel="stylesheet" type="text/css" href="./easyui/themes/color.css">
<link rel="stylesheet" type="text/css" href="./easyui/demo/demo.css">
<script type="text/javascript" src="./easyui/jquery.min.js"></script>
<script type="text/javascript" src="./easyui/jquery.easyui.min.js"></script>
<!--/cbq-->

</head>

<body id="nv_{$_G[basescript]}" class="pg_{CURMODULE}{if $_G['basescript'] === 'portal' && CURMODULE === 'list' && !empty($cat)} {$cat['bodycss']}{/if}" onkeydown="if(event.keyCode==27) return false;">
<div id="append_parent"></div><div id="ajaxwaitid"></div>
<!--{if $_GET['diy'] == 'yes' && check_diy_perm($topic)}-->
<!--{template common/header_diy}-->
<!--{/if}-->
<!--{if check_diy_perm($topic)}-->
<!--{template common/header_diynav}-->
<!--{/if}-->
<!--{if CURMODULE == 'topic' && $topic && empty($topic['useheader']) && check_diy_perm($topic)}-->
$diynav
<!--{/if}-->
<!--{if empty($topic) || $topic['useheader']}-->
<!--{if $_G['setting']['mobile']['allowmobile'] && (!$_G['setting']['cacheindexlife'] && !$_G['setting']['cachethreadon'] || $_G['uid']) && ($_GET['diy'] != 'yes' || !$_GET['inajax']) && ($_G['mobile'] != '' && $_G['cookie']['mobile'] == '' && $_GET['mobile'] != 'no')}-->
<div class="xi1 bm bm_c">
{lang your_mobile_browser}<a href="{$_G['siteurl']}forum.php?mobile=yes">{lang go_to_mobile}</a> <span class="xg1">|</span> <a href="$_G['setting']['mobile']['nomobileurl']">{lang to_be_continue}</a>
</div>
<!--{/if}-->
<!--{if $_G['setting']['shortcut'] && $_G['member'][credits] >= $_G['setting']['shortcut']}-->
<div id="shortcut">
<span><a href="javascript:;" id="shortcutcloseid" title="{lang close}">{lang close}</a></span>
{lang shortcut_notice}
<a href="javascript:;" id="shortcuttip">{lang shortcut_add}</a>

</div>
<script type="text/javascript">setTimeout(setShortcut, 2000);</script>
<!--{/if}-->
<div id="toptb" class="cl">
<!--{hook/global_cpnav_top}-->
<div class="wp">
<div class="z">
<!--{loop $_G['setting']['topnavs'][0] $nav}-->
<!--{if $nav['available'] && (!$nav['level'] || ($nav['level'] == 1 && $_G['uid']) || ($nav['level'] == 2 && $_G['adminid'] > 0) || ($nav['level'] == 3 && $_G['adminid'] == 1))}-->$nav[code]<!--{/if}-->
<!--{/loop}-->
<!--{hook/global_cpnav_extra1}-->
</div>
<div class="y">
<a id="switchblind" href="javascript:;" onclick="toggleBlind(this)" title="{lang switch_blind}" class="switchblind">{lang switch_blind}</a>
<!--{hook/global_cpnav_extra2}-->
<!--{loop $_G['setting']['topnavs'][1] $nav}-->
<!--{if $nav['available'] && (!$nav['level'] || ($nav['level'] == 1 && $_G['uid']) || ($nav['level'] == 2 && $_G['adminid'] > 0) || ($nav['level'] == 3 && $_G['adminid'] == 1))}-->$nav[code]<!--{/if}-->
<!--{/loop}-->
<!--{if empty($_G['disabledwidthauto']) && $_G['setting']['switchwidthauto']}-->
<a href="javascript:;" id="switchwidth" onclick="widthauto(this)" title="{if widthauto()}{lang switch_narrow}{else}{lang switch_wide}{/if}" class="switchwidth"><!--{if widthauto()}-->{lang switch_narrow}<!--{else}-->{lang switch_wide}<!--{/if}--></a>
<!--{/if}-->
<!--{if $_G['uid'] && !empty($_G['style']['extstyle'])}--><a id="sslct" href="javascript:;" onmouseover="delayShow(this, function() {showMenu({'ctrlid':'sslct','pos':'34!'})});">{lang changestyle}</a><!--{/if}-->
<!--{if check_diy_perm($topic)}-->
$diynav
<!--{/if}-->
</div>
</div>
</div>

<!--{if !IS_ROBOT}-->
<!--{if $_G['uid']}-->
<ul id="myprompt_menu" class="p_pop" style="display: none;">
<li><a href="home.php?mod=space&do=pm" id="pm_ntc" style="background-repeat: no-repeat; background-position: 0 50%;"><em class="prompt_news{if empty($_G[member][newpm])}_0{/if}"></em>{lang pm_center}</a></li>
<li><a href="home.php?mod=follow&do=follower"><em class="prompt_follower{if empty($_G[member][newprompt_num][follower])}_0{/if}"></em><!--{lang notice_interactive_follower}-->{if $_G[member][newprompt_num][follower]}($_G[member][newprompt_num][follower]){/if}</a></li>
<!--{if $_G[member][newprompt] && $_G[member][newprompt_num][follow]}-->
<li><a href="home.php?mod=follow"><em class="prompt_concern"></em><!--{lang notice_interactive_follow}-->($_G[member][newprompt_num][follow])</a></li>
<!--{/if}-->
<!--{if $_G[member][newprompt]}-->
<!--{loop $_G['member']['category_num'] $key $val}-->
<li><a href="home.php?mod=space&do=notice&view=$key"><em class="notice_$key"></em><!--{echo lang('template', 'notice_'.$key)}-->(<span class="rq">$val</span>)</a></li>
<!--{/loop}-->
<!--{/if}-->
<!--{if empty($_G['cookie']['ignore_notice'])}-->
<li class="ignore_noticeli"><a href="javascript:;" onclick="setcookie('ignore_notice', 1);hideMenu('myprompt_menu')" title="{lang temporarily_to_remind}"><em class="ignore_notice"></em></a></li>
<!--{/if}-->
</ul>
<!--{/if}-->
<!--{if $_G['uid'] && !empty($_G['style']['extstyle'])}-->
<div id="sslct_menu" class="cl p_pop" style="display: none;">
<!--{if !$_G[style][defaultextstyle]}--><span class="sslct_btn" onclick="extstyle('')" title="{lang default}"><i></i></span><!--{/if}-->
<!--{loop $_G['style']['extstyle'] $extstyle}-->
<span class="sslct_btn" onclick="extstyle('$extstyle[0]')" title="$extstyle[1]"><i style='background:$extstyle[2]'></i></span>
<!--{/loop}-->
</div>
<!--{/if}-->
<!--{if $_G['uid']}-->
<ul id="myitem_menu" class="p_pop" style="display: none;">
<li><a href="forum.php?mod=guide&view=my">{lang mypost}</a></li>
<li><a href="home.php?mod=space&do=favorite&view=me">{lang favorite}</a></li>
<li><a href="home.php?mod=space&do=friend">{lang friends}</a></li>
<!--{hook/global_myitem_extra}-->
</ul>
<!--{/if}-->
<!--{subtemplate common/header_qmenu}-->
<!--{/if}-->

<!--{ad/headerbanner/wp a_h}-->
<div id="hd">
<div class="wp">
<div class="hdc cl">
<!--{eval $mnid = getcurrentnav();}-->
<h2><!--{if !isset($_G['setting']['navlogos'][$mnid])}--><a href="{if $_G['setting']['domain']['app']['default']}http://{$_G['setting']['domain']['app']['default']}/{else}./{/if}" title="$_G['setting']['bbname']">{$_G['style']['boardlogo']}</a><!--{else}-->$_G['setting']['navlogos'][$mnid]<!--{/if}--></h2>
<!--{template common/header_userstatus}-->
</div>

<div id="nv">
<a href="javascript:;" id="qmenu" onmouseover="delayShow(this, function () {showMenu({'ctrlid':'qmenu','pos':'34!','ctrlclass':'a','duration':2});showForummenu($_G[fid]);})">{lang my_nav}</a>
<ul>
<!--{loop $_G['setting']['navs'] $nav}-->
<!--{if $nav['available'] && (!$nav['level'] || ($nav['level'] == 1 && $_G['uid']) || ($nav['level'] == 2 && $_G['adminid'] > 0) || ($nav['level'] == 3 && $_G['adminid'] == 1))}--><li {if $mnid == $nav[navid]}class="a" {/if}$nav[nav]></li><!--{/if}-->
<!--{/loop}-->
</ul>
<!--{hook/global_nav_extra}-->
</div>
<!--{if !empty($_G['setting']['plugins']['jsmenu'])}-->
<ul class="p_pop h_pop" id="plugin_menu" style="display: none">
<!--{loop $_G['setting']['plugins']['jsmenu'] $module}-->
<!--{if !$module['adminid'] || ($module['adminid'] && $_G['adminid'] > 0 && $module['adminid'] >= $_G['adminid'])}-->
<li>$module[url]</li>
<!--{/if}-->
<!--{/loop}-->
</ul>
<!--{/if}-->
$_G[setting][menunavs]
<div id="mu" class="cl">
<!--{if $_G['setting']['subnavs']}-->
<!--{loop $_G[setting][subnavs] $navid $subnav}-->
<!--{if $_G['setting']['navsubhover'] || $mnid == $navid}-->
<ul class="cl {if $mnid == $navid}current{/if}" id="snav_$navid" style="display:{if $mnid != $navid}none{/if}">
$subnav
</ul>
<!--{/if}-->
<!--{/loop}-->
<!--{/if}-->
</div>
<!--{ad/subnavbanner/a_mu}-->
<!--{subtemplate common/pubsearchform}-->
</div>
</div>

<!--{hook/global_header}-->
<!--{/if}-->

<div id="wp" class="wp">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  datagrid easyui discuz