1. <tt id="ruiib"></tt>
      1. 0712-2888027 189-8648-0214
        微信公眾號

        孝感風信網絡科技有限公司微信公眾號

        當前位置:主頁 > 技術支持 > DedeCMS > DEDECMS二次開發之黃頁頻道導航標簽

        DEDECMS二次開發之黃頁頻道導航標簽

        時間:2024-05-25來源:風信官網 點擊: 543次

        很多人在抱怨,DEDECMS的企業黃頁頻道,導航無法使用{dede:channel/}標簽,只有 一個“首頁”鏈接,如果要實現導航,只能使用“自定義宏標記",需知道,DEDECMS的”自定義宏標記"只是在頁面中插入一 段<script>腳本,這種形式的導航,搜索引擎是沒辦法進行抓取的。給各大站長的SEO優化帶來了很大的煩惱,官網又不提供解決方案,網 上搜索也沒有。

          其實DEDECMS的開源給了我們這些稍懂程序的人提供了很多的方便,既然官網沒有提供,那就只能是自己寫了,研究了一些DEDECMS的源碼,寫起來也挺簡單的。

        第一步:在include\tpllib下,新建一個:plus_channel.php文件,然后在文件中寫下如下內容:

        <?php

        if(!defined('DEDEINC'))

        {

        exit("Request Error!");

        }

        //orderby = logintime(login new) or mid(register new)

        require_once(DEDEINC."/channelunit.func.php");

        function plus_channel(&$atts,&$refObj,&$fields)

        {

        global $dsql,$_vars;

        $attlist = "typeid=0,reid=0,row=100,col=1,type=son,currentstyle=";

        FillAtts($atts,$attlist);

        FillFields($atts,$fields,$refObj);

        extract($atts, EXTR_OVERWRITE);

        $rearray = array();

         

        $reid = 0;

        $topid = 0;

        //如果屬性里沒指定欄目id,從引用類里獲取欄目信息

        if(empty($typeid))

        {

        if( isset($refObj->TypeLink->TypeInfos['id']) )

        {

        $typeid = $refObj->TypeLink->TypeInfos['id'];

        $reid = $refObj->TypeLink->TypeInfos['reid'];

        $topid = $refObj->TypeLink->TypeInfos['topid'];

        }

        else {

        $typeid = 0;

        }

        }

        //如果指定了欄目id,從數據庫獲取欄目信息

        else

        {

        $row2 = $dsql->GetOne("Select * From `dede_arctype` where id='$typeid' ");

        $typeid = $row2['id'];

        $reid = $row2['reid'];

        $topid = $row2['topid'];

        $issetInfos = true;

        }

         

        if($type=='' || $type=='sun') $type='son';

        if($innertext=='') $innertext = GetSysTemplets("channel_list.htm");

         

        $likeType = '';

        if($type=='top')

        {

        $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

        From `dede_arctype` where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row";

        }

        else if($type=='son')

        {

        if($typeid==0) return '';

        $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

        From `dede_arctype` where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";

        }

        else if($type=='self')

        {

        if($reid==0) return '';

        $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

        From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";

        }

        $dsql->Execute('ch',$sql);

        while($row = $dsql->GetArray('ch'))

        {

        if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )

        {

        $linkOkstr = $currentstyle;

        $row['typelink'] = GetOneTypeUrlA($row);

        $linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);

        $linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);

        //$likeType .= $linkOkstr;

        $row['typelink'] = $linkOkstr;

        }

        else

        {

        $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);

        }

        $rearray[] = $row;

        }

        return $rearray;

        }

        ?>

        第二步:在模板里面,按照{dede:channel/}標簽的格式寫就好了。

        欄目列表
        推薦內容
        熱點內容
        展開
        AV中文无码乱人伦在线_国产亚洲精品线观看不卡_高清无码色大片中文_2020国产中文字幕网站