0712-2888027 189-8648-0214
微信公众号

孝感风信网络科技有限公司微信公众号

当前位置:主页 > 技术支持 > DedeCMS > DEDECMS二次开发之黄页频道导航标签

DEDECMS二次开发之黄页频道导航标签

时间:2024-04-25来源:风信官网 点击: 503次

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

栏目列表
推荐内容
热点内容
展开