本方法可以实现帝国栏目和信息页伪静态,使栏目和信息页得URL采用目录拼音的形式,而非帝国默认的数字形式,栏目目录名称设置成数字和字母(区分大小写)且最好不要以数字开头,不然可能出现栏目转写出错,具体设置步骤如下。
1.首先,在帝国CMS设置好伪静态参数和栏目生成选项,如下:
说明一下,这里一定要设置成为“动态页面”。包括主页也是,否则可能出现500的错误.(批量是否生成的教程看本站另一篇 帝国cms栏目批量修改增加是否生成)
2.在目录e/action/下创建list.php和show.php两个文件,分别复制粘贴如下代码,
list.php中粘贴下列代码:
<?php
require ('../class/connect.php');
require ('../class/db_sql.php');
require ('../class/functions.php');
require ('../class/t_functions.php');
require ('../data/dbcache/class.php');
require LoadLang('pub/fun.php');
$link = db_connect();
$empire = new mysqlquery();
$editor = 1;
$classid = RepPostStr($_GET['classid']); //MaXian:过滤获取
if (!is_numeric($classid)) {
foreach ($class_r as $val) {
foreach ($val as $val2) {
if ($classid == $val['classpath']) {
$classid = $val['classid'];
break;
}
}
}
}
if (empty($classid)) {
printerror("ErrorUrl", "history.go(-1)", 1);
}
$search = '&classid=' . $classid;
$tbname = $class_r[$classid]['tbname'];
$mid = $class_r[$classid]['modid'];
if (empty($tbname) || empty($mid) || InfoIsInTable($tbname)) {
printerror("ErrorUrl", "history.go(-1)", 1);
}
$cr = $empire->fetch1("select classid,classpagekey,intro,classimg,cgroupid,islist,classtempid,listdt,bdinfoid,repagenum,islast,infos,addsql,fclast from {$dbtbpre}enewsclass where classid='$classid'");
if (empty($cr['classid'])) {
printerror("ErrorUrl", "history.go(-1)", 1);
}
if ($class_r[$classid]['islast'] && $cr['bdinfoid']) {
printerror("ErrorUrl", "history.go(-1)", 1);
}
//moreport
if (Moreport_ReturnMustDt()) {
$class_r[$classid]['listdt'] = 1;
$cr['repagenum'] = 0;
$cr['listdt'] = 1;
}
//是否支持动态页
/*if(empty($class_r[$classid]['listdt'])&&!$cr['repagenum']){
$classurl=sys_ReturnBqClassname($cr, 9);
Header("Location:$classurl");
exit();
}*/
//权限
if ($cr['cgroupid']) {
$mgroupid = (int)getcvar('mlgroupid');
if (!strstr($cr['cgroupid'], ',' . $mgroupid . ',')) {
printerror('NotLevelToClass', 'history.go(-1)', 1);
}
}
//缓存
if ($public_r['ctimeopen']) {
$public_r['usetotalnum'] = 0;
}
$ecms_tofunr = array();
$ecms_tofunr['cacheuse'] = 0;
$ecms_tofunr['cacheselfcid'] = $classid;
$ecms_tofunr['cachepath'] = 'empirecms';
//缓存
$GLOBALS['navclassid'] = $classid;
$url = ReturnClassLink($classid);
$pagetitle = $class_r[$classid]['classname'];
$pagekey = $cr['classpagekey'];
$pagedes = $cr['intro'];
$classimg = $cr['classimg'] ? $cr['classimg'] : $public_r['newsurl'] . 'e/data/images/notimg.gif';
//---封面式---
if (!$class_r[$classid]['islast'] && $cr['islist'] != 1) {
/* if(empty($cr['listdt'])||$cr['islist'] == 3){
printerror("ErrorUrl", "history.go(-1)", 1);
}*/
//封面:缓存
$ecms_tofunr['cachetype'] = 'classpage';
$ecms_tofunr['cacheids'] = $classid;
$ecms_tofunr['cachedatepath'] = 'cpage';
$ecms_tofunr['cachetime'] = $public_r['ctimeclass'];
$ecms_tofunr['cachelasttime'] = $public_r['ctimelast'];
$ecms_tofunr['cachelastedit'] = $cr['fclast'];
$ecms_tofunr['cacheopen'] = Ecms_eCacheCheckOpen($ecms_tofunr['cachetime']);
if ($ecms_tofunr['cacheopen'] == 1) {
$ecms_tofunr['cacheuse'] = Ecms_eCacheOut($ecms_tofunr, 0);
}
//封面:缓存
if ($cr['islist'] == 2) {
$classtemp = GetClassText($classid);
$dttempname = 'classpage' . $classid;
} else {
if (empty($cr['classtempid'])) {
printerror('ErrorUrl', '', 1);
}
$classtemp = GetClassTemp($cr['classtempid']);
$dttempname = 'classtemp' . $cr['classtempid'];
}
$string = DtNewsBq($dttempname, $classtemp, 0);
$string = str_replace('[!--newsnav--]', $url, $string); //位置导航
$string = Class_ReplaceSvars($string, $url, $classid, $pagetitle, $pagekey, $pagedes, $classimg, $addr, 0);
$string = str_replace('[!--page.stats--]', '', $string);
//封面:缓存
if ($ecms_tofunr['cacheopen'] == 1) {
Ecms_eCacheIn($ecms_tofunr, stripSlashes($string));
} else {
echo stripSlashes($string);
}
//封面:缓存
exit();
}
//---列表式---
$add = '';
//栏目
if ($class_r[$classid]['islast']) { //终极栏目
$add.= "classid='$classid'";
$have_class = 0;
} else {
$add.= ReturnClass($class_r[$classid]['sonclass']);
$have_class = 1;
}
if ($cr['addsql']) {
$add.= ' and (' . $cr['addsql'] . ')';
}
//排序
if (empty($class_r[$classid]['reorder'])) {
$addorder = "newstime desc";
} else {
$addorder = $class_r[$classid]['reorder'];
}
//列表模板
$tempid = $class_r[$classid]['dtlisttempid'] ? $class_r[$classid]['dtlisttempid'] : $class_r[$classid]['listtempid'];
if (empty($tempid)) {
printerror('ErrorUrl', '', 1);
}
$tempr = $empire->fetch1("select tempid,temptext,subnews,listvar,rownum,showdate,modid,subtitle,docode from " . GetTemptb("enewslisttemp") . " where tempid='$tempid'");
if (empty($tempr['tempid'])) {
printerror('ErrorUrl', '', 1);
}
$PageUrl = $_SERVER['HTTP_X_REWRITE_URL'] ? $_SERVER['HTTP_X_REWRITE_URL'] : $_SERVER['REQUEST_URI'];
$page = (int)substr($_GET['page'], 6); // MaXian:分页获取
if ($page == 1 || strpos($PageUrl, '_0') > 0) { // MaXian:判断分页是1或者0就跳转 404
header('HTTP/1.1 404 Not Found');
header('status: 404 Not Found');
printerror('ErrorUrl', 'history.go(-1)', 1);
}
$page = RepPIntvar($page) ? RepPIntvar($page) : 1;
$start = 0;
$line = $class_r[$classid]['lencord']; //每页显示记录数
$page_line = 10; //每页显示链接数
$offset = $page * $line - $line; //总偏移量
//列表:缓存
$ecms_tofunr['cachetype'] = 'classlist';
$ecms_tofunr['cacheids'] = $classid . ',' . $page;
$ecms_tofunr['cachedatepath'] = 'clist/' . $classid;
$ecms_tofunr['cachetime'] = $public_r['ctimelist'];
$ecms_tofunr['cachelasttime'] = $public_r['ctimelast'];
$ecms_tofunr['cachelastedit'] = $cr['fclast'];
$ecms_tofunr['cacheopen'] = Ecms_eCacheCheckOpen($ecms_tofunr['cachetime']);
if ($ecms_tofunr['cacheopen'] == 1) {
$ecms_tofunr['cacheuse'] = Ecms_eCacheOut($ecms_tofunr, 0);
}
//列表:缓存
//系统模型
$ret_r = ReturnReplaceListF($mid);
//优化
$yhadd = '';
$yhid = $class_r[$classid]['yhid'];
$yhvar = 'qlist';
if ($yhid) {
$yhadd = ReturnYhSql($yhid, $yhvar, 1);
}
//总数
$totalnum = (int)$_GET['totalnum'];
if (!$public_r['usetotalnum']) {
$totalnum = 0;
}
if ($totalnum < 1) {
if ($yhadd || $cr['addsql']) {
$totalquery = "select count(*) as total from {$dbtbpre}ecms_" . $tbname . " where " . $yhadd . $add;
$num = $empire->gettotal($totalquery);
} else {
$num = ReturnClassInfoNum($cr, 0);
}
} else {
$num = $totalnum;
}
if ($public_r['usetotalnum']) {
$search.= '&totalnum=' . $num;
}
//checkpageno
MX_eCheckListPageNo($page - 1, $line, $num); // MaXian:验证页码是否有效
function MX_eCheckListPageNo($page, $line, $totalnum) { // MaXian:验证页码是否有效
$page = (int)$page;
$line = (int)$line;
$totalnum = (int)$totalnum;
if (!$page || !$line) {
return '';
}
$totalpage = ceil($totalnum / $line);
if ($page >= $totalpage) { // MaXian:分页不合法跳转404
header('HTTP/1.1 404 Not Found');
header('status: 404 Not Found');
printerror('ErrorUrl', 'history.go(-1)', 1);
}
}
$query = "select " . ReturnSqlListF($mid) . " from {$dbtbpre}ecms_" . $tbname . " where " . $yhadd . $add;
$query.= " order by " . ReturnSetTopSql('list') . $addorder . " limit $offset,$line";
$sql = $empire->query($query);
//伪静态
$pagefunr = eReturnRewriteClassUrl($classid, 0);
$pagefunr['repagenum'] = $cr['repagenum'];
$pagefunr['dolink'] = empty($class_r[$classid]['classurl']) ? $public_r['newsurl'] . $class_r[$classid]['classpath'] . '/' : $class_r[$classid]['classurl'] . '/';
$pagefunr['dofile'] = 'index';
$pagefunr['dotype'] = $class_r[$classid]['classtype'];
//分页
/*if($pagefunr['rewrite']==1||$pagefunr['repagenum']){
$listpage=InfoUsePage($num,$line,$page_line,$start,$page,$search,$pagefunr);
}else{
$listpage=page1($num,$line,$page_line,$start,$page,$search);
}*/
$listpage = MX_ListPage($num, $line, $page_line, $start, $page); // MaXian:自己加的分页
function MX_ListPage($num, $line, $page_line, $start, $page) { // MaXian:分页函数
global $fun_r;
if ($num <= $line) {
return '';
}
$f = '_'; //伪静态分页分割符号
$url = preg_replace('/_[0-9]+/', '', $_SERVER['HTTP_X_REWRITE_URL'] ? $_SERVER['HTTP_X_REWRITE_URL'] : $_SERVER['REQUEST_URI']);
if (!strripos($url, '.')) {
$url = $url . 'index.html';
}
$urlarr = explode('.', $url);
$snum = 3; //最小页数
$totalpage = ceil($num / $line); //取得总页数
$firststr = '<a title="' . $fun_r['trecord'] . '"> <b>' . $num . '</b> </a> ';
//上一页
if ($page > 1) {
$toppage = '<a href="' . substr($urlarr[0], 0, -5) . '">' . $fun_r['startpage'] . '</a>';
$pagepr = $page - 1;
if ($pagepr == 1) {
$prepage = '<a href="' . substr($urlarr[0], 0, -5) . '">' . $fun_r['pripage'] . '</a>';
} else {
$prepage = '<a href="' . $urlarr[0] . $f . $pagepr . '.' . $urlarr[1] . '">' . $fun_r['pripage'] . '</a>';
}
}
//下一页
if ($page != $totalpage) {
$pagenex = $page + 1;
$nextpage = '<a href="' . $urlarr[0] . $f . $pagenex . '.' . $urlarr[1] . '">' . $fun_r['nextpage'] . '</a>';
$lastpage = '<a href="' . $urlarr[0] . $f . $totalpage . '.' . $urlarr[1] . '">' . $fun_r['lastpage'] . '</a>';
}
$starti = $page - $snum < 0 ? 0 : $page - $snum;
$no = 0;
for ($i = $starti + 1;$i < $totalpage + 1 && $no < $page_line;$i++) {
$no++;
if ($page == $i) {
$is_1 = "<b>";
$is_2 = "</b>";
} else {
if ($i == 1) { //第一页不加page0
$is_1 = '<a href="' . substr($urlarr[0], 0, -5) . '">';
$is_2 = "</a>";
} else {
$is_1 = '<a href="' . $urlarr[0] . $f . $i . '.' . $urlarr[1] . '">';
$is_2 = "</a>";
}
}
$pagenum = $i;
$returnstr.= $is_1 . $pagenum . $is_2;
}
$returnstr = $firststr . $toppage . $prepage . $returnstr . $nextpage . $lastpage;
return $returnstr;
}
//页面支持标签
if ($public_r['dtcanbq']) {
$tempr['temptext'] = DtNewsBq('list' . $tempid, $tempr['temptext'], 0);
} else {
if ($public_r['searchtempvar']) {
$tempr['temptext'] = ReplaceTempvar($tempr['temptext']);
}
}
$listtemp = $tempr['temptext'];
$rownum = $tempr['rownum'];
if (empty($rownum)) {
$rownum = 1;
}
$formatdate = $tempr['showdate'];
$subnews = $tempr['subnews'];
$subtitle = $tempr['subtitle'];
$docode = $tempr['docode'];
$modid = $tempr['modid'];
$listvar = str_replace('[!--news.url--]', $public_r['newsurl'], $tempr['listvar']);
//公共
$listtemp = str_replace('[!--newsnav--]', $url, $listtemp); //位置导航
$listtemp = Class_ReplaceSvars($listtemp, $url, $classid, $pagetitle, $pagekey, $pagedes, $classimg, $addr, 0);
$listtemp = str_replace('[!--page.stats--]', '', $listtemp);
$listtemp = str_replace('[!--show.page--]', $listpage, $listtemp);
$listtemp = str_replace('[!--show.listpage--]', $listpage, $listtemp);
$listtemp = str_replace('[!--list.pageno--]', $page, $listtemp);
//取得列表模板
$list_exp = "[!--empirenews.listtemp--]";
$list_r = explode($list_exp, $listtemp);
$listtext = $list_r[1];
$no = $offset + 1;
$changerow = 1;
while ($r = $empire->fetch($sql)) {
//替换列表变量
$repvar = ReplaceListVars($no, $listvar, $subnews, $subtitle, $formatdate, $url, $have_class, $r, $ret_r, $docode);
$listtext = str_replace("<!--list.var" . $changerow . "-->", $repvar, $listtext);
$changerow+= 1;
//超过行数
if ($changerow > $rownum) {
$changerow = 1;
$string.= $listtext;
$listtext = $list_r[1];
}
$no++;
}
//多余数据
if ($changerow <= $rownum && $listtext <> $list_r[1]) {
$string.= $listtext;
}
$string = $list_r[0] . $string . $list_r[2];
//列表:缓存
if ($ecms_tofunr['cacheopen'] == 1) {
Ecms_eCacheIn($ecms_tofunr, stripSlashes($string));
} else {
echo stripSlashes($string);
}
//列表:缓存
db_close();
$empire = null;
?>
================================
华丽的分割线
================================
show.php中粘贴下列代码:
<?php
require ('../class/connect.php');
require ('../class/db_sql.php');
require ('../class/functions.php');
require ('../class/t_functions.php');
require LoadLang('pub/fun.php');
require ('../data/dbcache/class.php');
require ('../data/dbcache/MemberLevel.php');
$link = db_connect();
$empire = new mysqlquery();
$classid = RepPostStr($_GET['classid']); //修改过滤方式
$id = RepPostStr($_GET['id']); //修改过滤方式
if (!is_numeric($classid)) {
foreach ($class_r as $val) {
foreach ($val as $val2) {
if ($classid == $val['classpath']) {
$classid = $val['classid'];
break;
}
}
}
}
//获取真实信息id
if (is_numeric($id) && !$class_r[$classid]['filename']) {
$where = "classid='$classid' and id='$id'";
} else {
$where = "classid='$classid' and filename='$id'";
}
$PageUrl = $_SERVER['HTTP_X_REWRITE_URL'] ? $_SERVER['HTTP_X_REWRITE_URL'] : $_SERVER['REQUEST_URI'];
$page = (int)substr($_GET['page'], 1); //page是带横线所以去掉
if ($page == 1 || strpos($PageUrl, '_0') > 0) { // MaXian:判断分页是1或者0就跳转 404
header('HTTP/1.1 404 Not Found');
header('status: 404 Not Found');
printerror('ErrorUrl', 'history.go(-1)', 1);
}
$page = RepPIntvar($page) ? RepPIntvar($page) : 1;
$mid = $class_r[$classid]['modid'];
$tbname = $class_r[$classid]['tbname'];
//验证IP
eCheckAccessDoIp('showinfo');
if (!$classid || !$id || !$mid || !$tbname || InfoIsInTable($tbname)) {
printerror('此信息不存在', '', 1, 0, 1);
}
$r = $empire->fetch1("select * from {$dbtbpre}ecms_" . $tbname . " where $where limit 1");
if (!$r['id'] || $classid != $r['classid']) {
printerror('此信息不存在', '', 1, 0, 1);
}
$id = $r['id']; //ID重新赋值
//外部链接
if ($r['isurl']) {
$titleurl = $r['titleurl'];
Header("Location:$titleurl");
exit();
}
//moreport
if (Moreport_ReturnMustDt()) {
$class_r[$classid]['showdt'] = 2;
}
//是否支持动态内容页
/*if($class_r[$classid]['showdt']!=2){
$titleurl = sys_ReturnBqTitleLink($r);
Header("Location:$titleurl");
exit();
}*/
//缓存
if ($public_r['ctimeopen']) {
$public_r['usetotalnum'] = 0;
}
$ecms_tofunr = array();
$ecms_tofunr['cacheuse'] = 0;
$ecms_tofunr['cacheselfcid'] = $classid;
$ecms_tofunr['cachetype'] = 'textpage';
$ecms_tofunr['cacheids'] = $classid . ',' . $id . ',' . $page;
$ecms_tofunr['cachepath'] = 'empirecms';
$ecms_tofunr['cachedatepath'] = 'ctext/' . date('Y/md', $r['truetime']);
$ecms_tofunr['cachetime'] = $public_r['ctimetext'];
$ecms_tofunr['cachelasttime'] = $public_r['ctimelast'];
$ecms_tofunr['cachelastedit'] = $r['lastdotime'];
$ecms_tofunr['cacheopen'] = Ecms_eCacheCheckOpen($ecms_tofunr['cachetime']);
$ecms_tofunr['cachehavedo'] = 0;
if ($ecms_tofunr['cacheopen'] == 1 && !($r['groupid'] || $class_r[$classid]['cgtoinfo'])) {
$ecms_tofunr['cacheuse'] = Ecms_eCacheOut($ecms_tofunr, 2);
if ($ecms_tofunr['cacheuse']) {
//更新点击
$empire->query("update {$dbtbpre}ecms_" . $tbname . " set onclick=onclick+1 where id='$id' limit 1");
db_close();
$empire = null;
exit();
}
$ecms_tofunr['cachehavedo'] = 1;
}
//缓存
//副表
$finfor = $empire->fetch1("select " . ReturnSqlFtextF($mid) . " from {$dbtbpre}ecms_" . $tbname . "_data_" . $r['stb'] . " where id='$r[id]' limit 1");
$r = array_merge($r, $finfor);
//权限
if ($r['groupid'] || $class_r[$classid]['cgtoinfo']) {
define('empirecms', 'wm_chief');
define('PageCheckLevel', 'wm_chief');
$check_tbname = $tbname;
$check_infoid = $id;
$check_classid = $classid;
$check_path = "../../";
$checkinfor = $r;
@include ("../class/CheckLevel.php");
}
//缓存
if ($ecms_tofunr['cacheopen'] == 1 && !$ecms_tofunr['cachehavedo']) {
$ecms_tofunr['cacheuse'] = Ecms_eCacheOut($ecms_tofunr, 2);
if ($ecms_tofunr['cacheuse']) {
//更新点击
$empire->query("update {$dbtbpre}ecms_" . $tbname . " set onclick=onclick+1 where id='$id' limit 1");
db_close();
$empire = null;
exit();
}
}
//缓存
//存文本
if ($emod_r[$mid]['savetxtf']) {
$stf = $emod_r[$mid]['savetxtf'];
if ($r[$stf]) {
$r[$stf] = GetTxtFieldText($r[$stf]);
}
}
//初始值
$search = "&classid=$classid&id=$id";
$line = 1;
$start = 0;
$page_line = 6; //每页显示链接数
$offset = $page * $line - $line; //总偏移量
$GLOBALS['navclassid'] = $r['classid'];
$GLOBALS['navinfor'] = $r;
//取得内容模板
$r['newstempid'] = $r['newstempid'] ? $r['newstempid'] : $class_r[$r['classid']]['newstempid'];
$newstemp_r = $empire->fetch1("select tempid,temptext,showdate from " . GetTemptb("enewsnewstemp") . " where tempid='$r[newstempid]'");
function MX_eCheckListPageNo($page, $line, $totalnum) { // MaXian:验证页码是否有效
$page = (int)$page;
$line = (int)$line;
$totalnum = (int)$totalnum;
if (!$page || !$line) {
return '';
}
$totalpage = ceil($totalnum / $line);
if ($page >= $totalpage) { // MaXian:分页不合法跳转404
header('HTTP/1.1 404 Not Found');
header('status: 404 Not Found');
printerror('ErrorUrl', 'history.go(-1)', 1);
}
}
function MX_ShowPage($num, $line, $page_line, $start, $page) { // MaXian:分页函数
global $fun_r;
if ($num <= $line) {
return '';
}
$f = '_'; //伪静态分页分割符号
$url = preg_replace('/_[0-9]+/', '', $_SERVER['HTTP_X_REWRITE_URL'] ? $_SERVER['HTTP_X_REWRITE_URL'] : $_SERVER['REQUEST_URI']);
$urlarr = explode('.', $url);
$snum = 3; //最小页数
$totalpage = ceil($num / $line); //取得总页数
$firststr = '<a title="' . $fun_r['trecord'] . '">总' . $totalpage . '页</a>';
//上一页
if ($page > 1) {
$toppage = '<a href="' . $url . '">' . $fun_r['startpage'] . '</a>';
$pagepr = $page - 1;
if ($pagepr == 1) {
$prepage = '<a href="' . $url . '">' . $fun_r['pripage'] . '</a>';
} else {
$prepage = '<a href="' . $urlarr[0] . $f . $pagepr . '.' . $urlarr[1] . '">' . $fun_r['pripage'] . '</a>';
}
}
//下一页
if ($page != $totalpage) {
$pagenex = $page + 1;
$nextpage = '<a href="' . $urlarr[0] . $f . $pagenex . '.' . $urlarr[1] . '">' . $fun_r['nextpage'] . '</a>';
$lastpage = '<a href="' . $urlarr[0] . $f . ($totalpage) . '.' . $urlarr[1] . '">' . $fun_r['lastpage'] . '</a>';
}
$starti = $page - $snum < 0 ? 0 : $page - $snum;
$no = 0;
for ($i = $starti + 1;$i < $totalpage + 1 && $no < $page_line;$i++) {
$no++;
if ($page == $i) {
$is_1 = "<b>";
$is_2 = "</b>";
} else {
if ($i == 1) { //第一页不加page0
$is_1 = '<a href="' . $url . '">';
$is_2 = "</a>";
} else {
$is_1 = '<a href="' . $urlarr[0] . $f . $i . '.' . $urlarr[1] . '">';
$is_2 = "</a>";
}
}
$pagenum = $i;
$returnstr.= $is_1 . $pagenum . $is_2;
}
$returnstr = $firststr . $toppage . $prepage . $returnstr . $nextpage . $lastpage;
return $returnstr;
}
//替换模板变量
function DtGetHtml($add, $newstemp_r, $mid, $tbname, $line, $page_line, $start, $page, $search) {
global $public_r, $class_r, $class_zr, $class_tr, $fun_r, $empire, $dbtbpre, $emod_r, $level_r;
//更新点击
$empire->query("update {$dbtbpre}ecms_" . $tbname . " set onclick=onclick+1 where id='$add[id]' limit 1");
$add['onclick'] = $add['onclick'] + 1;
//模板参数
$newstemptext = $newstemp_r['temptext'];
$formatdate = $newstemp_r['showdate'];
//页面
$pagetitle = ehtmlspecialchars($add['title']);
$url = ReturnClassLink($add['classid']); //导航
$newstemptext = DtInfo_ReplaceSvars($newstemptext, $url, $add['classid'], $pagetitle, $add['keyboard'], $pagetitle);
//相关信息
if (strstr($newstemptext, '[!--other.link--]')) {
$keyboardtext = GetKeyboard($add['keyboard'], $add['keyid'], $add['classid'], $add['id'], $class_r[$add['classid']]['link_num']);
}
//分页字段
$ptitle = $add['title'];
$truepage = '';
$titleselect = '';
$expage = '