如何在织梦arclist中实现支持notypeid属性的功能?
- 行业动态
- 2024-10-08
- 1
{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属性的设置,直到达到预期效果。 |
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/118592.html