From 9600d54eca1b9f73f033851ad32236b0ccb10b6b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?=
<93301500+xushubieli@users.noreply.github.com>
Date: Tue, 28 Mar 2023 16:17:31 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B06.2.6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
system/archive/archives.class.php | 22 ++++++++++++++--------
system/archive/archives.m.class.php | 18 ++++++++++++------
system/archive/listview.class.php | 7 +++++--
system/archive/listview.m.class.php | 11 +++++++----
system/archive/searchview.class.php | 18 ++++++++++--------
system/archive/sglistview.class.php | 8 +++-----
6 files changed, 51 insertions(+), 33 deletions(-)
diff --git a/system/archive/archives.class.php b/system/archive/archives.class.php
index 56331f6..8cda349 100644
--- a/system/archive/archives.class.php
+++ b/system/archive/archives.class.php
@@ -59,7 +59,7 @@ class Archives
$this->TypeLink = new TypeLink($arr['typeid']);
if ($this->ChannelUnit->ChannelInfos['issystem'] != -1) {
//如果当前文档不是系统模型,为自定义模型
- $query = "SELECT arc.*,tp.reid,tp.typedir,ch.addtable FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp on tp.id=arc.typeid LEFT JOIN `#@__channeltype` as ch on arc.channel = ch.id WHERE arc.id='$aid' ";
+ $query = "SELECT arc.*,tp.reid,tp.typedir,ch.addtable,mb.uname,mb.face FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp on tp.id=arc.typeid LEFT JOIN `#@__channeltype` as ch on arc.channel = ch.id LEFT JOIN `#@__member` mb on arc.mid = mb.mid WHERE arc.id='$aid' ";
$this->Fields = $this->dsql->GetOne($query);
} else {
$this->Fields['title'] = '';
@@ -96,12 +96,16 @@ class Archives
foreach ($GLOBALS['PubFields'] as $k => $v) {
$this->Fields[$k] = $v;
}
- //为了减少重复查询,这里直接把附加表查询记录放在 $this->addTableRow 中,在 ParAddTable() 不再查询
+ //为了减少重复查询,这里直接把附加表查询记录放在$this->addTableRow中,在ParAddTable()不再查询
if ($this->ChannelUnit->ChannelInfos['addtable'] != '') {
- $query = "SELECT * FROM `{$this->ChannelUnit->ChannelInfos['addtable']}` WHERE `aid` = '$aid'";
+ if ($this->ChannelUnit->ChannelID < -1) {
+ $query = "SELECT tb.*,mb.uname,mb.face FROM `{$this->ChannelUnit->ChannelInfos['addtable']}` tb LEFT JOIN `#@__member` mb on tb.mid = mb.mid WHERE tb.`aid` = '$aid'";
+ } else {
+ $query = "SELECT * FROM `{$this->ChannelUnit->ChannelInfos['addtable']}` WHERE `aid` = '$aid'";
+ }
$this->addTableRow = $this->dsql->GetOne($query);
}
- //issystem==-1 表示自定义模型,自定义模型不支持redirecturl这类参数,因此限定文档普通模型才进行下面查询
+ //issystem==-1表示自定义模型,自定义模型不支持redirecturl这类参数,因此限定文档普通模型才进行下面查询
if ($this->ChannelUnit->ChannelInfos['addtable'] != '' && $this->ChannelUnit->ChannelInfos['issystem'] != -1) {
if (is_array($this->addTableRow)) {
$this->Fields['redirecturl'] = $this->addTableRow['redirecturl'];
@@ -113,7 +117,9 @@ class Archives
$this->Fields['userip'] = (empty($this->Fields['userip']) ? '' : trim($this->Fields['userip']));
} else {
$this->Fields['templet'] = $this->Fields['redirecturl'] = '';
+ $this->Fields['uname'] = $this->addTableRow['uname'];
}
+ $this->Fields['face'] = empty($this->Fields['face'])? $GLOBALS['cfg_mainsite'].'/static/web/img/admin.png' : $this->Fields['face'];
} //!error
}
//php4构造函数
@@ -182,15 +188,15 @@ class Archives
//设置全局环境变量
$this->Fields['typename'] = $this->TypeLink->TypeInfos['typename'];
@SetSysEnv($this->Fields['typeid'], $this->Fields['typename'], $this->Fields['id'], $this->Fields['title'], 'archives');
- //文档图片注释替换为标题,利于优化
+ //文档模型正文图片注释自动为标题
$this->Fields['body'] = str_ireplace(array('alt=""','alt=\'\''),'',$this->Fields['body']);
$this->Fields['body'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU","",$this->Fields['body']);
$this->Fields['body'] = str_ireplace("Fields['title']."\" title=\"".$this->Fields['title']."\" ",$this->Fields['body']);
- //图片注释替换为标题,利于优化
+ //图片模型正文图片注释自动为标题
$this->Fields['imgurls'] = str_ireplace(array('alt=""','alt=\'\''),'',$this->Fields['imgurls']);
$this->Fields['imgurls'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU","",$this->Fields['imgurls']);
$this->Fields['imgurls'] = str_ireplace("
Fields['title']."\" title=\"".$this->Fields['title']."\"",$this->Fields['imgurls']);
- //清除文档图片的宽度和高度,适配自适应网站
+ //移除文档模型正文图片宽度和高度,适配自适应/响应式网站
$this->Fields['body'] = preg_replace("/style=\"width\:(.*)\"/","",$this->Fields['body']);
}
//完成附加表信息读取
@@ -311,7 +317,7 @@ class Archives
$filenames = explode("/", $filename);
$this->NameFirst = preg_replace("/\.".$this->ShortName."$/i", "", $filenames[count($filenames) - 1]);
if ($this->NameFirst == '') {
- $this->NameFirst = $this->arcID;
+ $this->NameFirst = $this->ArcID;
}
//获得当前文档的全名
$filenameFull = GetFileUrl(
diff --git a/system/archive/archives.m.class.php b/system/archive/archives.m.class.php
index fe4b91f..2c1f2f0 100644
--- a/system/archive/archives.m.class.php
+++ b/system/archive/archives.m.class.php
@@ -61,7 +61,7 @@ class ArchivesMobile
$this->TypeLink = new TypeLink($arr['typeid']);
if ($this->ChannelUnit->ChannelInfos['issystem'] != -1) {
//如果当前文档不是系统模型,为自定义模型
- $query = "SELECT arc.*,tp.reid,tp.typedir,ch.addtable FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp on tp.id=arc.typeid LEFT JOIN `#@__channeltype` as ch on arc.channel = ch.id WHERE arc.id='$aid' ";
+ $query = "SELECT arc.*,tp.reid,tp.typedir,ch.addtable,mb.uname,mb.face FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp on tp.id=arc.typeid LEFT JOIN `#@__channeltype` as ch on arc.channel = ch.id LEFT JOIN `#@__member` mb on arc.mid = mb.mid WHERE arc.id='$aid' ";
$this->Fields = $this->dsql->GetOne($query);
} else {
$this->Fields['title'] = '';
@@ -98,9 +98,13 @@ class ArchivesMobile
foreach ($GLOBALS['PubFields'] as $k => $v) {
$this->Fields[$k] = $v;
}
- //为了减少重复查询,这里直接把附加表查询记录放在 $this->addTableRow 中,在 ParAddTable() 不再查询
+ //为了减少重复查询,这里直接把附加表查询记录放在$this->addTableRow中,在ParAddTable()不再查询
if ($this->ChannelUnit->ChannelInfos['addtable'] != '') {
- $query = "SELECT * FROM `{$this->ChannelUnit->ChannelInfos['addtable']}` WHERE `aid` = '$aid'";
+ if ($this->ChannelUnit->ChannelID < -1) {
+ $query = "SELECT tb.*,mb.uname,mb.face FROM `{$this->ChannelUnit->ChannelInfos['addtable']}` tb LEFT JOIN `#@__member` mb on tb.mid = mb.mid WHERE tb.`aid` = '$aid'";
+ } else {
+ $query = "SELECT * FROM `{$this->ChannelUnit->ChannelInfos['addtable']}` WHERE `aid` = '$aid'";
+ }
$this->addTableRow = $this->dsql->GetOne($query);
}
//issystem==-1 表示自定义模型,自定义模型不支持redirecturl这类参数,因此限定文档普通模型才进行下面查询
@@ -115,7 +119,9 @@ class ArchivesMobile
$this->Fields['userip'] = (empty($this->Fields['userip']) ? '' : trim($this->Fields['userip']));
} else {
$this->Fields['templet'] = $this->Fields['redirecturl'] = '';
+ $this->Fields['uname'] = $this->addTableRow['uname'];
}
+ $this->Fields['face'] = empty($this->Fields['face'])? $GLOBALS['cfg_mainsite'].'/static/web/img/admin.png' : $this->Fields['face'];
} //!error
}
//php4构造函数
@@ -184,15 +190,15 @@ class ArchivesMobile
//设置全局环境变量
$this->Fields['typename'] = $this->TypeLink->TypeInfos['typename'];
@SetSysEnv($this->Fields['typeid'], $this->Fields['typename'], $this->Fields['id'], $this->Fields['title'], 'archives');
- //文档图片注释替换为标题,利于优化
+ //文档模型正文图片注释自动为标题
$this->Fields['body'] = str_ireplace(array('alt=""','alt=\'\''),'',$this->Fields['body']);
$this->Fields['body'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU","",$this->Fields['body']);
$this->Fields['body'] = str_ireplace("
Fields['title']."\" title=\"".$this->Fields['title']."\" ",$this->Fields['body']);
- //图片注释替换为标题,利于优化
+ //图片模型正文图片注释自动为标题
$this->Fields['imgurls'] = str_ireplace(array('alt=""','alt=\'\''),'',$this->Fields['imgurls']);
$this->Fields['imgurls'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU","",$this->Fields['imgurls']);
$this->Fields['imgurls'] = str_ireplace("
Fields['title']."\" title=\"".$this->Fields['title']."\"",$this->Fields['imgurls']);
- //清除文档图片的宽度和高度,适配自适应网站
+ //移除文档模型正文图片宽度和高度,适配自适应/响应式网站
$this->Fields['body'] = preg_replace("/style=\"width\:(.*)\"/","",$this->Fields['body']);
}
//完成附加表信息读取
diff --git a/system/archive/listview.class.php b/system/archive/listview.class.php
index 72a5e95..3b2eb08 100644
--- a/system/archive/listview.class.php
+++ b/system/archive/listview.class.php
@@ -636,6 +636,7 @@ class ListView
}
//获得附加表的相关信息
$addtable = $this->ChannelUnit->ChannelInfos['addtable'];
+ $filtersql = "";
if ($addtable!="")
{
$addJoin = " LEFT JOIN `$addtable` ON arc.id = ".$addtable.'.aid ';
@@ -671,7 +672,7 @@ class ListView
}
//如果不用默认的sortrank或id排序,使用联合查询数据量大时非常缓慢
if (preg_match('/hot|click|lastpost/', $orderby)) {
- $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath $addField FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id $addJoin WHERE {$this->addSql} $filtersql $ordersql LIMIT $limitstart,$row";
+ $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,mb.uname,mb.face $addField FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb ON arc.mid=mb.mid $addJoin WHERE {$this->addSql} $filtersql $ordersql LIMIT $limitstart,$row";
}
//普通情况先从arctiny表查出id,然后按di查询速度非常快
else {
@@ -687,7 +688,7 @@ class ListView
if ($idstr == '') {
return '';
} else {
- $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath $addField FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id $addJoin WHERE arc.id in($idstr) $ordersql ";
+ $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,mb.uname,mb.face $addField FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb ON arc.mid=mb.mid $addJoin WHERE arc.id in($idstr) $ordersql ";
}
$t2 = ExecTime();
}
@@ -756,6 +757,7 @@ class ListView
if (preg_match('/c/', $row['flag'])) {
$row['title'] = "".$row['title']."";
}
+ $row['face'] = empty($row['face'])? $GLOBALS['cfg_mainsite'].'/static/web/img/admin.png' : $row['face'];
$row['textlink'] = "".$row['title']."";
$row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];
$row['memberurl'] = $GLOBALS['cfg_memberurl'];
@@ -920,6 +922,7 @@ class ListView
$purl .= '?'.$geturl;
$optionlist = '';
//添加联动单筛选
+ $pageaddurl = "";
foreach($_GET as $key => $value) {
$pageaddurl .= ($key!="tid" && $key!="TotalResult" && $key!="PageNo") ? "&".string_filter($key)."=".string_filter($value) : '';
}
diff --git a/system/archive/listview.m.class.php b/system/archive/listview.m.class.php
index 0c77f55..1c88861 100644
--- a/system/archive/listview.m.class.php
+++ b/system/archive/listview.m.class.php
@@ -662,6 +662,7 @@ class ListViewMobile
}
//获得附加表的相关信息
$addtable = $this->ChannelUnit->ChannelInfos['addtable'];
+ $filtersql = "";
if ($addtable!="")
{
$addJoin = " LEFT JOIN `$addtable` ON arc.id = ".$addtable.'.aid ';
@@ -697,7 +698,7 @@ class ListViewMobile
}
//如果不用默认的sortrank或id排序,使用联合查询数据量大时非常缓慢
if (preg_match('/hot|click|lastpost/', $orderby)) {
- $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath $addField FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id $addJoin WHERE {$this->addSql} $filtersql $ordersql LIMIT $limitstart,$row";
+ $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,mb.uname,mb.face $addField FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb ON arc.mid=mb.mid $addJoin WHERE {$this->addSql} $filtersql $ordersql LIMIT $limitstart,$row";
}
//普通情况先从arctiny表查出id,然后按di查询速度非常快
else {
@@ -713,7 +714,7 @@ class ListViewMobile
if ($idstr == '') {
return '';
} else {
- $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath $addField FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id $addJoin WHERE arc.id in($idstr) $ordersql ";
+ $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,mb.uname,mb.face $addField FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb ON arc.mid=mb.mid $addJoin WHERE arc.id in($idstr) $ordersql ";
}
$t2 = ExecTime();
}
@@ -766,9 +767,9 @@ class ListViewMobile
if ($row['litpic'] == '-' || $row['litpic'] == '') {
$row['litpic'] = $GLOBALS['cfg_cmspath'].'/static/web/img/thumbnail.jpg';
}
- if (!preg_match("/^http:\/\//i", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') {
+ /*if (!preg_match("/^http:\/\//i", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') {
$row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];
- }
+ }*/
$row['picname'] = $row['litpic'];
$row['stime'] = GetDateMK($row['pubdate']);
$row['typelink'] = "".$row['typename']."";
@@ -782,6 +783,7 @@ class ListViewMobile
if (preg_match('/c/', $row['flag'])) {
$row['title'] = "".$row['title']."";
}
+ $row['face'] = empty($row['face'])? $GLOBALS['cfg_mainsite'].'/static/web/img/admin.png' : $row['face'];
$row['textlink'] = "".$row['title']."";
$row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];
$row['memberurl'] = $GLOBALS['cfg_memberurl'];
@@ -946,6 +948,7 @@ class ListViewMobile
$purl .= '?'.$geturl;
$optionlist = '';
//添加联动单筛选
+ $pageaddurl = "";
foreach($_GET as $key => $value) {
$pageaddurl .= ($key!="tid" && $key!="TotalResult" && $key!="PageNo") ? "&".string_filter($key)."=".string_filter($value) : '';
}
diff --git a/system/archive/searchview.class.php b/system/archive/searchview.class.php
index 16cb818..62c4468 100644
--- a/system/archive/searchview.class.php
+++ b/system/archive/searchview.class.php
@@ -27,7 +27,9 @@ class SearchView
var $TotalPage;
var $TotalResult;
var $pagesize;
+ var $AddTable;
var $ChannelType;
+ var $ChannelTypeid;
var $TempInfos;
var $Fields;
var $PartView;
@@ -304,8 +306,8 @@ class SearchView
continue;
}
//这里不区分大小写进行关键词替换
- $fstr = str_ireplace($k, "$k", $fstr);
- //速度更快,效率更高$fstr = str_replace($k, "$k", $fstr);
+ $fstr = str_ireplace($k, "$k", $fstr);
+ //速度更快,效率更高$fstr = str_replace($k, "$k", $fstr);
}
return $fstr;
}
@@ -524,7 +526,7 @@ class SearchView
}
}
//搜索
- $query = "SELECT arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath FROM `{$this->AddTable}` arc LEFT JOIN `#@__arctype` act ON arc.typeid=act.id WHERE {$this->AddSql} $ordersql LIMIT $limitstart,$row";
+ $query = "SELECT arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath,mb.uname,mb.face FROM `{$this->AddTable}` arc LEFT JOIN `#@__arctype` act ON arc.typeid=act.id LEFT JOIN `#@__member` mb on arc.mid = mb.mid WHERE {$this->AddSql} $ordersql LIMIT $limitstart,$row";
$this->dsql->SetQuery($query);
$this->dsql->Execute("al");
$artlist = "";
@@ -571,7 +573,7 @@ class SearchView
if ($row['litpic'] == '-' || $row['litpic'] == '') {
$row['litpic'] = $GLOBALS['cfg_cmspath'].'/static/web/img/thumbnail.jpg';
}
- if (!preg_match("/^http:\/\//", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') {
+ if (!preg_match("/^(http|https):\/\//", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') {
$row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];
}
$row['picname'] = $row['litpic'];
@@ -586,6 +588,7 @@ class SearchView
$row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];
$row['memberurl'] = $GLOBALS['cfg_memberurl'];
$row['templeturl'] = $GLOBALS['cfg_templeturl'];
+ $row['face'] = empty($row['face'])? $GLOBALS['cfg_mainsite'].'/static/web/img/admin.png' : $row['face'];
if (is_array($this->dtp2->CTags)) {
foreach ($this->dtp2->CTags as $k => $ctag) {
if ($ctag->GetName() == 'array') {
@@ -697,15 +700,14 @@ class SearchView
}
}
$plist = "";
- $plist .= "