⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inc_taglist_view.php

📁 强大的PHP内容管理系统尽量不要让站长把时间都花费在为您修正说明上。压缩包解压
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php
require_once(DEDEINC."/pub_oxwindow.php");

//打开所有标记,开启此项允许你使用封面模板的所有标记,但会对性能造成一定的影响
$cfg_OpenAll = false;

include_once(DEDEINC."/inc_arcpart_view.php");
include_once(DEDEINC."/inc_pubtag_make.php");
/******************************************************
//Copyright 2004-2006 by DedeCms.com itprato
//本类的用途是用于浏览含有某Tag的文档
******************************************************/
@set_time_limit(0);
class TagList
{
	var $dsql;
	var $dtp;
	var $dtp2;
	var $TypeLink;
	var $PageNo;
	var $TotalPage;
	var $TotalResult;
	var $PageSize;
	var $ListType;
	var $Fields;
	var $PartView;
	var $Tag;
	var $Templet;
	var $TagInfos;
	var $TempletsFile;
	var $TagID;
	//-------------------------------
	//php5构造函数
	//-------------------------------
	function __construct($keyword,$templet)
 	{
 		$this->Templet = $templet;
 		$this->Tag = $keyword;
 		$this->dsql = new DedeSql(false);
 		$this->dtp = new DedeTagParse();
 		$this->dtp->SetNameSpace("dede","{","}");
 		$this->dtp2 = new DedeTagParse();
 		$this->dtp2->SetNameSpace("field","[","]");
 		$this->TypeLink = new TypeLink(0);
 		$this->Fields['tag'] = $keyword;
 		$this->Fields['position'] = " ".$keyword;
 		$this->Fields['title'] = " 标签:{$keyword} ";
 		$this->TempletsFile = '';
 		//设置一些全局参数的值
 		foreach($GLOBALS['PubFields'] as $k=>$v) $this->Fields[$k] = $v;
 		$this->PartView = new PartView(0);

 		//读取Tag信息
 		if($this->Tag!='')
 	  {
 		   $this->TagInfos = $this->dsql->GetOne("Select * From `#@__tag_index` where tagname like '{$this->Tag}' ");
 		   if(!is_array($this->TagInfos))
 		   {
 			    $fullsearch = $GLOBALS['cfg_phpurl']."/search.php?keyword=".$this->Tag."&searchtype=titlekeyword";
 			    $msg = "系统无此标签,可能已经移除!<br /><br />你还可以尝试通过搜索程序去搜索这个关键字:<a href='$fullsearch'>前往搜索&gt;&gt;</a>";
 			    ShowMsgWin($msg,"<a href='tag.php'>Tag标签</a> &gt;&gt; 错误提示");
 			    $this->dsql->Close();
 			    exit();
 		   }
 		   $this->TagID = $this->TagInfos['id'];
 		}

 		//初始化模板
 		$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style'].'/'.$this->Templet;
 		if(!file_exists($tempfile)||!is_file($tempfile)){
 			  echo "模板文件:'".$tempfile."' 不存在,无法解析文档!";
 			  exit();
 	  }
 	  $this->dtp->LoadTemplate($tempfile);
 	  $this->TempletsFile = ereg_replace("^".$GLOBALS['cfg_basedir'],'',$tempfile);

  }
  //php4构造函数
 	//---------------------------
 	function TagList($keyword,$templet){
 		$this->__construct($keyword,$templet);
 	}
 	//---------------------------
 	//关闭相关资源
 	//---------------------------
 	function Close()
 	{
 		@$this->dsql->Close();
 		@$this->TypeLink->Close();
 		@$this->PartView->Close();
 	}
 	//------------------
 	//统计列表里的记录
 	//------------------
 	function CountRecord()
 	{
 		 global $cfg_list_son;
 		 //统计数据库记录
 		 $this->TotalResult = -1;
 		 if(isset($GLOBALS['TotalResult'])) $this->TotalResult = $GLOBALS['TotalResult'];
 		 if(isset($GLOBALS['PageNo'])) $this->PageNo = $GLOBALS['PageNo'];
 		 else $this->PageNo = 1;
 		 if($this->TotalResult==-1)
 		 {
			  $addSql  = " arcrank > -1 ";
			  $cquery = "Select count(*) as dd From #@__tag_list where tid = '{$this->TagID}' And arcrank>-1 ";
			  $row = $this->dsql->GetOne($cquery);
			  $this->TotalResult = $row['dd'];
			  //更新Tag信息
			  $ntime = time();
			  //更新浏览量和记录数
			  $upquery = "Update #@__tag_index set result='{$row['dd']}',count=count+1,weekcc=weekcc+1,monthcc=monthcc+1 where id='{$this->TagID}' ";
			  $this->dsql->ExecuteNoneQuery($upquery);
			  $oneday = 24 * 3600;
			  //周统计
			  if(ceil( ($ntime - $this->TagInfos['weekup'])/$oneday )>7){
			  	 $this->dsql->ExecuteNoneQuery("Update #@__search_keywords set weekcc=0,weekup='{$ntime}' where id='{$this->TagID}' ");
			  }
			  //月统计
			  if(ceil( ($ntime - $this->TagInfos['monthup'])/$oneday )>30){
			  	 $this->dsql->ExecuteNoneQuery("Update #@__search_keywords set monthcc=0,monthup='{$ntime}' where id='{$this->TagID}' ");
			  }
 		 }
 		 $ctag = $this->dtp->GetTag("page");
 		 if(!is_object($ctag)){ $ctag = $this->dtp->GetTag("list"); }
 		 if(!is_object($ctag)) $this->PageSize = 25;
 		 else{
 		   if($ctag->GetAtt("pagesize")!="") $this->PageSize = $ctag->GetAtt("pagesize");
       else $this->PageSize = 25;
     }
     $this->TotalPage = ceil($this->TotalResult/$this->PageSize);
 	}
 	//------------------
 	//显示列表
 	//------------------
 	function Display()
 	{
 		if($this->Tag!='') $this->CountRecord();
 		$this->ParseTempletsFirst();
 		if($this->Tag!='') $this->ParseDMFields($this->PageNo,0);
 	  $this->Close();
 		$this->dtp->Display();
 	}

 	//--------------------------------
 	//解析模板,对固定的标记进行初始给值
 	//--------------------------------
 	function ParseTempletsFirst()
 	{
 	   //对公用标记的解析,这里对对象的调用均是用引用调用的,因此运算后会自动改变传递的对象的值
 	   MakePublicTag($this,$this->dtp,$this->PartView,$this->TypeLink,0,0,0);
 	}
 	//--------------------------------
 	//解析模板,对内容里的变动进行赋值
 	//--------------------------------
 	function ParseDMFields($PageNo,$ismake=1)
 	{
 		foreach($this->dtp->CTags as $tagid=>$ctag){
 			if($ctag->GetName()=="list"){
 				$limitstart = ($this->PageNo-1) * $this->PageSize;
 				$row = $this->PageSize;
 				if(trim($ctag->GetInnerText())==""){
 					 $InnerText = GetSysTemplets("list_fulllist.htm");
 				}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")
 				       )
 				);
 			}
 			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=="") $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));
 			}
 	  }
  }
	//----------------------------------
	//获得一个单列的文档列表
	//---------------------------------
	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')
	{
		global $cfg_list_son;
		$t1 = ExecTime();
		$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";
		if($orderby=="") $orderby="default";
		else $orderby=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."%";
		$innertext = trim($innertext);
		if($innertext=="") $innertext = GetSysTemplets("list_fulllist.htm");

		$idlists = '';
		$this->dsql->SetQuery("Select aid From #@__tag_list where tid='{$this->TagID}' And arcrank>-1 limit $limitstart,$getrow");
		//echo "Select aid From #@__tag_list where tid='{$this->TagID}' And arcrank>-1 limit $limitstart,$getrow";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -