要让
织梦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属性的设置,直到达到预期效果。 |