diff --git a/src/system/archive/archives.class.php b/src/system/archive/archives.class.php index fd1521ba..bb973a83 100755 --- a/src/system/archive/archives.class.php +++ b/src/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'] = ''; @@ -98,7 +98,12 @@ class Archives } //为了减少重复查询,这里直接把附加表查询记录放在 $this->addTableRow 中,在 ParAddTable() 不再查询 if ($this->ChannelUnit->ChannelInfos['addtable'] != '') { - $query = "SELECT * FROM `{$this->ChannelUnit->ChannelInfos['addtable']}` WHERE `aid` = '$aid'"; + if ($this->ChannelUnit->ChannelID < 0) { + $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这类参数,因此限定文档普通模型才进行下面查询 @@ -113,7 +118,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构造函数 diff --git a/src/system/archive/freelist.class.php b/src/system/archive/freelist.class.php index 5398dfb3..4b492447 100755 --- a/src/system/archive/freelist.class.php +++ b/src/system/archive/freelist.class.php @@ -475,7 +475,7 @@ class FreeList } } } - $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 {$this->maintable} arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id $addJoin WHERE $orwhere $ordersql LIMIT $limitstart,".$this->pagesize; + $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 {$this->maintable} arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb on arc.mid = mb.mid $addJoin WHERE $orwhere $ordersql LIMIT $limitstart,".$this->pagesize; $this->dsql->SetQuery($query); $this->dsql->Execute("al"); $artlist = ""; @@ -553,6 +553,7 @@ class FreeList 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']; //编译附加表里的数据 if (is_object($this->ChannelUnit)) { foreach ($row as $k => $v) { diff --git a/src/system/archive/listview.class.php b/src/system/archive/listview.class.php index 514ccf83..aa47402b 100755 --- a/src/system/archive/listview.class.php +++ b/src/system/archive/listview.class.php @@ -647,7 +647,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 { @@ -663,7 +663,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(); } @@ -732,6 +732,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']; diff --git a/src/system/archive/searchview.class.php b/src/system/archive/searchview.class.php index 37a06cac..8af3ad65 100755 --- a/src/system/archive/searchview.class.php +++ b/src/system/archive/searchview.class.php @@ -521,7 +521,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 = ""; @@ -568,7 +568,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']; @@ -583,6 +583,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') { diff --git a/src/system/archive/sglistview.class.php b/src/system/archive/sglistview.class.php index 79b1f0d4..cee01e2c 100755 --- a/src/system/archive/sglistview.class.php +++ b/src/system/archive/sglistview.class.php @@ -539,7 +539,7 @@ class SgListView $addField = 'arc.'.join(',arc.', $this->ListFields); //如果不用默认的sortrank或id排序,使用联合查询数据量大时非常缓慢 if (preg_match('/hot|click/', $orderby) || $this->sAddTable) { - $query = "SELECT tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,arc.aid,arc.aid AS id,arc.typeid,$addField FROM `{$this->AddTable}` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row"; + $query = "SELECT tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,arc.aid,arc.aid AS id,arc.typeid,mb.uname,mb.face,$addField FROM `{$this->AddTable}` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb on arc.mid = mb.mid WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row"; } //普通情况先从arctiny表查出id,然后按id查询速度非常快 else { @@ -556,7 +556,7 @@ class SgListView if ($idstr == '') { return ''; } else { - $query = "SELECT tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,arc.aid,arc.aid AS id,arc.typeid,$addField FROM `{$this->AddTable}` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id WHERE arc.aid IN($idstr) AND arc.arcrank >-1 $ordersql"; + $query = "SELECT tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,arc.aid,arc.aid AS id,arc.typeid,mb.uname,mb.face,$addField FROM `{$this->AddTable}` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb on arc.mid = mb.mid WHERE arc.aid IN($idstr) AND arc.arcrank >-1 $ordersql"; } $t2 = ExecTime(); } @@ -624,6 +624,7 @@ class SgListView $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']; //编译附加表里的数据 foreach ($row as $k => $v) $row[strtolower($k)] = $v; foreach ($this->ChannelUnit->ChannelFields as $k => $arr) { diff --git a/src/system/archive/specview.class.php b/src/system/archive/specview.class.php index 9e75b3fd..4b3e22df 100755 --- a/src/system/archive/specview.class.php +++ b/src/system/archive/specview.class.php @@ -324,7 +324,7 @@ class SpecView } else { $ordersql = " ORDER BY arc.sortrank desc"; } - $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,arc.money,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id WHERE $orwhere $ordersql LIMIT $limitstart,$row "; + $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,arc.money,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,mb.uname,mb.face FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb on arc.mid = mb.mid WHERE $orwhere $ordersql LIMIT $limitstart,$row "; $this->dsql->SetQuery($query); $this->dsql->Execute('al'); $artlist = ''; @@ -377,6 +377,7 @@ class SpecView $row["image"] = ""; $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl']; $row['memberurl'] = $GLOBALS['cfg_memberurl']; + $row['face'] = empty($row['face'])? $GLOBALS['cfg_mainsite'].'/static/web/img/admin.png' : $row['face']; $row['templeturl'] = $GLOBALS['cfg_templeturl']; //编译附加表里的数据 foreach ($this->ChannelUnit->ChannelFields as $k => $arr) { diff --git a/src/system/archive/taglist.class.php b/src/system/archive/taglist.class.php index 607b23cc..4397d2cb 100755 --- a/src/system/archive/taglist.class.php +++ b/src/system/archive/taglist.class.php @@ -295,7 +295,7 @@ class TagList } else { $ordersql = " ORDER BY se.id $orderWay"; } - $query = "SELECT se.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `#@__archives` se LEFT JOIN `#@__arctype` tp ON se.typeid=tp.id WHERE $orwhere $ordersql "; + $query = "SELECT se.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,mb.uname,mb.face FROM `#@__archives` se LEFT JOIN `#@__arctype` tp ON se.typeid=tp.id LEFT JOIN `#@__member` mb on se.mid = mb.mid WHERE $orwhere $ordersql "; $this->dsql->SetQuery($query); $this->dsql->Execute('al'); $row = $this->pagesize / $col; @@ -362,6 +362,7 @@ class TagList $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') { diff --git a/src/system/common.func.php b/src/system/common.func.php index 5472b5ea..7e04f534 100755 --- a/src/system/common.func.php +++ b/src/system/common.func.php @@ -508,37 +508,6 @@ function GetUpdateSQL() fclose($fp); return $result; } -//会员头像标签{dede:field.mid function='face(@me)'/}和[field:mid function='face(@me)'/] -function face($mid) -{ - global $dsql; - if ($mid <> 0) { - $row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='$mid'"); - if ($row['face'] == "") { - $face = "/static/web/img/admin.png"; - } else { - $face = $row['face']; - $face = "$face"; - } - } - return $face; -} -//会员昵称标签{dede:field.mid function="GetMemberInfos('uname',@me)"/}和[field:mid function="GetMemberInfos('uname',@me)"/] -function GetMemberInfos($fields, $mid) -{ - global $dsql; - if ($mid <= 0) { - $revalue = "张三"; - } else { - $row=$dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='{$mid}'"); - if (!is_array($row)) { - $revalue = "李四"; - } else { - $revalue = $row[$fields]; - } - } - return $revalue; -} //标签调用标签[field:id function='GetMyTags(@me,2)'/]2表示输出2个文档 if (!function_exists('GetMyTags')) { function GetMyTags($aid, $num=3) diff --git a/src/system/taglib/arclist.lib.php b/src/system/taglib/arclist.lib.php index b761984c..b647a0b3 100755 --- a/src/system/taglib/arclist.lib.php +++ b/src/system/taglib/arclist.lib.php @@ -273,7 +273,7 @@ function lib_arclistDone (&$refObj, &$ctag, $typeid=0, $row=10, $col=1, $titlele $addfieldsSqlJoin = " LEFT JOIN `$addtable` addf ON addf.aid = arc.id "; } } - $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 $addfieldsSql FROM `$maintable` arc LEFT JOIN `#@__arctype` tp on arc.typeid=tp.id $addfieldsSqlJoin $orwhere $ordersql $limitsql"; + $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 $addfieldsSql FROM `$maintable` arc LEFT JOIN `#@__arctype` tp on arc.typeid=tp.id LEFT JOIN `#@__member` mb on arc.mid = mb.mid $addfieldsSqlJoin $orwhere $ordersql $limitsql"; //统一hash $taghash = md5(serialize($ctag).$typeid); $needSaveCache = true; @@ -365,6 +365,7 @@ function lib_arclistDone (&$refObj, &$ctag, $typeid=0, $row=10, $col=1, $titlele $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($dtp2->CTags)) { foreach ($dtp2->CTags as $k => $ctag) { if ($ctag->GetName() == 'array') { diff --git a/src/theme/dedebiz/article_article.htm b/src/theme/dedebiz/article_article.htm index d4595cdf..b2afa505 100644 --- a/src/theme/dedebiz/article_article.htm +++ b/src/theme/dedebiz/article_article.htm @@ -37,7 +37,7 @@

{dede:field.title/}

- {dede:field.mid function="GetMemberInfos('uname',@me)"/} + {dede:field.uname/} {dede:field.pubdate function="MyDate('Y-m-d',@me)"/} {dede:field.source/} diff --git a/src/theme/dedebiz/article_default.htm b/src/theme/dedebiz/article_default.htm index 76f957d6..3e46449c 100644 --- a/src/theme/dedebiz/article_default.htm +++ b/src/theme/dedebiz/article_default.htm @@ -36,7 +36,7 @@

{dede:field.title/}