在DedeCMS中,实现根据顶级栏目ID调用不同的banner广告图片是一项常见的需求。这种方法可以确保每个产品大类及其子栏目共享同一张banner图,从而提升网站的一致性和美观度。以下内容将详细介绍如何通过DedeCMS的标签和代码实现这一功能。

在DedeCMS中,首页、联系我们、公司介绍等页面通常会调用默认的banner图,这并不复杂。然而,对于产品页面来说,情况可能会有所不同。


例如:


产品大类A(封面页,typeid=111)-小类1 小类2 小类3 小类4


产品大类B(封面页 typeid=222)-小类5 小类6 小类7 小类8


产品大类C(封面页 typeid=333)-小类9 小类10 小类11 小类12...


A大类下,所有子栏目及文章的banner图是同一张 111.jpg;B大类的则是另外一张222.jpg。


换句话说,产品所有页面都会调用所属顶级栏目(封面页)的 typeid 名字的图。


那么,如何在HTML代码中实现这一效果呢?




    

解决办法如下:


使用以下代码即可:



{dede:field.typename/}
    

只需修改图片的名字即可。此方法已通过测试,非常实用。


此外,还有一种方法可以调用顶级栏目ID:


首先,在需要调用顶级栏目ID的地方添加以下标签语法:



{dede:type}[feild:topid/]{/dede:type}
    

其次,修改源文件。找到include目录下的taglib目录下的type.lib.php。


找到以下语句:



$row = $dsql->GetOne("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where id=’$typeid’ ");
    

将其修改为:



$row = $dsql->GetOne("Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where id=’$typeid’ ");
    

然后在if(!is_array($row)) return "";下一行添加:



if( $row['topid']==0){$row['topid']=$row['id'];}
    

这样,无论是顶级栏目还是子栏目,都可以成功调用。


以上是对DedeCMS模板中添加顶级栏目id方法的小结。欢迎各位进行测试和关注。


DedeCMS借助顶级栏目id来调用不同的banner广告图片。使用dede顶级栏目id可以实现许多功能,如在每个列表页调用不同的栏目图片(同一顶级栏目调用相同的图片)。我们可以通过调用顶级栏目ID,并将图片尾部添加为ID号如:img1.jpg 即为imgID.jpg,从而简化操作。


总结:


使用以下代码:



{dede:field.typename/}
    

或者直接:



联系我们