From ed53f461dd61faf07c6a04963229cc9d21308e7f Mon Sep 17 00:00:00 2001 From: tianya Date: Wed, 19 Aug 2020 20:11:23 +0800 Subject: [PATCH] =?UTF-8?q?TAG=E6=94=AF=E6=8C=81=E9=9D=99=E6=80=81?= =?UTF-8?q?=E5=8C=96=E7=AE=80=E5=8D=95=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dede/inc/inc_menu.php | 1 + src/dede/makehtml_list_action.php | 2 +- src/dede/makehtml_taglist.php | 14 + src/dede/makehtml_taglist_action.php | 83 ++++ src/dede/templets/makehtml_taglist.htm | 87 ++++ src/include/arc.taglist.class.php | 603 ++++++++++++++----------- src/include/inc/inc_fun_funAdmin.php | 2 +- src/include/taglib/tag.lib.php | 87 ++-- 8 files changed, 577 insertions(+), 302 deletions(-) create mode 100644 src/dede/makehtml_taglist.php create mode 100644 src/dede/makehtml_taglist_action.php create mode 100644 src/dede/templets/makehtml_taglist.htm diff --git a/src/dede/inc/inc_menu.php b/src/dede/inc/inc_menu.php index bae82878..faa511b6 100755 --- a/src/dede/inc/inc_menu.php +++ b/src/dede/inc/inc_menu.php @@ -147,6 +147,7 @@ $adminMenu1 + diff --git a/src/dede/makehtml_list_action.php b/src/dede/makehtml_list_action.php index b2261c9b..2885a5e4 100755 --- a/src/dede/makehtml_list_action.php +++ b/src/dede/makehtml_list_action.php @@ -84,7 +84,7 @@ if(!empty($tid)) { if(!isset($cfg_Cs[$tid])) { - showmsg('没有该栏目数据, 可能缓存文件(/data/cache/inc_catalog_base.inc)没有更新, 请检查是否有写入权限'); + ShowMsg('没有该栏目数据, 可能缓存文件(/data/cache/inc_catalog_base.inc)没有更新, 请检查是否有写入权限','javascript:;'); exit(); } if($cfg_Cs[$tid][1]>0) diff --git a/src/dede/makehtml_taglist.php b/src/dede/makehtml_taglist.php new file mode 100644 index 00000000..177536ca --- /dev/null +++ b/src/dede/makehtml_taglist.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/src/dede/makehtml_taglist_action.php b/src/dede/makehtml_taglist_action.php new file mode 100644 index 00000000..b33418e5 --- /dev/null +++ b/src/dede/makehtml_taglist_action.php @@ -0,0 +1,83 @@ +GetOne("SELECT count(*) as dd FROM `#@__tagindex`"); + $total = intval($total['dd']); +} + +$allfinish = false; + +if ($offset < ($total - 1)) { + $tt = $dsql->GetOne("SELECT * FROM `#@__tagindex` LIMIT " . $offset . ",1;"); + $tagid = $tt['id']; + $offset++; +} else { + $allfinish = true; +} + +$tag = $dsql->GetOne("SELECT * FROM `#@__tagindex` WHERE id='$tagid' LIMIT 0,1;"); + +MkdirAll($cfg_basedir . "/a/tags", $cfg_dir_purview); + +if (is_array($tag) && count($tag) > 0) { + $dlist = new TagList($tag['tag'], 'taglist.htm'); + $dlist->CountRecord(); + $ntotalpage = $dlist->TotalPage; + + if ($ntotalpage <= $maxpagesize) { + $dlist->MakeHtml('', ''); + $finishType = TRUE; + } else { + $reurl = $dlist->MakeHtml($mkpage, $maxpagesize); + $finishType = FALSE; + $mkpage = $mkpage + $maxpagesize; + if ($mkpage >= ($ntotalpage + 1)) $finishType = TRUE; + } + + $nextpage = $pageno + 1; + if ($nextpage >= $ntotalpage && $finishType && !($offset < ($total - 1))) { + $dlist = new TagList('', 'tag.htm'); + $dlist->MakeHtml(1, 10); + $reurl = '../a/tags/'; + if ($total > 0) { + ShowMsg("完成TAG更新!浏览TAG首页", "javascript:;"); + } else { + $reurl .= GetPinyin($tag['tag']); + ShowMsg("完成TAG更新:[" . $tag['tag'] . "]!浏览TAG首页", "javascript:;"); + } + exit(); + } else { + if ($finishType) { + if ($allfinish == true) { + $total = 0; + } + $gourl = "makehtml_taglist_action.php?maxpagesize=$maxpagesize&tagid=$tagid&pageno=$nextpage&total=$total&offset=$offset"; + ShowMsg("成功生成TAG:[" . $tag['tag'] . "],继续进行操作!", $gourl, 0, 100); + exit(); + } else { + $gourl = "makehtml_taglist_action.php?mkpage=$mkpage&maxpagesize=$maxpagesize&tagid=$tagid&pageno=$pageno&total=$total&offset=$offset"; + ShowMsg("成功生成TAG:[" . $tag['tag'] . "],继续进行操作...", $gourl, 0, 100); + exit(); + } + } +} diff --git a/src/dede/templets/makehtml_taglist.htm b/src/dede/templets/makehtml_taglist.htm new file mode 100644 index 00000000..ee5c5a7d --- /dev/null +++ b/src/dede/templets/makehtml_taglist.htm @@ -0,0 +1,87 @@ + + + + + 更新TAG HTML + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
更新TAG HTML +
+
选择TAG: + Execute('al',$sql); + echo ""; + ?> +
每次最大创建页数: + 个文件
说明: + * TAG首页模板文件://tag.htm
+ * TAG列表页模板文件://taglist.htm
+ 生成静态文件后,访问动态文件则直接跳转到静态文件,如果需要动态访问,删除对应文件即可。 +
+ +
+ + + + + +
进行状态: + + [增大] [缩小] +
+
+
+ +
+
+ + + \ No newline at end of file diff --git a/src/include/arc.taglist.class.php b/src/include/arc.taglist.class.php index 2f1fba96..489859b1 100755 --- a/src/include/arc.taglist.class.php +++ b/src/include/arc.taglist.class.php @@ -1,4 +1,4 @@ -dsql = $dsql; $this->dtp = new DedeTagParse(); $this->dtp->SetRefObj($this); - $this->dtp->SetNameSpace("dede","{","}"); + $this->dtp->SetNameSpace("dede", "{", "}"); $this->dtp2 = new DedeTagParse(); - $this->dtp2->SetNameSpace("field","[","]"); + $this->dtp2->SetNameSpace("field", "[", "]"); $this->TypeLink = new TypeLink(0); $this->Fields['tag'] = $keyword; - $this->Fields['title'] = $keyword; + if (empty($keyword)) { + $this->Fields['title'] = "TAGS列表"; + } else { + $this->Fields['title'] = $keyword; + } + $this->TempletsFile = ''; //设置一些全局参数的值 - foreach($GLOBALS['PubFields'] as $k=>$v) $this->Fields[$k] = $v; + foreach ($GLOBALS['PubFields'] as $k => $v) $this->Fields[$k] = $v; //读取Tag信息 - if($this->Tag!='') - { + if ($this->Tag != '') { $this->TagInfos = $this->dsql->GetOne("Select * From `#@__tagindex` where tag like '{$this->Tag}' "); - if(!is_array($this->TagInfos)) - { - $fullsearch = $GLOBALS['cfg_phpurl']."/search.php?keyword=".$this->Tag."&searchtype=titlekeyword"; + if (!is_array($this->TagInfos)) { + $fullsearch = $GLOBALS['cfg_phpurl'] . "/search.php?keyword=" . $this->Tag . "&searchtype=titlekeyword"; $msg = "系统无此标签,可能已经移除!

你还可以尝试通过搜索程序去搜索这个关键字:前往搜索>>"; - ShowMsg($msg,"-1"); + ShowMsg($msg, "-1"); exit(); } } //初始化模板 - $tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style'].'/'.$this->Templet; - if(!file_exists($tempfile)||!is_file($tempfile)) - { + $tempfile = $GLOBALS['cfg_basedir'] . $GLOBALS['cfg_templets_dir'] . "/" . $GLOBALS['cfg_df_style'] . '/' . $this->Templet; + if (!file_exists($tempfile) || !is_file($tempfile)) { echo "模板文件不存在,无法解析文档!"; exit(); } $this->dtp->LoadTemplate($tempfile); - $this->TempletsFile = preg_replace("#^".$GLOBALS['cfg_basedir']."#", '', $tempfile); - + $this->TempletsFile = preg_replace("#^" . $GLOBALS['cfg_basedir'] . "#", '', $tempfile); } //php4构造函数 - function TagList($keyword,$templet) + function TagList($keyword, $templet) { - $this->__construct($keyword,$templet); + $this->__construct($keyword, $templet); } //关闭相关资源 @@ -112,20 +113,15 @@ class TagList { //统计数据库记录 $this->TotalResult = -1; - if(isset($GLOBALS['TotalResult'])) - { + if (isset($GLOBALS['TotalResult'])) { $this->TotalResult = $GLOBALS['TotalResult']; } - if(isset($GLOBALS['PageNo'])) - { - $this->PageNo = $GLOBALS['PageNo']; - } - else - { + if (isset($GLOBALS['PageNo'])) { + $this->PageNo = intval($GLOBALS['PageNo']); + } else { $this->PageNo = 1; } - if($this->TotalResult==-1) - { + if ($this->TotalResult == -1) { $cquery = "SELECT COUNT(*) AS dd FROM `#@__taglist` WHERE tid = '{$this->TagInfos['id']}' AND arcrank >-1 "; $row = $this->dsql->GetOne($cquery); $this->TotalResult = $row['dd']; @@ -139,38 +135,29 @@ class TagList $oneday = 24 * 3600; //周统计 - if(ceil( ($ntime - $this->TagInfos['weekup'])/$oneday ) > 7) - { + if (ceil(($ntime - $this->TagInfos['weekup']) / $oneday) > 7) { $this->dsql->ExecuteNoneQuery("UPDATE `#@__tagindex` SET weekcc=0,weekup='{$ntime}' WHERE tag LIKE '{$this->Tag}' "); } //月统计 - if(ceil( ($ntime - $this->TagInfos['monthup'])/$oneday ) > 30) - { + if (ceil(($ntime - $this->TagInfos['monthup']) / $oneday) > 30) { $this->dsql->ExecuteNoneQuery("UPDATE `#@__tagindex` SET monthcc=0,monthup='{$ntime}' WHERE tag LIKE '{$this->Tag}' "); } } $ctag = $this->dtp->GetTag("page"); - if(!is_object($ctag)) - { + if (!is_object($ctag)) { $ctag = $this->dtp->GetTag("list"); } - if(!is_object($ctag)) - { + if (!is_object($ctag)) { $this->PageSize = 25; - } - else - { - if($ctag->GetAtt("pagesize")!='') - { + } else { + if ($ctag->GetAtt("pagesize") != '') { $this->PageSize = $ctag->GetAtt("pagesize"); - } - else - { + } else { $this->PageSize = 25; } } - $this->TotalPage = ceil($this->TotalResult/$this->PageSize); + $this->TotalPage = ceil($this->TotalResult / $this->PageSize); } /** @@ -181,14 +168,20 @@ class TagList */ function Display() { - if($this->Tag!='') - { + $makeDir = empty($this->Tag) ? $this->GetTruePath() . "/a/tags/index.html" : $this->GetTruePath() . "/a/tags/" . GetPinyin($this->Tag) . "/index.html"; + + if (file_exists($makeDir)) { + header('HTTP/1.1 301 Moved Permanently'); + header('Location:a/tags/' . GetPinyin($this->Tag) . "/"); + exit; + } + + if ($this->Tag != '') { $this->CountRecord(); } $this->ParseTempletsFirst(); - if($this->Tag!='') - { - $this->ParseDMFields($this->PageNo,0); + if ($this->Tag != '') { + $this->ParseDMFields($this->PageNo, 0); } $this->Close(); $this->dtp->Display(); @@ -202,7 +195,7 @@ class TagList */ function ParseTempletsFirst() { - MakeOneTag($this->dtp,$this); + MakeOneTag($this->dtp, $this); } /** @@ -213,58 +206,49 @@ class TagList * @param int $ismake 是否编译 * @return string */ - function ParseDMFields($PageNo, $ismake=1) + function ParseDMFields($PageNo, $ismake = 1) { - foreach($this->dtp->CTags as $tagid=>$ctag){ - if($ctag->GetName()=="list") - { - $limitstart = ($this->PageNo-1) * $this->PageSize; - if($limitstart<0) - { + foreach ($this->dtp->CTags as $tagid => $ctag) { + if ($ctag->GetName() == "list") { + $limitstart = (intval($this->PageNo) - 1) * $this->PageSize; + if ($limitstart < 0) { $limitstart = 0; } $row = $this->PageSize; - if(trim($ctag->GetInnerText())=="") - { + if (trim($ctag->GetInnerText()) == "") { $InnerText = GetSysTemplets("list_fulllist.htm"); - } - else - { + } else { $InnerText = trim($ctag->GetInnerText()); } - $this->dtp->Assign($tagid, - $this->GetArcList( - $limitstart, - $row, - $ctag->GetAtt("col"), - $ctag->GetAtt("titlelen"), - $ctag->GetAtt("infolen"), - $ctag->GetAtt("imgwidth"), - $ctag->GetAtt("imgheight"), - $ctag->GetAtt("listtype"), - $ctag->GetAtt("orderby"), - $InnerText, - $ctag->GetAtt("tablewidth"), - $ismake, - $ctag->GetAtt("orderway") - ) + $this->dtp->Assign( + $tagid, + $this->GetArcList( + $limitstart, + $row, + $ctag->GetAtt("col"), + $ctag->GetAtt("titlelen"), + $ctag->GetAtt("infolen"), + $ctag->GetAtt("imgwidth"), + $ctag->GetAtt("imgheight"), + $ctag->GetAtt("listtype"), + $ctag->GetAtt("orderby"), + $InnerText, + $ctag->GetAtt("tablewidth"), + $ismake, + $ctag->GetAtt("orderway") + ) ); - } - else if($ctag->GetName()=="pagelist") - { + } else if ($ctag->GetName() == "pagelist") { $list_len = trim($ctag->GetAtt("listsize")); - $ctag->GetAtt("listitem")=="" ? $listitem="info,index,pre,pageno,next,end,option" : $listitem=$ctag->GetAtt("listitem"); - if($list_len=="") - { + $ctag->GetAtt("listitem") == "" ? $listitem = "info,index,pre,pageno,next,end,option" : $listitem = $ctag->GetAtt("listitem"); + if ($list_len == "") { $list_len = 3; } - if($ismake==0) - { - $this->dtp->Assign($tagid,$this->GetPageListDM($list_len,$listitem)); - } - else - { - $this->dtp->Assign($tagid,$this->GetPageListST($list_len,$listitem)); + // var_dump($ismake); + if ($ismake == 0) { + $this->dtp->Assign($tagid, $this->GetPageListDM($list_len, $listitem)); + } else { + $this->dtp->Assign($tagid, $this->GetPageListST($list_len, $listitem)); } } } @@ -289,46 +273,54 @@ class TagList * @param string $orderWay 排序方式 * @return string */ - function GetArcList($limitstart=0,$row=10,$col=1,$titlelen=30,$infolen=250, - $imgwidth=120,$imgheight=90,$listtype="all",$orderby="default",$innertext="",$tablewidth="100",$ismake=1,$orderWay='desc') - { - $getrow = ($row=='' ? 10 : $row); - if($limitstart=='') $limitstart = 0; - if($titlelen=='') $titlelen = 100; - if($infolen=='') $infolen = 250; - if($imgwidth=='') $imgwidth = 120; - if($imgheight=='') $imgheight = 120; - if($listtype=='') $listtype = 'all'; - $orderby = ($orderby=='' ? 'default' : strtolower($orderby) ); - if($orderWay=='') $orderWay = 'desc'; + function GetArcList( + $limitstart = 0, + $row = 10, + $col = 1, + $titlelen = 30, + $infolen = 250, + $imgwidth = 120, + $imgheight = 90, + $listtype = "all", + $orderby = "default", + $innertext = "", + $tablewidth = "100", + $ismake = 1, + $orderWay = 'desc' + ) { + $getrow = ($row == '' ? 10 : $row); + if ($limitstart == '') $limitstart = 0; + if ($titlelen == '') $titlelen = 100; + if ($infolen == '') $infolen = 250; + if ($imgwidth == '') $imgwidth = 120; + if ($imgheight == '') $imgheight = 120; + if ($listtype == '') $listtype = 'all'; + $orderby = ($orderby == '' ? 'default' : strtolower($orderby)); + if ($orderWay == '') $orderWay = 'desc'; $tablewidth = str_replace("%", "", $tablewidth); - if($tablewidth=='') $tablewidth=100; - if($col=='') $col=1; - $colWidth = ceil(100/$col); - $tablewidth = $tablewidth."%"; - $colWidth = $colWidth."%"; + if ($tablewidth == '') $tablewidth = 100; + if ($col == '') $col = 1; + $colWidth = ceil(100 / $col); + $tablewidth = $tablewidth . "%"; + $colWidth = $colWidth . "%"; $innertext = trim($innertext); - if($innertext=='') $innertext = GetSysTemplets("list_fulllist.htm"); + if ($innertext == '') $innertext = GetSysTemplets("list_fulllist.htm"); $idlists = $ordersql = ''; $this->dsql->SetQuery("SELECT aid FROM `#@__taglist` WHERE tid = '{$this->TagInfos['id']}' AND arcrank>-1 LIMIT $limitstart,$getrow"); $this->dsql->Execute(); - while($row=$this->dsql->GetArray()) - { - $idlists .= ($idlists=='' ? $row['aid'] : ','.$row['aid']); + while ($row = $this->dsql->GetArray()) { + $idlists .= ($idlists == '' ? $row['aid'] : ',' . $row['aid']); } - if($idlists=='') return ''; + if ($idlists == '') return ''; //按不同情况设定SQL条件 $orwhere = " se.id IN($idlists) "; //排序方式 - if($orderby=="sortrank") - { + if ($orderby == "sortrank") { $ordersql = " ORDER BY se.sortrank $orderWay"; - } - else - { - $ordersql=" ORDER BY se.id $orderWay"; + } 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 "; @@ -339,88 +331,91 @@ class TagList $artlist = ''; $this->dtp2->LoadSource($innertext); $GLOBALS['autoindex'] = 0; - for($i=0; $i<$row; $i++) - { - if($col > 1) - { + for ($i = 0; $i < $row; $i++) { + if ($col > 1) { $artlist .= "
\r\n"; } - for($j=0; $j<$col; $j++) - { - if($row = $this->dsql->GetArray("al")) - { + for ($j = 0; $j < $col; $j++) { + if ($row = $this->dsql->GetArray("al")) { $GLOBALS['autoindex']++; $ids[$row['id']] = $row['id']; //处理一些特殊字段 - $row['infos'] = cn_substr($row['description'],$infolen); + $row['infos'] = cn_substr($row['description'], $infolen); $row['id'] = $row['id']; - $row['arcurl'] = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'], - $row['ismake'], - $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'], - $row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']); - $row['typeurl'] = GetTypeUrl($row['typeid'],MfTypedir($row['typedir']),$row['isdefault'],$row['defaultname'], - $row['ispart'],$row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']); - if($row['litpic'] == '-' || $row['litpic'] == '') - { - $row['litpic'] = $GLOBALS['cfg_cmspath'].'/static/defaultpic.gif'; + $row['arcurl'] = GetFileUrl( + $row['id'], + $row['typeid'], + $row['senddate'], + $row['title'], + $row['ismake'], + $row['arcrank'], + $row['namerule'], + $row['typedir'], + $row['money'], + $row['filename'], + $row['moresite'], + $row['siteurl'], + $row['sitepath'] + ); + $row['typeurl'] = GetTypeUrl( + $row['typeid'], + MfTypedir($row['typedir']), + $row['isdefault'], + $row['defaultname'], + $row['ispart'], + $row['namerule2'], + $row['moresite'], + $row['siteurl'], + $row['sitepath'] + ); + if ($row['litpic'] == '-' || $row['litpic'] == '') { + $row['litpic'] = $GLOBALS['cfg_cmspath'] . '/static/defaultpic.gif'; } - if(!preg_match("/^http:\/\//", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') - { - $row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic']; + if (!preg_match("/^http:\/\//", $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'].""; - $row['image'] = "".preg_replace("/[<]/", "", $row['title'])."'>"; - $row['imglink'] = "".$row['image'].""; + $row['typelink'] = "" . $row['typename'] . ""; + $row['image'] = "" . preg_replace("/[<]/", "", $row['title']) . "'>"; + $row['imglink'] = "" . $row['image'] . ""; $row['fulltitle'] = $row['title']; - $row['title'] = cn_substr($row['title'],$titlelen); - if($row['color']!='') - { - $row['title'] = "".$row['title'].""; + $row['title'] = cn_substr($row['title'], $titlelen); + if ($row['color'] != '') { + $row['title'] = "" . $row['title'] . ""; } - if(preg_match('/c/', $row['flag'])) - { - $row['title'] = "".$row['title'].""; + if (preg_match('/c/', $row['flag'])) { + $row['title'] = "" . $row['title'] . ""; } - $row['textlink'] = "".$row['title'].""; + $row['textlink'] = "" . $row['title'] . ""; $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl']; $row['memberurl'] = $GLOBALS['cfg_memberurl']; $row['templeturl'] = $GLOBALS['cfg_templeturl']; - if(is_array($this->dtp2->CTags)) - { - foreach($this->dtp2->CTags as $k=>$ctag) - { - if($ctag->GetName()=='array') - { + if (is_array($this->dtp2->CTags)) { + foreach ($this->dtp2->CTags as $k => $ctag) { + if ($ctag->GetName() == 'array') { //传递整个数组,在runphp模式中有特殊作用 - $this->dtp2->Assign($k,$row); - } - else - { - if(isset($row[$ctag->GetName()])) - { - $this->dtp2->Assign($k,$row[$ctag->GetName()]); - } - else - { - $this->dtp2->Assign($k,''); + $this->dtp2->Assign($k, $row); + } else { + if (isset($row[$ctag->GetName()])) { + $this->dtp2->Assign($k, $row[$ctag->GetName()]); + } else { + $this->dtp2->Assign($k, ''); } } } } $artlist .= $this->dtp2->GetResult(); - }//if hasRow + } //if hasRow - }//Loop Col + } //Loop Col - if($col>1) - { + if ($col > 1) { $i += $col - 1; $artlist .= "
\r\n"; } - }//Loop Line + } //Loop Line $this->dsql->FreeResult('al'); return $artlist; @@ -434,108 +429,215 @@ class TagList * @param string $listitem 列表样式 * @return string */ - function GetPageListDM($list_len,$listitem="info,index,end,pre,next,pageno") + function GetPageListDM($list_len, $listitem = "info,index,end,pre,next,pageno") { - $prepage=""; - $nextpage=""; + $prepage = ""; + $nextpage = ""; $prepagenum = $this->PageNo - 1; $nextpagenum = $this->PageNo + 1; - if($list_len == "" || preg_match("/[^0-9]/", $list_len)) - { + if ($list_len == "" || preg_match("/[^0-9]/", $list_len)) { $list_len = 3; } $totalpage = $this->TotalPage; - if($totalpage <= 1 && $this->TotalResult > 0) - { - return "共1页/".$this->TotalResult."条"; + if ($totalpage <= 1 && $this->TotalResult > 0) { + return "共1页/" . $this->TotalResult . "条"; } - if($this->TotalResult == 0) - { - return "共0页/".$this->TotalResult."条"; + if ($this->TotalResult == 0) { + return "共0页/" . $this->TotalResult . "条"; } - $maininfo = "共{$totalpage}页/".$this->TotalResult."条\r\n"; + $maininfo = "共{$totalpage}页/" . $this->TotalResult . "条\r\n"; $purl = $this->GetCurUrl(); - $purl .= "?/".urlencode($this->Tag); + $purl .= "?/" . urlencode($this->Tag); //获得上一页和下一页的链接 - if($this->PageNo != 1) - { - $prepage.="
  • 上一页
  • \r\n"; - $indexpage="
  • 首页
  • \r\n"; + if ($this->PageNo != 1) { + $prepage .= "
  • 上一页
  • \r\n"; + $indexpage = "
  • 首页
  • \r\n"; + } else { + $indexpage = "
  • 首页
  • \r\n"; + } + if ($this->PageNo != $totalpage && $totalpage > 1) { + $nextpage .= "
  • 下一页
  • \r\n"; + $endpage = "
  • 末页
  • \r\n"; + } else { + $endpage = "
  • 末页
  • \r\n"; + } + + //获得数字链接 + $listdd = ""; + $total_list = $list_len * 2 + 1; + if ($this->PageNo >= $total_list) { + $j = $this->PageNo - $list_len; + $total_list = $this->PageNo + $list_len; + if ($total_list > $totalpage) { + $total_list = $totalpage; + } + } else { + $j = 1; + if ($total_list > $totalpage) { + $total_list = $totalpage; + } + } + for ($j; $j <= $total_list; $j++) { + if ($j == $this->PageNo) { + $listdd .= "
  • $j
  • \r\n"; + } else { + $listdd .= "
  • " . $j . "
  • \r\n"; + } + } + $plist = ''; + if (preg_match('/info/i', $listitem)) { + $plist .= $maininfo . ' '; + } + if (preg_match('/index/i', $listitem)) { + $plist .= $indexpage . ' '; + } + if (preg_match('/pre/i', $listitem)) { + $plist .= $prepage . ' '; } - else - { - $indexpage="
  • 首页
  • \r\n"; + if (preg_match('/pageno/i', $listitem)) { + $plist .= $listdd . ' '; } - if($this->PageNo!=$totalpage && $totalpage>1) - { - $nextpage.="
  • 下一页
  • \r\n"; - $endpage="
  • 末页
  • \r\n"; + if (preg_match('/next/i', $listitem)) { + $plist .= $nextpage . ' '; } - else - { - $endpage="
  • 末页
  • \r\n"; + if (preg_match('/end/i', $listitem)) { + $plist .= $endpage . ' '; + } + return $plist; + } + + function GetPageListST($list_len, $listitem = "info,index,end,pre,next,pageno") + { + $prepage = ""; + $nextpage = ""; + $prepagenum = intval($this->PageNo) - 1; + $nextpagenum = intval($this->PageNo) + 1; + if ($list_len == "" || preg_match("/[^0-9]/", $list_len)) { + $list_len = 3; + } + $totalpage = $this->TotalPage; + if ($totalpage <= 1 && $this->TotalResult > 0) { + return "共1页/" . $this->TotalResult . "条"; + } + if ($this->TotalResult == 0) { + return "共0页/" . $this->TotalResult . "条"; + } + $maininfo = "共{$totalpage}页/" . $this->TotalResult . "条\r\n"; + // $purl = $this->GetCurUrl(); + $purl = "/a/tags/" . GetPinyin($this->Tag); + + // var_dump($purl); + + //获得上一页和下一页的链接 + if ($this->PageNo != 1) { + $prepage .= "
  • 上一页
  • \r\n"; + $indexpage = "
  • 首页
  • \r\n"; + } else { + $indexpage = "
  • 首页
  • \r\n"; + } + if ($this->PageNo != $totalpage && $totalpage > 1) { + $nextpage .= "
  • 下一页
  • \r\n"; + $endpage = "
  • 末页
  • \r\n"; + } else { + $endpage = "
  • 末页
  • \r\n"; } //获得数字链接 - $listdd=""; + $listdd = ""; $total_list = $list_len * 2 + 1; - if($this->PageNo >= $total_list) - { + if ($this->PageNo >= $total_list) { $j = $this->PageNo - $list_len; $total_list = $this->PageNo + $list_len; - if($total_list > $totalpage) - { + if ($total_list > $totalpage) { $total_list = $totalpage; } - } - else - { - $j=1; - if($total_list > $totalpage) - { + } else { + $j = 1; + if ($total_list > $totalpage) { $total_list = $totalpage; } } - for($j; $j<=$total_list; $j++) - { - if($j == $this->PageNo) - { - $listdd.= "
  • $j
  • \r\n"; - } - else - { - $listdd.="
  • ".$j."
  • \r\n"; + for ($j; $j <= $total_list; $j++) { + if ($j == $this->PageNo) { + $listdd .= "
  • $j
  • \r\n"; + } else { + $listdd .= "
  • " . $j . "
  • \r\n"; } } $plist = ''; - if(preg_match('/info/i', $listitem)) - { - $plist .= $maininfo.' '; + if (preg_match('/info/i', $listitem)) { + $plist .= $maininfo . ' '; } - if(preg_match('/index/i', $listitem)) - { - $plist .= $indexpage.' '; + if (preg_match('/index/i', $listitem)) { + $plist .= $indexpage . ' '; } - if(preg_match('/pre/i', $listitem)) - { - $plist .= $prepage.' '; + if (preg_match('/pre/i', $listitem)) { + $plist .= $prepage . ' '; } - if(preg_match('/pageno/i', $listitem)) - { - $plist .= $listdd.' '; + if (preg_match('/pageno/i', $listitem)) { + $plist .= $listdd . ' '; } - if(preg_match('/next/i', $listitem)) - { - $plist .= $nextpage.' '; + if (preg_match('/next/i', $listitem)) { + $plist .= $nextpage . ' '; } - if(preg_match('/end/i', $listitem)) - { - $plist .= $endpage.' '; + if (preg_match('/end/i', $listitem)) { + $plist .= $endpage . ' '; } return $plist; } + function GetTruePath() + { + $truepath = $GLOBALS["cfg_basedir"]; + return $truepath; + } + + // 生成静态Tag + function MakeHtml($startpage = 1, $makepagesize = 0) + { + global $cfg_dir_purview, $envs; + + $envs['makeTag'] = 1; + if (empty($this->TotalResult) && $this->Tag != "") $this->CountRecord(); + //初步给固定值的标记赋值 + $this->ParseTempletsFirst(); + + if ($this->Tag == "") { + MkdirAll($this->GetTruePath() . "/a/tags/", $cfg_dir_purview); + $this->dtp->SaveTo($this->GetTruePath() . "/a/tags/index.html"); + } else { + $totalpage = ceil($this->TotalResult / $this->PageSize); + + if ($totalpage == 0) { + $totalpage = 1; + } + if ($makepagesize > 0) { + $endpage = $startpage + $makepagesize; + } else { + $endpage = ($totalpage + 1); + } + if ($endpage >= $totalpage + 1) { + $endpage = $totalpage + 1; + } + if ($endpage == 1) { + $endpage = 2; + } + $makeDir = $this->GetTruePath() . "/a/tags/" . GetPinyin($this->Tag) . "/"; + MkdirAll($makeDir, $cfg_dir_purview); + for ($this->PageNo = $startpage; $this->PageNo < $endpage; $this->PageNo++) { + $this->ParseDMFields($this->PageNo, 1); + $fileDir = $makeDir . "/" . $this->PageNo; + MkdirAll($fileDir, $cfg_dir_purview); + $this->dtp->SaveTo($fileDir . "/index.html"); + } + if ($startpage == 1) { + $list_1 = $makeDir . "/1/index.html"; + copy($list_1, $makeDir . "/index.html"); + } + } + } + /** * 获得一个指定的频道的链接 * @@ -549,9 +651,9 @@ class TagList * @param string $siteurl 站点地址 * @return string */ - function GetListUrl($typeid,$typedir,$isdefault,$defaultname,$ispart,$namerule2,$siteurl="") + function GetListUrl($typeid, $typedir, $isdefault, $defaultname, $ispart, $namerule2, $siteurl = "") { - return GetTypeUrl($typeid,MfTypedir($typedir),$isdefault,$defaultname,$ispart,$namerule2,$siteurl); + return GetTypeUrl($typeid, MfTypedir($typedir), $isdefault, $defaultname, $ispart, $namerule2, $siteurl); } /** @@ -570,9 +672,9 @@ class TagList * @param string $filename 文件名称 * @return string */ - function GetArcUrl($aid,$typeid,$timetag,$title,$ismake=0,$rank=0,$namerule="",$artdir="",$money=0,$filename='') + function GetArcUrl($aid, $typeid, $timetag, $title, $ismake = 0, $rank = 0, $namerule = "", $artdir = "", $money = 0, $filename = '') { - return GetFileUrl($aid,$typeid,$timetag,$title,$ismake,$rank,$namerule,$artdir,$money,$filename); + return GetFileUrl($aid, $typeid, $timetag, $title, $ismake, $rank, $namerule, $artdir, $money, $filename); } /** @@ -583,14 +685,11 @@ class TagList */ function GetCurUrl() { - if(!empty($_SERVER["REQUEST_URI"])) - { + if (!empty($_SERVER["REQUEST_URI"])) { $nowurl = $_SERVER["REQUEST_URI"]; - $nowurls = explode("?",$nowurl); + $nowurls = explode("?", $nowurl); $nowurl = $nowurls[0]; - } - else - { + } else { $nowurl = $_SERVER["PHP_SELF"]; } return $nowurl; diff --git a/src/include/inc/inc_fun_funAdmin.php b/src/include/inc/inc_fun_funAdmin.php index b18d80ac..eb68c8fa 100755 --- a/src/include/inc/inc_fun_funAdmin.php +++ b/src/include/inc/inc_fun_funAdmin.php @@ -28,7 +28,7 @@ function SpGetPinyin($str, $ishead=0, $isclose=1) { return $str; } - if(count($pinyins) == 0) + if(@count($pinyins) == 0) { $fp = fopen(DEDEINC.'/data/pinyin.dat', 'r'); while(!feof($fp)) diff --git a/src/include/taglib/tag.lib.php b/src/include/taglib/tag.lib.php index 602dbac8..5e40adb6 100755 --- a/src/include/taglib/tag.lib.php +++ b/src/include/taglib/tag.lib.php @@ -9,7 +9,7 @@ * @license http://help.dedecms.com/usersguide/license.html * @link http://www.dedecms.com */ - + /*>>dede>> TAG调用 全局标记 @@ -26,17 +26,17 @@ getall:获取类型 0 为当前内容页TAG标记,1为获取全部TAG标记 >>dede>>*/ - -function lib_tag(&$ctag,&$refObj) + +function lib_tag(&$ctag, &$refObj) { - global $dsql,$envs,$cfg_cmsurl; + global $dsql, $envs, $cfg_cmsurl; //属性处理 - $attlist="row|30,sort|new,getall|0,typeid|0"; - FillAttsDefault($ctag->CAttribute->Items,$attlist); + $attlist = "row|30,sort|new,getall|0,typeid|0"; + FillAttsDefault($ctag->CAttribute->Items, $attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $InnerText = $ctag->GetInnerText(); - if(trim($InnerText)=='') $InnerText = GetSysTemplets('tag_one.htm'); + if (trim($InnerText) == '') $InnerText = GetSysTemplets('tag_one.htm'); $revalue = ''; $ltype = $sort; @@ -44,68 +44,59 @@ function lib_tag(&$ctag,&$refObj) $addsql = ''; - if($getall==0 && isset($refObj->Fields['tags']) && !empty($refObj->Fields['aid'])) - { + if ($getall == 0 && isset($refObj->Fields['tags']) && !empty($refObj->Fields['aid'])) { $dsql->SetQuery("SELECT tid FROM `#@__taglist` WHERE aid = '{$refObj->Fields['aid']}' "); $dsql->Execute(); $ids = ''; - while($row = $dsql->GetArray()) - { - $ids .= ( $ids=='' ? $row['tid'] : ','.$row['tid'] ); + while ($row = $dsql->GetArray()) { + $ids .= ($ids == '' ? $row['tid'] : ',' . $row['tid']); } - if($ids != '') - { + if ($ids != '') { $addsql = " WHERE id IN($ids) "; } - if($addsql=='') return ''; - } - else - { - if(!empty($typeid)) - { + if ($addsql == '') return ''; + } else { + if (!empty($typeid)) { $addsql = " WHERE typeid='$typeid' "; } - } - - if($ltype=='rand') $orderby = 'rand() '; - else if($ltype=='week') $orderby=' weekcc DESC '; - else if($ltype=='month') $orderby=' monthcc DESC '; - else if($ltype=='hot') $orderby=' count DESC '; - else if($ltype=='total') $orderby=' total DESC '; + } + + if ($ltype == 'rand') $orderby = 'rand() '; + else if ($ltype == 'week') $orderby = ' weekcc DESC '; + else if ($ltype == 'month') $orderby = ' monthcc DESC '; + else if ($ltype == 'hot') $orderby = ' count DESC '; + else if ($ltype == 'total') $orderby = ' total DESC '; else $orderby = 'addtime DESC '; $dsql->SetQuery("SELECT * FROM `#@__tagindex` $addsql ORDER BY $orderby LIMIT 0,$num"); $dsql->Execute(); $ctp = new DedeTagParse(); - $ctp->SetNameSpace('field','[',']'); + $ctp->SetNameSpace('field', '[', ']'); $ctp->LoadSource($InnerText); - while($row = $dsql->GetArray()) - { + while ($row = $dsql->GetArray()) { $row['keyword'] = $row['tag']; $row['tag'] = dede_htmlspecialchars($row['tag']); - $row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/"; - $row['highlight'] = 0; - if($row['monthcc']>1000 || $row['weekcc']>300 ) - { - $row['highlight'] = mt_rand(3,4); - } - else if($row['count']>3000) - { - $row['highlight'] = mt_rand(5,6); + if (isset($envs['makeTag']) && $envs['makeTag'] == 1) { + $row['link'] = $cfg_cmsurl . "/a/tags/" . GetPinyin($row['keyword']) . "/"; + } else { + $row['link'] = $cfg_cmsurl . "/tags.php?/" . urlencode($row['keyword']) . "/"; } - else - { - $row['highlight'] = mt_rand(1,2); + + $row['highlight'] = 0; + if ($row['monthcc'] > 1000 || $row['weekcc'] > 300) { + $row['highlight'] = mt_rand(3, 4); + } else if ($row['count'] > 3000) { + $row['highlight'] = mt_rand(5, 6); + } else { + $row['highlight'] = mt_rand(1, 2); } - foreach($ctp->CTags as $tagid=>$ctag) - { - if(isset($row[$ctag->GetName()])) - { - $ctp->Assign($tagid,$row[$ctag->GetName()]); + foreach ($ctp->CTags as $tagid => $ctag) { + if (isset($row[$ctag->GetName()])) { + $ctp->Assign($tagid, $row[$ctag->GetName()]); } } $revalue .= $ctp->GetResult(); } return $revalue; -} \ No newline at end of file +}