zoukankan      html  css  js  c++  java
  • 织梦一个标签获取当前链接url(首页/列表页/列表分页/内容页/内容页分页)

    获取当前链接url网上有很多教程,但是要么只支持动态下正常使用,要么只支持内容页使用,今天我来做个前无古人后无来者的

    我们不一样

    • 一个标签,可用于任意模板下使用
    • 支持动态/静态/伪静态 输出当前url
    • 支持首页/列表页/列表分页/内容页/内容页分页

    首页

    动态栏目页/栏目分页

    动态内容页/内容页分页

    静态栏目页/栏目分页

    静态内容页/内容分页

    实现教程

    1、获取内容页当前Url 或者 内容页分页Url

    打开 /include/arc.archives.class.php 找到

    $this->NowPage = $pageNo;

    在它上面加入

    $ArcArr = GetOneArchive($this->ArcID);
    $arcurl = $ArcArr['arcurl'];

    继续找到

    $this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];

    在它上面加入

    if($ismake==1)
    {
    	if($pageNo>1)
    	{
    		$pagebreak = str_replace($this->NameFirst, $this->NameFirst."_".$pageNo, $arcurl);
    	}
    }
    else
    {
    	if($pageNo>1) $pagebreak = "&pageno=".$pageNo;
    	if($cfg_rewrite == 'Y')
    	{
    		$pagebreak = str_replace(".php?aid=", "-", $arcurl);
    		$pagebreak =  preg_replace("#&pageno=(d+)#i", '-\1.html', $pagebreak);
    	}
    	$pagebreak = $arcurl.$pagebreak;
    }

    继续找到

    //解析模板

    在它上面加入

    $this->Fields['itemcururl'] = isset($pagebreak) ? $pagebreak : $arcurl;

    2、获取列表页当前Url 或者 列表页分页Url

    打开 /include/arc.listview.class.php 找到

    //替换第二页后的内容

    在它上面加入

    $this->Fields['itemcururl'] = $this->GetItemsCurUrl($PageNo);

    继续找到

    function GetCurUrl()

    在它上面加入

    function GetItemsCurUrl($PageNo)
    {
    	global $cfg_basehost;
    	if($this->TypeLink->TypeInfos['isdefault']==-1)
    	{
    		$purl = $this->GetCurUrl();
    		if($cfg_rewrite == 'Y')
    		{
    			$nowurls = preg_replace("/-/", ".php?", $purl);
    			$nowurls = explode("?", $nowurls);
    			$purl = $nowurls[0];
    		}
    		if($PageNo==1)
    		{
    			$geturl = "tid=".$this->TypeID;
    			$purl .= '?'.$geturl;
    		}
    		else
    		{
    			$geturl = "tid=".$this->TypeID."&TotalResult=".$this->TotalResult."&";
    			$purl .= '?'.$geturl."PageNo=".$PageNo;
    		}
    	}
    	else
    	{
    		$tnamerule = $this->GetMakeFileRule($this->Fields['id'],"list",$this->Fields['typedir'],$this->Fields['defaultname'],$this->Fields['namerule2']);
    		$tnamerule = preg_replace("/^(.*)//", '', $tnamerule);
    		$cfg_basehost = preg_replace('#/$#','',$cfg_basehost);
    		$tnamerule = MfTypedir($this->Fields['typedir']).'/'.$tnamerule;
    		if($PageNo==1)
    		{
    			$purl = MfTypedir($this->Fields['typedir']).'/';
    		}
    		else
    		{
    			$purl = str_replace("{page}",$PageNo,$tnamerule);
    		}
    	}
    	return $purl;
    }

    还需要打开 /include/arc.partview.class.php 找到

    $this->Fields['title'] = $this->TypeLink->GetPositionLink(false);

    在它下面加入

    $this->Fields['itemcururl'] = $this->TypeLink->GetOneTypeUrl($this->TypeLink->TypeInfos);

    前台模板标签调用

    {dede:field.itemcururl runphp=yes}global $cfg_basehost;@me = (@me == '' ? "{$cfg_basehost}" : "{$cfg_basehost}@me");{/dede:field.itemcururl}
  • 相关阅读:
    PythonのTkinter基本原理
    使用 Word (VBA) 分割长图到多页
    如何使用 Shebang Line (Python 虚拟环境)
    将常用的 VBScript 脚本放到任务栏 (Pin VBScript to Taskbar)
    关于 VBScript 中的 CreateObject
    Windows Scripting Host (WSH) 是什么?
    Component Object Model (COM) 是什么?
    IOS 打开中文 html 文件,显示乱码的问题
    科技发展时间线(Technology Timeline)
    列置换密码
  • 原文地址:https://www.cnblogs.com/dedehtml/p/9913719.html
Copyright © 2011-2022 走看看