在完成DedeCMS专题页节点文章列表样式的修改后,如果需要在列表中显示自定义模型的字段,由于DedeCMS默认不支持这一功能,因此需要进行一些二次开发。本文将详细介绍如何通过修改模板文件和核心文件来实现这一需求。
一、修改专题页新增模板文件
1. 打开 /dede/templets/spec_add.htm 文件,查找代码(大约在第354行):
/dede/templets/spec_add.htm
在下面添加代码(value 的值为自定义模型频道ID):
频道ID:
2. 查找代码(大约在第364行):
节点容器模板:
在下面添加代码:
扩展字段:
二、修改专题页编辑模板文件
1. 打开 /dede/templets/spec_edit.htm 文件,查找代码(大约在第424行):
/dede/templets/spec_edit.htm
2. 查找代码(大约在第428行):
单条记录的模板:
3. 查找代码(大约在第369行):
$noteid = $ctag->GetAtt('noteid');
$channel = $ctag->GetAtt('channel'); $addfields = $ctag->GetAtt('addfields'); $notetemplet = $ctag->GetAtt('notetemplet');
三、修改专题页新增/编辑核心文件
1. 分别打开 dede/spec_add.php 和 dede/spec_edit.php 文件,查找代码(spec_add.php 文件中大约在第114行,spec_edit.php 文件中大约在第170行):
dede/spec_add.php
dede/spec_edit.php
spec_add.php
spec_edit.php
$listtmp = trim(${'listtmp'.$i});
$addfields = trim(${'addfields'.$i}); $notetemplet = trim(${'notetemplet'.$i}); $infolen = trim(${'infolen'.$i}); $channel = trim(${'channel'.$i});
2. 查找代码(spec_add.php 文件中大约在第148行,spec_edit.php 文件中大约在第238行):
$notelist .= "
将这段代码修改为:
$notelist .= "{dede:specnote notetemplet='$notetemplet' imgheight='$imgheight' imgwidth='$imgwidth' infolen='$infolen' titlelen='$titlelen' col='$col' idlist='$okids' name='$notename' noteid='$noteid' isauto='$isauto' rownum='$rownum' keywords='$keywords' typeid='$typeid' addfields='$addfields'} $listtmp {/dede:specnote}\r\n";
所有修改完成后,保存并上传覆盖文件。添加和编辑两个模板文件以及两个PHP处理文件都需要进行修改。完成后,专题页的文档节点页面将新增自定义模型ID和字段的输入框。然后在调用标签中填写需要调用的自定义字段即可。