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

📄 arc.archives.class.php

📁 这是matlab的一个小程序
💻 PHP
📖 第 1 页 / 共 2 页
字号:
		}

		$GLOBALS['envs']['keyword'] = $this->Fields['keywords'];

		$GLOBALS['envs']['typeid'] = $this->Fields['typeid'];

		$GLOBALS['envs']['topid'] = GetTopid($this->Fields['typeid']);

		$GLOBALS['envs']['aid'] = $GLOBALS['envs']['id'] = $this->Fields['id'];

		$GLOBALS['envs']['adminid'] = $GLOBALS['envs']['mid'] = $this->Fields['mid'];

		$GLOBALS['envs']['channelid'] = $this->TypeLink->TypeInfos['channeltype'];

		if($this->Fields['reid']>0)
		{
			$GLOBALS['envs']['typeid'] = $this->Fields['reid'];
		}

		MakeOneTag($this->dtp,$this);
	}

	//解析模板,对内容里的变动进行赋值
	function ParseDMFields($pageNo,$ismake=1)
	{
		$this->NowPage = $pageNo;
		if($this->SplitPageField!="" && isset($this->Fields[$this->SplitPageField]))
		{
			$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];
		}

		//解析模板
		if(is_array($this->dtp->CTags))
		{
			foreach($this->dtp->CTags as $i=>$ctag)
			{
				if($ctag->GetName()=='field')
				{
					$this->dtp->Assign($i,$this->GetField($ctag->GetAtt('name')));
				}
				else if($ctag->GetName()=='pagebreak')
				{
					if($ismake==0)
					{
						$this->dtp->Assign($i,$this->GetPagebreakDM($this->TotalPage,$this->NowPage,$this->ArcID));
					}
					else
					{
						$this->dtp->Assign($i,$this->GetPagebreak($this->TotalPage,$this->NowPage,$this->ArcID));
					}
				}
				else if($ctag->GetName()=='pagetitle')
				{
					if($ismake==0)
					{
						$this->dtp->Assign($i,$this->GetPageTitlesDM($ctag->GetAtt("style"),$pageNo));
					}
					else
					{
						$this->dtp->Assign($i,$this->GetPageTitlesST($ctag->GetAtt("style"),$pageNo));
					}
				}
				else if($ctag->GetName()=='prenext')
				{
					$this->dtp->Assign($i,$this->GetPreNext($ctag->GetAtt('get')));
				}
				else if($ctag->GetName()=='fieldlist')
				{
					$innertext = trim($ctag->GetInnerText());
					if($innertext=='') $innertext = GetSysTemplets('tag_fieldlist.htm');
					$dtp2 = new DedeTagParse();
					$dtp2->SetNameSpace('field','[',']');
					$dtp2->LoadSource($innertext);
					$oldSource = $dtp2->SourceString;
					$oldCtags = $dtp2->CTags;
					$res = '';
					if(is_array($this->ChannelUnit->ChannelFields) && is_array($dtp2->CTags))
					{
						foreach($this->ChannelUnit->ChannelFields as $k=>$v)
						{
							if(isset($v['autofield']) && empty($v['autofield'])) {
								continue;
							}
							$dtp2->SourceString = $oldSource;
							$dtp2->CTags = $oldCtags;
							$fname = $v['itemname'];
							foreach($dtp2->CTags as $tid=>$ctag2)
							{
								if($ctag2->GetName()=='name')
								{
									$dtp2->Assign($tid,$fname);
								}
								else if($ctag2->GetName()=='tagname')
								{
									$dtp2->Assign($tid,$k);
								}
								else if($ctag2->GetName()=='value')
								{
									$this->Fields[$k] = $this->ChannelUnit->MakeField($k,$this->Fields[$k],$ctag2);
									@$dtp2->Assign($tid,$this->Fields[$k]);
								}
							}
							$res .= $dtp2->GetResult();
						}
					}
					$this->dtp->Assign($i,$res);
				}//end case

			}//结束模板循环

		}
	}

	//关闭所占用的资源
	function Close()
	{
		$this->FixedValues = '';
		$this->Fields = '';
	}

	//获取上一篇,下一篇链接
	function GetPreNext($gtype='')
	{
		$rs = '';
		if(count($this->PreNext)<2)
		{
			$aid = $this->ArcID;
			$preR =  $this->dsql->GetOne("Select id From `#@__arctiny` where id<$aid And arcrank>-1 And typeid='{$this->Fields['typeid']}' order by id desc");
			$nextR = $this->dsql->GetOne("Select id From `#@__arctiny` where id>$aid And arcrank>-1 And typeid='{$this->Fields['typeid']}' order by id asc");
			$next = (is_array($nextR) ? " where arc.id={$nextR['id']} " : ' where 1>2 ');
			$pre = (is_array($preR) ? " where arc.id={$preR['id']} " : ' where 1>2 ');
			$query = "Select arc.id,arc.title,arc.shorttitle,arc.typeid,arc.ismake,arc.senddate,arc.arcrank,arc.money,arc.filename,
						t.typedir,t.typename,t.namerule,t.namerule2,t.ispart,t.moresite,t.siteurl,t.sitepath
						from `#@__archives` arc left join #@__arctype t on arc.typeid=t.id  ";
			$nextRow = $this->dsql->GetOne($query.$next);
			$preRow = $this->dsql->GetOne($query.$pre);
			if(is_array($preRow))
			{
				$mlink = GetFileUrl($preRow['id'],$preRow['typeid'],$preRow['senddate'],$preRow['title'],$preRow['ismake'],$preRow['arcrank'],
				$preRow['namerule'],$preRow['typedir'],$preRow['money'],$preRow['filename'],$preRow['moresite'],$preRow['siteurl'],$preRow['sitepath']);
				$this->PreNext['pre'] = "上一篇:<a href='$mlink'>{$preRow['title']}</a> ";
			}
			else
			{
				$this->PreNext['pre'] = "上一篇:没有了 ";
			}
			if(is_array($nextRow))
			{
				$mlink = GetFileUrl($nextRow['id'],$nextRow['typeid'],$nextRow['senddate'],$nextRow['title'],$nextRow['ismake'],$nextRow['arcrank'],
				$nextRow['namerule'],$nextRow['typedir'],$nextRow['money'],$nextRow['filename'],$nextRow['moresite'],$nextRow['siteurl'],$nextRow['sitepath']);
				$this->PreNext['next'] = "下一篇:<a href='$mlink'>{$nextRow['title']}</a> ";
			}
			else
			{
				$this->PreNext['next'] = "下一篇:没有了 ";
			}
		}
		if($gtype=='pre')
		{
			$rs =  $this->PreNext['pre'];
		}
		else if($gtype=='next')
		{
			$rs =  $this->PreNext['next'];
		}
		else
		{
			$rs =  $this->PreNext['pre']." &nbsp; ".$this->PreNext['next'];
		}
		return $rs;
	}

	//获得动态页面分页列表
	function GetPagebreakDM($totalPage,$nowPage,$aid)
	{
		global $cfg_rewrite;
		if($totalPage==1)
		{
			return "";
		}
		$PageList = "<li><a>共".$totalPage."页: </a></li>";
		$nPage = $nowPage-1;
		$lPage = $nowPage+1;
		if($nowPage==1)
		{
			$PageList.="<li><a href='#'>上一页</a></li>";
		}
		else
		{
			if($nPage==1)
			{
				$PageList.="<li><a href='view.php?aid=$aid'>上一页</a></li>";
				if($cfg_rewrite == 'Y')
				{
					$PageList = preg_replace("/.php\?aid=(\d+)/i",'-\\1-1.html',$PageList);
				}
			}
			else
			{
				$PageList.="<li><a href='view.php?aid=$aid&pageno=$nPage'>上一页</a></li>";
				if($cfg_rewrite == 'Y')
				{
					$PageList = str_replace(".php?aid=","-",$PageList);
					$PageList =  preg_replace("/&pageno=(\d+)/i",'-\\1.html',$PageList);
				}
			}
		}
		for($i=1;$i<=$totalPage;$i++)
		{
			if($i==1)
			{
				if($nowPage!=1)
				{
					$PageList.="<li><a href='view.php?aid=$aid'>1</a></li>";
					if($cfg_rewrite == 'Y')
					{
						$PageList = preg_replace("/.php\?aid=(\d+)/i",'-\\1-1.html',$PageList);
					}
				}
				else
				{
					$PageList.="<li class=\"thisclass\"><a>1</a></li>";
				}
			}
			else
			{
				$n = $i;
				if($nowPage!=$i)
				{
					$PageList.="<li><a href='view.php?aid=$aid&pageno=$i'>".$n."</a></li>";
					if($cfg_rewrite == 'Y')
					{
						$PageList = str_replace(".php?aid=","-",$PageList);
						$PageList =  preg_replace("/&pageno=(\d+)/i",'-\\1.html',$PageList);
					}
				}
				else
				{
					$PageList.="<li class=\"thisclass\"><a href='#'>{$n}</a></li>";
				}
			}
		}
		if($lPage <= $totalPage)
		{
			$PageList.="<li><a href='view.php?aid=$aid&pageno=$lPage'>下一页</a></li>";
			if($cfg_rewrite == 'Y')
			{
				$PageList = str_replace(".php?aid=","-",$PageList);
				$PageList =  preg_replace("/&pageno=(\d+)/i",'-\\1.html',$PageList);
			}
		}
		else
		{
			$PageList.= "<li><a href='#'>下一页</a></li>";
		}
		return $PageList;
	}

	//获得静态页面分页列表
	function GetPagebreak($totalPage,$nowPage,$aid)
	{
		if($totalPage==1)
		{
			return "";
		}
		$PageList = "<li><a>共".$totalPage."页: </a></li>";
		$nPage = $nowPage-1;
		$lPage = $nowPage+1;
		if($nowPage==1)
		{
			$PageList.="<li><a href='#'>上一页</a></li>";
		}
		else
		{
			if($nPage==1)
			{
				$PageList.="<li><a href='".$this->NameFirst.".".$this->ShortName."'>上一页</a></li>";
			}
			else
			{
				$PageList.="<li><a href='".$this->NameFirst."_".$nPage.".".$this->ShortName."'>上一页</a></li>";
			}
		}
		for($i=1;$i<=$totalPage;$i++)
		{
			if($i==1)
			{
				if($nowPage!=1)
				{
					$PageList.="<li><a href='".$this->NameFirst.".".$this->ShortName."'>1</a></li>";
				}
				else
				{
					$PageList.="<li class=\"thisclass\"><a href='#'>1</a></li>";
				}
			}
			else
			{
				$n = $i;
				if($nowPage!=$i)
				{
					$PageList.="<li><a href='".$this->NameFirst."_".$i.".".$this->ShortName."'>".$n."</a></li>";
				}
				else
				{
					$PageList.="<li class=\"thisclass\"><a href='#'>{$n}</a></li>";
				}
			}
		}
		if($lPage <= $totalPage)
		{
			$PageList.="<li><a href='".$this->NameFirst."_".$lPage.".".$this->ShortName."'>下一页</a></li>";
		}
		else
		{
			$PageList.= "<li><a href='#'>下一页</a></li>";
		}
		return $PageList;
	}

	//获得动态页面小标题
	function GetPageTitlesDM($styleName,$pageNo)
	{
		if($this->TotalPage==1)
		{
			return "";
		}
		if(count($this->SplitTitles)==0)
		{
			return "";
		}
		$i=1;
		$aid = $this->ArcID;
		if($styleName=='link')
		{
			$revalue = "";
			foreach($this->SplitTitles as $k=>$v)
			{
				if($i==1)
				{
					$revalue .= "<a href='view.php?aid=$aid&pageno=$i'>$v</a> \r\n";
				}
				else
				{
					if($pageNo==$i)
					{
						$revalue .= " $v \r\n";
					}
					else
					{
						$revalue .= "<a href='view.php?aid=$aid&pageno=$i'>$v</a> \r\n";
					}
				}
				$i++;
			}
		}
		else
		{
			$revalue = "<select id='dedepagetitles' onchange='location.href=this.options[this.selectedIndex].value;'>\r\n";
			foreach($this->SplitTitles as $k=>$v)
			{
				if($i==1)
				{
					$revalue .= "<option value='".$this->Fields['phpurl']."/view.php?aid=$aid&pageno=$i'>{$i}、{$v}</option>\r\n";
				}
				else
				{
					if($pageNo==$i)
					{
						$revalue .= "<option value='".$this->Fields['phpurl']."/view.php?aid=$aid&pageno=$i' selected>{$i}、{$v}</option>\r\n";
					}
					else
					{
						$revalue .= "<option value='".$this->Fields['phpurl']."/view.php?aid=$aid&pageno=$i'>{$i}、{$v}</option>\r\n";
					}
				}
				$i++;
			}
			$revalue .= "</select>\r\n";
		}
		return $revalue;
	}

	//获得静态页面小标题
	function GetPageTitlesST($styleName,$pageNo)
	{
		if($this->TotalPage==1)
		{
			return "";
		}
		if(count($this->SplitTitles)==0)
		{
			return "";
		}
		$i=1;
		if($styleName=='link')
		{
			$revalue = "";
			foreach($this->SplitTitles as $k=>$v)
			{
				if($i==1)
				{
					$revalue .= "<a href='".$this->NameFirst.".".$this->ShortName."'>$v</a> \r\n";
				}
				else
				{
					if($pageNo==$i)
					{
						$revalue .= " $v \r\n";
					}
					else
					{
						$revalue .= "<a href='".$this->NameFirst."_".$i.".".$this->ShortName."'>$v</a> \r\n";
					}
				}
				$i++;
			}
		}
		else
		{
			$revalue = "<select id='dedepagetitles' onchange='location.href=this.options[this.selectedIndex].value;'>\r\n";
			foreach($this->SplitTitles as $k=>$v)
			{
				if($i==1)
				{
					$revalue .= "<option value='".$this->NameFirst.".".$this->ShortName."'>{$i}、{$v}</option>\r\n";
				}
				else
				{
					if($pageNo==$i)
					{
						$revalue .= "<option value='".$this->NameFirst."_".$i.".".$this->ShortName."' selected>{$i}、{$v}</option>\r\n";
					}
					else
					{
						$revalue .= "<option value='".$this->NameFirst."_".$i.".".$this->ShortName."'>{$i}、{$v}</option>\r\n";
					}
				}
				$i++;
			}
			$revalue .= "</select>\r\n";
		}
		return $revalue;
	}

	/**
	 * 高亮问题修正, 排除alt title <a></a>直接的字符替换
	 *
	 * @param string $kw
	 * @param string $body
	 * @return string
	 */
	function ReplaceKeyword($kw,&$body)
	{
		global $cfg_cmspath;
		$maxkey = 5;
		$kws = explode(",",trim($kw));	//以分好为间隔符
		$i=0;
		$karr = $kaarr = array();

		//暂时屏蔽超链接
		$body = preg_replace("/(<a(.*))(>)(.*)(<)(\/a>)/isU", '\\1-]-\\4-[-\\6', $body);

		foreach($kws as $k)
		{
			$k = trim($k);
			if($k!="")
			{
				if($i > $maxkey)
				{
					break;
				}
				$myrow = $this->dsql->GetOne("select * from #@__keywords where keyword='$k' And rpurl<>'' ");
				if(is_array($myrow))
				{
					$karr[] = $k;
					$kaarr[] = "<a href='{$myrow['rpurl']}'><u>$k</u></a>";
				}
				$i++;
			}
		}
		$body = preg_replace("/(^|>)([^<]+)(?=<|$)/sUe", "_highlight('\\2', \$karr, \$kaarr, '\\1')", $body);

		//恢复超链接
		$body = preg_replace("/(<a(.*))-\]-(.*)-\[-(\/a>)/isU", '\\1>\\3<\\4', $body);
		return $body;
	}


}//End Archives

//高亮专用
function _highlight($string, $words, $result, $pre)
{
	$string = str_replace('\"', '"', $string);
	$string = str_replace($words, $result, $string);
	return $pre.$string;
}

?>

⌨️ 快捷键说明

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