Browse Source

伪静态修复

tags/6.1.8
xushubieli 2 years ago
parent
commit
b47f4ae22a
4 changed files with 108 additions and 118 deletions
  1. +2
    -2
      src/admin/templets/makehtml_all.htm
  2. +1
    -1
      src/admin/templets/sys_data.htm
  3. +6
    -9
      src/admin/templets/sys_data_revert.htm
  4. +99
    -106
      src/system/archive/listview.class.php

+ 2
- 2
src/admin/templets/makehtml_all.htm View File

@@ -67,9 +67,9 @@ function SelUp(){
<tr>
<td width="260" height="26">更新选项:</td>
<td height="26">
<label><input name="uptype" id="uptype1" type="radio" value="time" onClick="SelUp()" checked="checked">&nbsp;指定时间的所有更新</label>
<label><input name="uptype" id="uptype1" type="radio" value="time" onClick="SelUp()">&nbsp;指定时间的所有更新</label>
<label><input name="uptype" id="uptype2" type="radio" onClick="SelUp()" value="id">&nbsp;指定ID文档的所有更新</label>
<label><input name="uptype" id="uptype3" type="radio" onClick="SelUp()" value="mkall">&nbsp;更新所有</label>
<label><input name="uptype" id="uptype3" type="radio" onClick="SelUp()" value="mkall" checked="checked">&nbsp;更新所有</label>
</td>
</tr>
<tr id="seltime">


+ 1
- 1
src/admin/templets/sys_data.htm View File

@@ -181,7 +181,7 @@
}
?>
<tr>
<td height="26" colspan="8">
<td height="30" colspan="8" align="center">
<button name="b1" type="button" id="b1" class="btn btn-success btn-sm" onClick="SelAll()">全选</button>
<button name="b2" type="button" id="b2" class="btn btn-success btn-sm" onClick="ReSel()">反选</button>
<button name="b3" type="button" id="b3" class="btn btn-success btn-sm" onClick="NoneSel()">取消</button>


+ 6
- 9
src/admin/templets/sys_data_revert.htm View File

@@ -110,22 +110,19 @@
<button name="b3" type="button" id="b3" onClick="NoneSel()" class="btn btn-success btn-sm">取消</button>
</td>
</tr>
<tr bgcolor="#F7F8ED">
<td height="26" colspan="4">
附加参数:
</td>
<tr>
<td height="26" colspan="4">附加参数:</td>
</tr>
<tr>
<td height="26" colspan="4">
<label><input name="structfile" type="checkbox" class="np" id="structfile" value="<?php echo $structfile?>"
checked='1'>
还原表结构信息(<?php echo $structfile?>)</label>
<label><input name="structfile" type="checkbox" class="np" id="structfile" value="<?php echo $structfile?>" checked='1'>
还原表结构信息(<?php echo $structfile?>)</label>
<label><input name="delfile" type="checkbox" class="np" id="delfile" value="1">
还原后删除备份文件</label></td>
还原后删除备份文件</label>
</td>
</tr>
<tr bgcolor="#FBFCE2">
<td height="30" colspan="4">
&nbsp;
<button type="submit" name="Submit" class="btn btn-success btn-sm">开始还原数据</button>
</td>
</tr>


+ 99
- 106
src/system/archive/listview.class.php View File

@@ -76,14 +76,14 @@ class ListView
$this->Fields['position'] = $this->TypeLink->GetPositionLink(true);
$this->Fields['title'] = preg_replace("/[<>]/", " / ", $this->TypeLink->GetPositionLink(false));
//添加联动多筛选
if (isset($_REQUEST['tid']))
{
foreach($_GET as $key => $value) {
if ($key!="tid" && $key!="TotalResult" && $key!="PageNo") {
$this->Fields[string_filter($key)] = string_filter(urldecode($value));
}
}
}
if (isset($_REQUEST['tid']))
{
foreach($_GET as $key => $value) {
if ($key!="tid" && $key!="TotalResult" && $key!="PageNo") {
$this->Fields[string_filter($key)] = string_filter(urldecode($value));
}
}
}
//设置一些全局参数的值
foreach ($GLOBALS['PubFields'] as $k => $v) $this->Fields[$k] = $v;
$this->Fields['rsslink'] = $GLOBALS['cfg_cmsurl']."/static/rss/".$this->TypeID.".xml";
@@ -131,48 +131,48 @@ class ListView
{
global $cfg_list_son,$cfg_need_typeid2,$cfg_cross_sectypeid;
if(empty($cfg_need_typeid2)) $cfg_need_typeid2 = 'N';
//获得附加表的相关信息
$addtable = $this->ChannelUnit->ChannelInfos['addtable'];
//获得附加表的相关信息
$addtable = $this->ChannelUnit->ChannelInfos['addtable'];
$filtersql = '';
if($addtable!="")
{
$addJoin = " LEFT JOIN `$addtable` ON arc.id = ".$addtable.'.aid ';
$addField = '';
$fields = explode(',',$this->ChannelUnit->ChannelInfos['listfields']);
foreach($fields as $k=>$v)
{
$nfields[$v] = $k;
}
if(is_array($this->ChannelUnit->ChannelFields) && !empty($this->ChannelUnit->ChannelFields))
{
foreach($this->ChannelUnit->ChannelFields as $k=>$arr)
{
if(isset($nfields[$k]))
{
if(!empty($arr['rename'])) {
$addField .= ','.$addtable.'.'.$k.' as '.$arr['rename'];
}
else {
$addField .= ','.$addtable.'.'.$k;
}
}
}
}
if (isset($_REQUEST['tid']))
{
foreach($_GET as $key => $value) {
$value1 = explode("|", $value);
foreach ($value1 as $valuea)
{
$filtersql .= ($key!="tid" && $key!="TotalResult" && $key!="PageNo") ? " AND find_in_set('".string_filter(urldecode($valuea))."', ".$addtable.".".string_filter($key).")" : '';
}
}
}
} else {
$addField = '';
$addJoin = '';
}
//统计数据库记录
if($addtable!="")
{
$addJoin = " LEFT JOIN `$addtable` ON arc.id = ".$addtable.'.aid ';
$addField = '';
$fields = explode(',',$this->ChannelUnit->ChannelInfos['listfields']);
foreach($fields as $k=>$v)
{
$nfields[$v] = $k;
}
if(is_array($this->ChannelUnit->ChannelFields) && !empty($this->ChannelUnit->ChannelFields))
{
foreach($this->ChannelUnit->ChannelFields as $k=>$arr)
{
if(isset($nfields[$k]))
{
if(!empty($arr['rename'])) {
$addField .= ','.$addtable.'.'.$k.' as '.$arr['rename'];
}
else {
$addField .= ','.$addtable.'.'.$k;
}
}
}
}
if (isset($_REQUEST['tid']))
{
foreach($_GET as $key => $value) {
$value1 = explode("|", $value);
foreach ($value1 as $valuea)
{
$filtersql .= ($key!="tid" && $key!="TotalResult" && $key!="PageNo") ? " AND find_in_set('".string_filter(urldecode($valuea))."', ".$addtable.".".string_filter($key).")" : '';
}
}
}
} else {
$addField = '';
$addJoin = '';
}
//统计数据库记录
$this->TotalResult = -1;
if (isset($GLOBALS['TotalResult'])) $this->TotalResult = $GLOBALS['TotalResult'];
if (isset($GLOBALS['PageNo'])) $this->PageNo = $GLOBALS['PageNo'];
@@ -633,46 +633,46 @@ class ListView
$ordersql = " ORDER BY arc.sortrank $orderWay";
}
$filtersql = '';
//获得附加表的相关信息
$addtable = $this->ChannelUnit->ChannelInfos['addtable'];
if($addtable!="")
{
$addJoin = " LEFT JOIN `$addtable` ON arc.id = ".$addtable.'.aid ';
$addField = '';
$fields = explode(',',$this->ChannelUnit->ChannelInfos['listfields']);
foreach($fields as $k=>$v)
{
$nfields[$v] = $k;
}
if(is_array($this->ChannelUnit->ChannelFields) && !empty($this->ChannelUnit->ChannelFields))
{
foreach($this->ChannelUnit->ChannelFields as $k=>$arr)
{
if(isset($nfields[$k]))
{
if(!empty($arr['rename'])) {
$addField .= ','.$addtable.'.'.$k.' as '.$arr['rename'];
}
else {
$addField .= ','.$addtable.'.'.$k;
}
}
}
}
if (isset($_REQUEST['tid']))
{
foreach($_GET as $key => $value) {
$value1 = explode("|", $value);
foreach ($value1 as $valuea)
{
$filtersql .= ($key!="tid" && $key!="TotalResult" && $key!="PageNo") ? " AND find_in_set('".string_filter(urldecode($valuea))."', ".$addtable.".".string_filter($key).")" : '';
}
}
}
} else {
$addField = '';
$addJoin = '';
}
//获得附加表的相关信息
$addtable = $this->ChannelUnit->ChannelInfos['addtable'];
if($addtable!="")
{
$addJoin = " LEFT JOIN `$addtable` ON arc.id = ".$addtable.'.aid ';
$addField = '';
$fields = explode(',',$this->ChannelUnit->ChannelInfos['listfields']);
foreach($fields as $k=>$v)
{
$nfields[$v] = $k;
}
if(is_array($this->ChannelUnit->ChannelFields) && !empty($this->ChannelUnit->ChannelFields))
{
foreach($this->ChannelUnit->ChannelFields as $k=>$arr)
{
if(isset($nfields[$k]))
{
if(!empty($arr['rename'])) {
$addField .= ','.$addtable.'.'.$k.' as '.$arr['rename'];
}
else {
$addField .= ','.$addtable.'.'.$k;
}
}
}
}
if (isset($_REQUEST['tid']))
{
foreach($_GET as $key => $value) {
$value1 = explode("|", $value);
foreach ($value1 as $valuea)
{
$filtersql .= ($key!="tid" && $key!="TotalResult" && $key!="PageNo") ? " AND find_in_set('".string_filter(urldecode($valuea))."', ".$addtable.".".string_filter($key).")" : '';
}
}
}
} else {
$addField = '';
$addJoin = '';
}
//如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)
if (preg_match('/hot|click|lastpost/', $orderby)) {
$query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,
@@ -716,7 +716,7 @@ class ListView
$GLOBALS['autoindex'] = 0;
for ($i = 0; $i < $row; $i++) {
if ($col > 1) {
$artlist .= "<div>\r\n";
$artlist .= "<div>";
}
for ($j = 0; $j < $col; $j++) {
if ($row = $this->dsql->GetArray("al")) {
@@ -805,7 +805,7 @@ class ListView
}//Loop Col
if ($col > 1) {
$i += $col - 1;
$artlist .= " </div>\r\n";
$artlist .= "</div>";
}
}//Loop Line
$t3 = ExecTime();
@@ -899,16 +899,6 @@ class ListView
if (preg_match('/end/i', $listitem)) $plist .= $endpage;
if (preg_match('/option/i', $listitem)) $plist .= $optionlist;
if (preg_match('/info/i', $listitem)) $plist .= $maininfo;
//伪静态分页处理
if ($cfg_rewrite == 'Y')
{
$plist = str_replace('/apps/', $cfg_cmspath.'/', $plist);
$plist = str_replace('.php?tid=','-',$plist);
$plist = preg_replace("/&TotalResult=(\d+)/i","",$plist);//去掉总结果数值
//目录版
$plist = preg_replace("/&PageNo=(\d+)/i",'-\\1',$plist);
//网页版$plist = preg_replace("/&PageNo=(\d+)/i",'-\\1.html',$plist);
}
return $plist;
}
/**
@@ -991,11 +981,14 @@ class ListView
if (preg_match('/end/i', $listitem)) $plist .= $endpage;
if (preg_match('/option/i', $listitem)) $plist .= $optionlist;
if (preg_match('/info/i', $listitem)) $plist .= $maininfo;
if ($cfg_rewrite == 'Y') {
$plist = str_replace('/apps/', $cfg_cmspath.'/', $plist);
$plist = str_replace('.php?tid=', '-', $plist);
$plist = str_replace('&TotalResult=', '-', $plist);
$plist = preg_replace("/&PageNo=(\d+)/i", '-\\1.html', $plist);
//伪静态分页
if ($cfg_rewrite == 'Y')
{
$plist = str_replace('.php?tid=','-',$plist);
$plist = preg_replace("/&TotalResult=(\d+)/i","",$plist);//去掉总结果数值
//目录版
$plist = preg_replace("/&PageNo=(\d+)/i",'-\\1',$plist);
//网页版$plist = preg_replace("/&PageNo=(\d+)/i",'-\\1.html',$plist);
}
return $plist;
}


Loading…
Cancel
Save