|
|
@@ -1,4 +1,4 @@ |
|
|
|
<?php if(!defined('DEDEINC')) exit('Request Error!');
|
|
|
|
<?php if (!defined('DEDEINC')) exit('Request Error!');
|
|
|
|
/**
|
|
|
|
* Tag列表类
|
|
|
|
*
|
|
|
@@ -8,9 +8,9 @@ |
|
|
|
* @license http://help.dedecms.com/usersguide/license.html
|
|
|
|
* @link http://www.dedecms.com
|
|
|
|
*/
|
|
|
|
|
|
|
|
require_once(DEDEINC.'/channelunit.class.php');
|
|
|
|
require_once(DEDEINC.'/typelink.class.php');
|
|
|
|
|
|
|
|
require_once(DEDEINC . '/channelunit.class.php');
|
|
|
|
require_once(DEDEINC . '/typelink.class.php');
|
|
|
|
|
|
|
|
@set_time_limit(0);
|
|
|
|
/**
|
|
|
@@ -53,46 +53,47 @@ class TagList |
|
|
|
$this->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 = "系统无此标签,可能已经移除!<br /><br />你还可以尝试通过搜索程序去搜索这个关键字:<a href='$fullsearch'>前往搜索>></a>";
|
|
|
|
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 .= "<div>\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'] = "<a href='".$row['typeurl']."'>".$row['typename']."</a>";
|
|
|
|
$row['image'] = "<img src='".$row['picname']."' border='0' width='$imgwidth' height='$imgheight' alt='".preg_replace("/['><]/", "", $row['title'])."'>";
|
|
|
|
$row['imglink'] = "<a href='".$row['filename']."'>".$row['image']."</a>";
|
|
|
|
$row['typelink'] = "<a href='" . $row['typeurl'] . "'>" . $row['typename'] . "</a>";
|
|
|
|
$row['image'] = "<img src='" . $row['picname'] . "' border='0' width='$imgwidth' height='$imgheight' alt='" . preg_replace("/['><]/", "", $row['title']) . "'>";
|
|
|
|
$row['imglink'] = "<a href='" . $row['filename'] . "'>" . $row['image'] . "</a>";
|
|
|
|
$row['fulltitle'] = $row['title'];
|
|
|
|
$row['title'] = cn_substr($row['title'],$titlelen);
|
|
|
|
if($row['color']!='')
|
|
|
|
{
|
|
|
|
$row['title'] = "<font color='".$row['color']."'>".$row['title']."</font>";
|
|
|
|
$row['title'] = cn_substr($row['title'], $titlelen);
|
|
|
|
if ($row['color'] != '') {
|
|
|
|
$row['title'] = "<font color='" . $row['color'] . "'>" . $row['title'] . "</font>";
|
|
|
|
}
|
|
|
|
if(preg_match('/c/', $row['flag']))
|
|
|
|
{
|
|
|
|
$row['title'] = "<b>".$row['title']."</b>";
|
|
|
|
if (preg_match('/c/', $row['flag'])) {
|
|
|
|
$row['title'] = "<b>" . $row['title'] . "</b>";
|
|
|
|
}
|
|
|
|
$row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";
|
|
|
|
$row['textlink'] = "<a href='" . $row['filename'] . "'>" . $row['title'] . "</a>";
|
|
|
|
$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 .= " </div>\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 "<span class=\"pageinfo\">共1页/".$this->TotalResult."条</span>";
|
|
|
|
if ($totalpage <= 1 && $this->TotalResult > 0) {
|
|
|
|
return "<span class=\"pageinfo\">共1页/" . $this->TotalResult . "条</span>";
|
|
|
|
}
|
|
|
|
if($this->TotalResult == 0)
|
|
|
|
{
|
|
|
|
return "<span class=\"pageinfo\">共0页/".$this->TotalResult."条</span>";
|
|
|
|
if ($this->TotalResult == 0) {
|
|
|
|
return "<span class=\"pageinfo\">共0页/" . $this->TotalResult . "条</span>";
|
|
|
|
}
|
|
|
|
$maininfo = "<span class=\"pageinfo\">共{$totalpage}页/".$this->TotalResult."条</span>\r\n";
|
|
|
|
$maininfo = "<span class=\"pageinfo\">共{$totalpage}页/" . $this->TotalResult . "条</span>\r\n";
|
|
|
|
$purl = $this->GetCurUrl();
|
|
|
|
$purl .= "?/".urlencode($this->Tag);
|
|
|
|
$purl .= "?/" . urlencode($this->Tag);
|
|
|
|
|
|
|
|
//获得上一页和下一页的链接
|
|
|
|
if($this->PageNo != 1)
|
|
|
|
{
|
|
|
|
$prepage.="<li><a href='".$purl."/$prepagenum/'>上一页</a></li>\r\n";
|
|
|
|
$indexpage="<li><a href='".$purl."/1/'>首页</a></li>\r\n";
|
|
|
|
if ($this->PageNo != 1) {
|
|
|
|
$prepage .= "<li><a href='" . $purl . "/$prepagenum/'>上一页</a></li>\r\n";
|
|
|
|
$indexpage = "<li><a href='" . $purl . "/1/'>首页</a></li>\r\n";
|
|
|
|
} else {
|
|
|
|
$indexpage = "<li><a>首页</a></li>\r\n";
|
|
|
|
}
|
|
|
|
if ($this->PageNo != $totalpage && $totalpage > 1) {
|
|
|
|
$nextpage .= "<li><a href='" . $purl . "/$nextpagenum/'>下一页</a></li>\r\n";
|
|
|
|
$endpage = "<li><a href='" . $purl . "/$totalpage/'>末页</a></li>\r\n";
|
|
|
|
} else {
|
|
|
|
$endpage = "<li><a>末页</a></li>\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 .= "<li class=\"thisclass\"><a>$j</a></li>\r\n";
|
|
|
|
} else {
|
|
|
|
$listdd .= "<li><a href='" . $purl . "/$j/'>" . $j . "</a></li>\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="<li><a>首页</a></li>\r\n";
|
|
|
|
if (preg_match('/pageno/i', $listitem)) {
|
|
|
|
$plist .= $listdd . ' ';
|
|
|
|
}
|
|
|
|
if($this->PageNo!=$totalpage && $totalpage>1)
|
|
|
|
{
|
|
|
|
$nextpage.="<li><a href='".$purl."/$nextpagenum/'>下一页</a></li>\r\n";
|
|
|
|
$endpage="<li><a href='".$purl."/$totalpage/'>末页</a></li>\r\n";
|
|
|
|
if (preg_match('/next/i', $listitem)) {
|
|
|
|
$plist .= $nextpage . ' ';
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$endpage="<li><a>末页</a></li>\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 "<span class=\"pageinfo\">共1页/" . $this->TotalResult . "条</span>";
|
|
|
|
}
|
|
|
|
if ($this->TotalResult == 0) {
|
|
|
|
return "<span class=\"pageinfo\">共0页/" . $this->TotalResult . "条</span>";
|
|
|
|
}
|
|
|
|
$maininfo = "<span class=\"pageinfo\">共{$totalpage}页/" . $this->TotalResult . "条</span>\r\n";
|
|
|
|
// $purl = $this->GetCurUrl();
|
|
|
|
$purl = "/a/tags/" . GetPinyin($this->Tag);
|
|
|
|
|
|
|
|
// var_dump($purl);
|
|
|
|
|
|
|
|
//获得上一页和下一页的链接
|
|
|
|
if ($this->PageNo != 1) {
|
|
|
|
$prepage .= "<li><a href='" . $purl . "/$prepagenum/'>上一页</a></li>\r\n";
|
|
|
|
$indexpage = "<li><a href='" . $purl . "/1/'>首页</a></li>\r\n";
|
|
|
|
} else {
|
|
|
|
$indexpage = "<li><a>首页</a></li>\r\n";
|
|
|
|
}
|
|
|
|
if ($this->PageNo != $totalpage && $totalpage > 1) {
|
|
|
|
$nextpage .= "<li><a href='" . $purl . "/$nextpagenum/'>下一页</a></li>\r\n";
|
|
|
|
$endpage = "<li><a href='" . $purl . "/$totalpage/'>末页</a></li>\r\n";
|
|
|
|
} else {
|
|
|
|
$endpage = "<li><a>末页</a></li>\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.= "<li class=\"thisclass\"><a>$j</a></li>\r\n";
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$listdd.="<li><a href='".$purl."/$j/'>".$j."</a></li>\r\n";
|
|
|
|
for ($j; $j <= $total_list; $j++) {
|
|
|
|
if ($j == $this->PageNo) {
|
|
|
|
$listdd .= "<li class=\"thisclass\"><a>$j</a></li>\r\n";
|
|
|
|
} else {
|
|
|
|
$listdd .= "<li><a href='" . $purl . "/$j/'>" . $j . "</a></li>\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;
|
|
|
|