织梦号织梦号

何其有幸,我们相遇。

dedebiz隐藏栏目内容灵活调用方案探讨(内容无法调用解决方案)

正常来说,我们既然要隐藏一个栏目,自然是不希望这个栏目会在前台显示,但是也有很多情况下,我们是希望这个栏目不要在导航栏/网站地图中出现,栏目内容可能还是需要的!dedebiz社区版目前设置的是,如果隐藏了栏目,那么该栏目下的内容就无法调用!这个问题该如何解决呢?接下来一起看看吧!

目前这个问题仅限于dedebiz社区版(截止于2023年8月13日),如果开发人员有幸看到,希望将此功能更新到正式版中!当然使用dedecms的朋友也可以参考此思路来修改!

一、问题复现

站长在制作一个网站时,在“关于我们”栏目中,有一些类似于“团队成员、资质荣誉、选择我们的优势”等,可以添加到后台,方便客户上传的内容,但是这些栏目又不能让它在导航中显示(ps:站长弄得这个网站,导航是完全调用后台的,并非写死的那种),于是便降栏目属性设为“隐藏”。然后模板中正常调用!

dedebiz隐藏栏目内容灵活调用方案探讨(内容无法调用解决方案)

{dede:arclistrow='18'titlelen='60'typeid='18'orderby='weight'}
......
{/dede:arclist}

然后,生成页面后,缺不能显示!一般来说,此类问题最简单的解决办法就是万能的百度,不过经过一番查询,并没有什么有用的东西!因此,站长决定自行解决!

二、解决办法

经过站长对按arclist标签的查看发现,dedebiz社区版目前设置的是,只要栏目隐藏,那么文档就无法调用出来。那么有没有一种方法,让隐藏栏目的文章,该出来时候就显示出来。而不该显示出来的时候,就不让他显示出来呢?答案是有的!

思路是,如果隐藏栏目的内容需要显示出来,那么只需要指定调用这个栏目即可!如果没有指定这个隐藏的栏目id,那么就不让它显示!

dedebiz隐藏栏目内容灵活调用方案探讨(内容无法调用解决方案)

假设栏目id为8的行业动态栏目,栏目属性设置为隐藏,那么我们在调用新闻资讯时,行业动态的内容是不能显示的。而如果专门调用行业动态的文章,那么又可以显示,这样是比较灵活一点的!当然,目前dedebiz是任何情况都不能调用到的!

三、修改内容

打开system/taglib/arclist.lib.php

1、找到63行,将

$typeid=trim($ctag->GetAtt('typeid'));

改为

$typeid=$typeidOld=trim($ctag->GetAtt('typeid'));

2、找到107行,将

$typeid=0,

改为

$typeid=0,$typeidOld=0,

3、将259行

if($orwhere!='')$orwhere="WHERE$orwhereandtp.ishidden!=1";

改为

if($orwhere!='')$orwhere="WHERE$orwhere";//注意把空格打上,编辑器抽风了,自己把空格去掉了,参考下图
if($typeid!=$typeidOld)$orwhere.="andtp.ishidden!=1";//注意把空格打上,编辑器抽风了,自己把空格去掉了,参考下图

dedebiz隐藏栏目内容灵活调用方案探讨(内容无法调用解决方案)

以上代码修改,就完成了如果隐藏栏目的内容需要显示出来,那么只需要指定调用这个栏目即可!如果没有指定这个隐藏的栏目id,那么就不让它显示!


转载保留:织梦号 » dedebiz隐藏栏目内容灵活调用方案探讨(内容无法调用解决方案)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏