当前位置:首页 > 行业动态 > 正文

如何在织梦arclist中实现支持notypeid属性的功能?

要让织梦arclist支持notypeid属性,可以通过修改相应的模板文件和配置文件来实现。具体操作如下:,,1. 打开织梦的模板文件,找到包含arclist标签的地方。,2. 在 arclist标签中添加notypeid属性, {dede:arclist notypeid='1,3,5'}。,3. 保存模板文件,并重新生成页面。,,这样, 织梦arclist就支持了 notypeid属性,可以根据需要排除指定的栏目类型。

让织梦arclist支持notypeid属性的方法,可以通过修改织梦CMS的源代码来实现,以下是具体步骤:

1、修改lib_arclist函数

打开文件/include/taglib/arclist.lib.php

找到以下代码(大概在130行):

“`php

return lib_arclistDone ( $refObj, $ctag, $typeid, $ctag>GetAtt(‘row’), $ctag>GetAtt(‘col’), $titlelen, $infolen, $ctag>GetAtt(‘imgwidth’), $ctag>GetAtt(‘imgheight’), $listtype, $orderby, $ctag>GetAtt(‘keyword’), $innertext, $envs[‘aid’], $ctag>GetAtt(‘idlist’), $channelid, $ctag>GetAtt(‘limit’),$flag,$ctag>GetAtt(‘orderway’), $ctag>GetAtt(‘subday’), $ctag>GetAtt(‘noflag’), $tagid,$pagesize,$isweight );

“`

在最后括号最后加上(注意前面的逗号):

“`php

,$ctag>GetAtt(‘notypeid’)

“`

2、修改lib_arclistDone函数

在该文件中继续找到以下代码(大概在168行):

“`php

function lib_arclistDone(&$refObj, &$ctag, $typeid=0, $row=10,$col=1, $titlelen=30, $infolen=160, $imgwidth=120,$imgheight=90,$listtype=’all’, $orderby=’default’, $keyword=”, $innertext=”, $arcid=0, $idlist=”, $channelid=0, $limit=”, $att=”,$order=’desc’, $subday=0, $noflag=”, $tagid=”, $pagesize=0,$isweight=’N’ )

“`

在括号的最后加上(注意前面的逗号):

“`php

,$notypeid=0

“`

3、增加过滤条件

继续在该文件中找到以下代码(大概在321行):

“`php

$orwheres[] = ‘ arc.arcrank > 1 ‘;

“`

在其前面增加以下代码:

“`php

if(!empty($notypeid)) {

$orwheres[] = " and arc.typeid NOT IN (".GetSonIds($notypeid).")";

}

“`

4、保存并测试

保存文件后,就可以在arclist标签中使用notypeid属性了。

“`html

{dede:arclist row=’10’ typeid=’1′ notypeid=’10’ titlelen=’60’}

“`

归纳:详细步骤和代码对比

步骤 原代码 修改后代码
修改lib_arclist函数 return lib_arclistDone ( $refObj, $ctag, $typeid,…); return lib_arclistDone ( $refObj, $ctag, $typeid, … ,$ctag>GetAtt(‘notypeid’));
修改lib_arclistDone函数 function lib_arclistDone(&$refObj, &$ctag, $typeid=0, … ,$isweight=’N’ ) function lib_arclistDone(&$refObj, &$ctag, $typeid=0, … ,$isweight=’N’, $notypeid=0)
增加过滤条件 $orwheres[] = ‘ arc.arcrank > 1 ‘; if(!empty($notypeid)) { $orwheres[] = ” and arc.typeid NOT IN (“.GetSonIds($notypeid).”)”; }

FAQs

问题1:如何在织梦Dedecms中实现栏目排除功能?

答:在织梦Dedecms中,通过修改/include/taglib/arclist.lib.php文件,添加notypeid属性,可以实现栏目排除功能,具体步骤如下:

1、打开/include/taglib/arclist.lib.php文件。

2、在lib_arclist函数的返回值中添加$ctag>GetAtt('notypeid')

3、在lib_arclistDone函数的定义中添加$notypeid=0

4、在$orwheres[] = ' arc.arcrank > 1 ';之前添加if(!empty($notypeid)) { $orwheres[] = " and arc.typeid NOT IN (".GetSonIds($notypeid).")"; }

5、保存文件后,即可使用notypeid属性进行栏目排除。

问题2:如何调用新添加的notypeid属性?

答:在织梦Dedecms模板文件中,可以使用{dede:arclist}标签调用新添加的notypeid属性,示例如下:

{dede:arclist row='10' typeid='1' notypeid='10' titlelen='60'}

上述代码表示调用ID为1的栏目的文章,同时排除ID为10的子栏目的文章,每页显示10条记录,标题长度为60个字符。

步骤 操作 说明
1 打开织梦ARCMS 打开您已经安装并配置好的织梦ARCMS系统。
2 进入后台管理 在浏览器中输入织梦ARCMS的后台管理地址,登录系统。
3 进入模块管理 在后台管理界面,找到并点击“模块管理”。
4 选择ARCMS模块 在模块管理页面,找到“ARCMS”模块,并点击进入。
5 模块配置 在ARCMS模块页面,找到“模块配置”或类似选项,点击进入。
6 查找notypeid属性 在模块配置页面,查找是否有“notypeid”属性或类似功能的设置。
7 编辑或添加notypeid属性 如果找到了notypeid属性,进行编辑;如果没有找到,需要添加新的属性。
8 设置属性值 根据需求设置notypeid属性的值,确保符合您的使用场景。
9 保存配置 完成属性设置后,点击“保存”或“提交”按钮,保存您的配置。
10 验证效果 在织梦ARCMS的前台查看效果,确保notypeid属性已正确应用。
11 调整与优化 如有必要,根据实际效果调整notypeid属性的设置,直到达到预期效果。
0