• 0712-2888027 189-8648-0214
    微信公眾號

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

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

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

    時間:2024-03-28來源:風信官網 點擊: 467次

    很多人在抱怨,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/}標簽的格式寫就好了。

    欄目列表
    推薦內容
    熱點內容
    展開
    动漫h精品无码一区二区三区,欧美日韩精品一区二区,午夜麻豆国产精品,加勒比中文字幕无码,亚洲日本va中文字幕区