来源于帝国CMS官方论坛,是那种可以把内容页伪静态成目录/id.html格式的伪静态规则。
设置时候,要把栏目设置为栏目页模式和内容页模式都设置成静态页面,
下面选择不生成栏目页,不生成内容页,
内容页存放目录形式选择不设置。
另外
需要2个文件和1个规则,文件放到e/action下面
第一个文件:
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 + 1, $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 = '[!--empirenews.page--]'; //分页符
$pf = $emod_r[$mid]['pagef'];
if ($pf && strstr($add[$pf], $expage)) { //有分页
$n_r = explode($expage, $add[$pf]);
$thispagenum = count($n_r);
//checkpageno
MX_eCheckListPageNo($page - 1, $line, $thispagenum); // MaXian:验证页码是否有效
if ($page < 0 || $page > $thispagenum) {
$page = 1;
}
$add[$pf] = $n_r[$page - 1];
if ($page) {
$ti_r = explode('[/!--empirenews.page--]', $n_r[$page]);
if (count($ti_r) >= 2) {
$ptitle = $ti_r[0];
$add[$pf] = $ti_r[1];
} else {
$ptitle = $add['title'] . '(' . ($page - 1) . ')';
}
}
//伪静态
$pagefunr = eReturnRewriteInfoUrl($add['classid'], $add['id'], 0);
$pagefunr['repagenum'] = 0;
$truepage = MX_ShowPage($thispagenum, $line, $page_line, $start, $page); //伪静态分页
//伪静态分页结束
//$truepage=InfoUsePage($thispagenum,$line,$page_line,$start,$page,$search,$pagefunr);
//下拉式分页
if (strstr($newstemptext, '[!--title.select--]')) {
for ($j = 0;$j < $thispagenum;$j++) {
$spurl = eReturnRewritePageLink($pagefunr, $j);
if ($j == 0) {
$sptitle = $add['title'];
} else {
$ti_r = explode('[/!--empirenews.page--]', $n_r[$j]);
$sptitle = count($ti_r) >= 2 ? $ti_r[0] : $add['title'] . '(' . ($j + 1) . ')';
}
$select = '';
if ($page == $j) {
$ptitle = $sptitle;
$select = ' selected';
}
$titleselect.= '<option value="' . $spurl . '"' . $select . '>' . $sptitle . '</option>';
}
$titleselect = '<select name="titleselect" onchange="self.location.href=this.options[this.selectedIndex].value">' . $titleselect . '</select>';
}
//下一页链接
if ($page == $thispagenum - 1) {
$thisnextlink = eReturnRewritePageLink($pagefunr, 0);
} else {
$thisnextlink = eReturnRewritePageLink($pagefunr, $page + 1);
}
} else {
//checkpageno
/* if($page!=0){
printerror('ErrorUrl','history.go(-1)',1);
}*/
}
//返回替换验证字符
$docheckrep = ReturnCheckDoRepStr();
if ($add['newstext']) {
if (empty($public_r['dorepword']) && $docheckrep[3]) {
$add['newstext'] = ReplaceWord($add['newstext']); //过滤字符
}
if (empty($public_r['dorepkey']) && $docheckrep[4] && !empty($add['dokey'])) { //替换关键字
$add['newstext'] = ReplaceKey($add['newstext'], $add['classid']);
}
if ($public_r['opencopytext']) {
$add['newstext'] = AddNotCopyRndStr($add['newstext']); //随机复制字符
}
}
//变量
$tempf = $emod_r[$mid]['tempf'];
$fr = explode(',', $tempf);
$fcount = count($fr) - 1;
//变量替换
$newstempstr = $newstemptext; //模板
for ($i = 1;$i < $fcount;$i++) {
$f = $fr[$i];
$value = $add[$f];
if ($f == 'downpath') { //下载地址
if (strstr($newstemptext, '[!--downpath--]')) {
$value = ReturnDownSoftHtml($add);
}
} elseif ($f == 'onlinepath') { //观看地址
if (strstr($newstemptext, '[!--onlinepath--]')) {
$value = ReturnOnlinepathHtml($add);
}
} elseif ($f == 'morepic') { //图片集
if (strstr($newstemptext, '[!--morepic--]')) {
$value = ReturnMorepicpathHtml($add);
}
} elseif ($f == 'newstime') { //时间
if (strstr($newstemptext, '[!--newstime--]')) {
$value = date($formatdate, $value);
}
} elseif ($f == 'befrom') { //信息来源
if ($docheckrep[1] && strstr($newstemptext, '[!--befrom--]')) {
$value = ReplaceBefrom($value);
}
} elseif ($f == 'writer') { //作者
if ($docheckrep[2] && strstr($newstemptext, '[!--writer--]')) {
$value = ReplaceWriter($value);
}
} elseif ($f == 'titlepic') { //标题图片
if (empty($value)) {
$value = $public_r['newsurl'] . 'e/data/images/notimg.gif';
}
} elseif ($f == 'title') { //标题
} else { //正常字段
if (!strstr($emod_r[$mid]['editorf'], ',' . $f . ',')) {
if (strstr($emod_r[$mid]['tobrf'], ',' . $f . ',')) { //加br
$value = nl2br($value);
}
if (!strstr($emod_r[$mid]['dohtmlf'], ',' . $f . ',')) { //去除html
$value = RepFieldtextNbsp(ehtmlspecialchars($value));
}
}
}
$newstempstr = str_replace('[!--' . $f . '--]', $value, $newstempstr);
}
//固定变量
$newstempstr = str_replace('[!--id--]', $add['id'], $newstempstr);
$newstempstr = str_replace('[!--classid--]', $add['classid'], $newstempstr);
$newstempstr = str_replace('[!--class.name--]', $class_r[$add['classid']]['classname'], $newstempstr);
$newstempstr = str_replace('[!--ttid--]', $add['ttid'], $newstempstr);
$newstempstr = str_replace('[!--tt.name--]', $class_tr[$add['ttid']]['tname'], $newstempstr);
$newstempstr = str_replace('[!--tt.url--]', sys_ReturnBqInfoTypeUrl($add['ttid']), $newstempstr);
$newstempstr = str_replace('[!--onclick--]', $add['onclick'], $newstempstr);
$newstempstr = str_replace('[!--userfen--]', $add['userfen'], $newstempstr);
$newstempstr = str_replace('[!--username--]', $add['username'], $newstempstr);
//带链接的用户名
if ($add['ismember'] == 1 && $add['userid']) {
$newstempstr = str_replace('[!--linkusername--]', "<a href='" . $public_r['newsurl'] . "e/space/?userid=" . $add['userid'] . "' target=_blank>" . $add['username'] . "</a>", $newstempstr);
} else {
$newstempstr = str_replace('[!--linkusername--]', $add['username'], $newstempstr);
}
$newstempstr = str_replace('[!--userid--]', $add['userid'], $newstempstr);
$newstempstr = str_replace('[!--other.link--]', $keyboardtext, $newstempstr);
$newstempstr = str_replace('[!--news.url--]', $public_r['newsurl'], $newstempstr);
$newstempstr = str_replace('[!--plnum--]', $add['plnum'], $newstempstr);
$newstempstr = str_replace('[!--totaldown--]', $add['totaldown'], $newstempstr);
$newstempstr = str_replace('[!--keyboard--]', $add['keyboard'], $newstempstr);
//链接
$titleurl = sys_ReturnBqTitleLink($add);
$newstempstr = str_replace('[!--titleurl--]', $titleurl, $newstempstr);
$newstempstr = str_replace('[!--page.stats--]', '', $newstempstr);
$classurl = sys_ReturnBqClassname($add, 9);
$newstempstr = str_replace('[!--class.url--]', $classurl, $newstempstr);
//下一篇
if (strstr($newstemptext, '[!--info.next--]')) {
$next_r = $empire->fetch1("select isurl,titleurl,classid,id,title from {$dbtbpre}ecms_" . $class_r[$add['classid']]['tbname'] . " where id>$add[id] and classid='$add[classid]' order by id limit 1");
if (empty($next_r['id'])) {
$infonext = "<a href='" . $classurl . "'>" . $fun_r['HaveNoNextLink'] . "</a>";
} else {
//链接
$nexttitleurl = sys_ReturnBqTitleLink($next_r);
$infonext = "<a href='" . $nexttitleurl . "'>" . $next_r['title'] . "</a>";
}
$newstempstr = str_replace('[!--info.next--]', $infonext, $newstempstr);
}
//上一篇
if (strstr($newstemptext, '[!--info.pre--]')) {
$next_r = $empire->fetch1("select isurl,titleurl,classid,id,title from {$dbtbpre}ecms_" . $class_r[$add['classid']]['tbname'] . " where id<$add[id] and classid='$add[classid]' order by id desc limit 1");
if (empty($next_r['id'])) {
$infonext = "<a href='" . $classurl . "'>" . $fun_r['HaveNoNextLink'] . "</a>";
} else {
//链接
$nexttitleurl = sys_ReturnBqTitleLink($next_r);
$infonext = "<a href='" . $nexttitleurl . "'>" . $next_r['title'] . "</a>";
}
$newstempstr = str_replace('[!--info.pre--]', $infonext, $newstempstr);
}
//投票
if (strstr($newstemptext, '[!--info.vote--]')) {
$myvotetext = sys_GetInfoVote($add['classid'], $add['id']);
$newstempstr = str_replace('[!--info.vote--]', $myvotetext, $newstempstr);
}
//评分
if (strstr($newstemptext, '[!--pinfopfen--]')) {
$pinfopfen = $add['infopfennum'] ? round($add['infopfen'] / $add['infopfennum']) : 0;
$newstempstr = str_replace('[!--pinfopfen--]', $pinfopfen, $newstempstr);
$newstempstr = str_replace('[!--infopfennum--]', $add['infopfennum'], $newstempstr);
}
$string = $newstempstr;
//替换变量
$string = str_replace('[!--p.title--]', strip_tags($ptitle), $string);
$string = str_replace('[!--next.page--]', $thisnextlink, $string);
$string = str_replace('[!--page.url--]', $truepage, $string);
$string = str_replace('[!--title.select--]', $titleselect, $string);
return $string;
}
if (empty($newstemp_r['tempid'])) {
printerror('ErrorUrl', '', 1);
}
//页面支持标签
if ($public_r['dtncanbq']) {
$newstemp_r['temptext'] = DtNewsBq('text' . $newstemp_r['tempid'], $newstemp_r['temptext'], 1);
} else {
if ($public_r['searchtempvar']) {
$newstemp_r['temptext'] = ReplaceTempvar($newstemp_r['temptext']);
}
}
$string = DtGetHtml($r, $newstemp_r, $mid, $tbname, $line, $page_line, $start, $page, $search);
//缓存
if ($ecms_tofunr['cacheopen'] == 1) {
Ecms_eCacheIn($ecms_tofunr, stripSlashes($string));
} else {
echo stripSlashes($string);
}
//缓存
db_close();
$empire = null;
?>
nginx伪静态规则
网上很多地方都有:
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if ($request_uri !~ "^(/d/|/e/|/html/|/images/|/s/|/search/|/skin/|/t/|/ad/)"){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/([0-9a-zA-Z-/]+)/(|index.html|index_[0-9]+.html)$ /e/action/list.php?classid=$1&page=$2 last;
rewrite ^/([0-9a-zA-Z-/]+)/([0-9a-zA-Z]+)([_0-9]*).html$ /e/action/show.php?classid=$1&id=$2&page=$3 last;
rewrite ^/tags-(.+?)-([0-9]+).html$ /e/tags/index.php?tagname=$1&page=$2 last;
}