php织梦导航被选中,织梦的当前页导航样式添加

本文介绍了如何在织梦CMS中为栏目页和文章页添加当前页高亮功能。通过两种方法实现:一是利用织梦的模板系统为相关栏目设置共享模板;二是通过PHP的runphp功能获取顶级typeid并动态设置样式。虽然第二方法较为智能,但也存在资源浪费的问题,适合于需要精确控制导航样式的情况。
摘要由CSDN通过智能技术生成

织梦真的是一个很棒的建站工具,其实与其说是建站工具不如说是个很好的内容管理系统更为合适。最近在做织梦的开发的时候遇到了这样的情况,就是想要栏目页和栏目的文章页显示对应的热词搜索,其实,我想了想,不就是和给织梦的当前页加样式一样吗。很多人在做织梦的开发的时候,有的时候建的栏目特别的多,而且也有特别多的子栏目。比如,导航中有新闻动态、专家团队,新闻动态下有子栏目企业动态。如何实现点新闻动态,还是企业动态,还是他们下面所属的文章的时候默认的当前页都是新闻动态。下面就说说具体实现。

第一种方法

其实有的时候,我们为了方便,其实可以让有关系的栏目公用一套模板,而其他的公用一套模板。这也是织梦的强大之处。在栏目的高级选项中,其实我们可以对每个栏目指定单独的模板

c461792d10720561c2560122b03268e2.png

这样,就可以实现这个栏目的页面自己随便定义了。当然也包括样式。其实就这个方法可以做很多的功能了。

第二种方法。

但是很多人其实并不喜欢第一种方式,觉得这样很笨,因为所有的模板几乎都是大部分一样的,只有几个小地方又区别,这样太麻烦,就像要实现的功能,就是导航的当前页不同而已。所以这里有个用php实现的方法。

我们要考虑一下原理,所有的当前页一样的页面的共同点是什么,对了,那就是他的顶级的typeid是一样的,我们指定,用{dede:field.typeid/}是可以获得当前页面的typeid的。这个就是栏目的id。栏目因为有从属关系,所以所有的子栏目和下面的文章的顶级typeid是一样的。那么我们就可以根据这个typeid来判断当前是哪个页面了。

因为模板中不能直接的使用php,所以我们使用标签的runphp功能。

虽然可以使用php了,但是不能定义函数,所以我们用for循环,给他一个死循环,直到查到顶级id就结束。

{dede:field.typeid runphp=’yes’}

$tid = @me;

if(!empty($tid)){

for(;;){

//dede_arctype是表名,你要知道你的表的名字,不知道可以查看data/common.inc.php

$sql = “select topid from dede_arctype where id=$tid”;

$query=mysql_query($sql);

$rs = mysql_fetch_array($query);

if(’0′==$rs['topid']){

$id = $tid;

break;

}else{

$tid = $rs['topid'];

}

}

}else{

$id = ‘no’;

}

//将这个方法定义在公共部分。

//这样最后的这个id就是顶级栏目的id了。有了这个id.就好办了。我们可以将这个值放在一个隐藏域中,给导航取id或class为以栏目id为基础的。这样用js获取这个隐含值,就可以知道给哪个栏目加样式等等了。

{/dede:field.typeid}

这个看着很智能,其实也有很大的弊端,毕竟这样比较浪费资源,尤其是如果每个文章页也都这么操作,的确是有点得不偿失了。所以,根据实际情况吧,当然也有很多其他的办法,但是,我觉得这个办法也是比较智能的。

程序本天成,妙手偶得之!我们只是代码的搬运工!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值