1. 程式人生 > 實用技巧 >織夢列表頁獲取當前連結和當前分頁連結

織夢列表頁獲取當前連結和當前分頁連結

織夢列表頁獲取當前連結和當前分頁連結

功能描述

  • 相容靜態 動態 偽靜態
  • 支援第一頁直接是欄目連結,第二頁,第三頁。。。。按當前分頁
  • 支援在開啟絕對路徑和沒開啟絕對路徑不同輸出

實現教程

1.開啟 include/arc.listview.class.php 找到

else if($PageNo!=1 && $ctag->GetName()=='field' && $ctag->GetAtt('display')!='')

在它的上面加入

else if($ctag->GetName()=="itemcururl")
{
    if($ismake==0)
    {
        $this->dtp->Assign($tagid,$this->GetItemsCurUrlDM());
    }
    else
    {
        $this->dtp->Assign($tagid,$this->GetItemsCurUrlST());
    }
}

繼續找到

獲得當前的頁面檔案的url

在它的註釋上面加入

/**
 *  獲得當前欄目連結與當前分頁連結
 *
 * @access    public
 * @return    string
 * @return    {dede:itemcururl/}
 */
function GetItemsCurUrlDM()
{
	global $cfg_basehost,$cfg_multi_site;
	$purl = $this->GetCurUrl();
    // 如果開啟為靜態,則對規則進行替換
    if($cfg_rewrite == 'Y')
    {
        $nowurls = preg_replace("/-/", ".php?", $purl);
        $nowurls = explode("?", $nowurls);
        $purl = $nowurls[0];
    }
	if($this->PageNo==1)
	{
		$geturl = "tid=".$this->TypeID;
		$purl .= '?'.$geturl;
	}
	else
	{
		$geturl = "tid=".$this->TypeID."&TotalResult=".$this->TotalResult."&";
		$purl .= '?'.$geturl."PageNo=".$this->PageNo;
	}
	$cururl = ($cfg_multi_site=='Y') ? $purl : $cfg_basehost.$purl;
	return $cururl;
}
function GetItemsCurUrlST()
{
	global $cfg_basehost;
    $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($this->PageNo==1)
	{
		$purl = MfTypedir($this->Fields['typedir']).'/';
	}
	else
	{
		$purl = str_replace("{page}",$this->PageNo,$tnamerule);
	}
	$cururl = ($cfg_multi_site=='Y') ? $purl : $cfg_basehost.$purl;
	return $cururl;
}

列表頁模板呼叫標籤寫法

{dede:itemcururl/}