DedeCMS专题页节点文档调用自定义模型字段方法

余斗在修改完DedeCMS专题页节点文章列表样式之后,又遇到一个难题,因为专题页的节点文章发布在自定义模型里,我要在列表中把我自定义的字段也调用出来,DedeCMS默认是不显示的,需要实现这个功能就要进行二次开发了,余斗搜索了好久,整理出一个完美的解决方法:

一、修改专题页新增模板文件,打开/dede/templets/spec_add.htm,查找代码(大概在第354行):

<input name=
“rownum<?php echo $i?>” type=
“text” id=
“rownum<?php echo $i?>” value=
“10” size=
“3”>

 

在下面添加代码(value 的值就是自定义模型频道ID):

频道ID:<input name=
“channel<?php echo $i?>” type=
“text” id=
“channel<?php echo $i?>” value=
“17” size=
“3”>

 

查找代码(大概在第364行):

<tr>

  <td>节点容器模板:</td>

  <td colspan=
“2”><input name=
“notetemplet<?php echo $i?>” type=
“text” id=
“notetemplet<?php echo $i?>” value=
“system/channel_spec_note.htm” style=
“width:300”>

  <input type=
“button” name=
“selno<?php echo $i?>” value=
“浏览…” style=
“width:70” onClick=
“SelectTemplets(‘form1.notetemplet<?php echo $i?>’);”></td>

</tr>

 

在下面添加代码:

<tr>

  <td>扩展字段:</td>

  <td colspan=
“2”>

    <input id=
“addfields<?php echo $i?>” style=
“width: 663px;” type=
“text” name=
“addfields<?php echo $i?>” value=
“<?php echo $addfields?>”/>

  </td>

</tr>

 

二、修改专题页编辑模板文件,打开/dede/templets/ spec_edit.htm,查找代码(大概在第424行):

<input name=
“rownum<?php echo $i?>” type=
“text” id=
“rownum<?php echo $i?>” value=
“<?php echo $rownum?>” size=
“3”>

 

在下面添加代码(value 的值就是自定义模型频道ID):

频道ID:<input name=
“channel<?php echo $i?>” type=
“text” id=
“channel<?php echo $i?>” value=
“17” size=
“3”>

 

查找代码(大概在第428行):

<tr>

  <td colspan=
“2”>单条记录的模板:<br/>

  <textarea name=
“listtmp<?php echo $i?>” rows=
“3” id=
“listtmp<?php echo $i?>” style=
“width:60%”><?php echo $temp?></textarea></td>

</tr>

 

在下面添加代码:

<tr>

                <td>扩展字段:</td>

                <td colspan=
“2”>

                                <input id=
“addfields<?php echo $i?>” style=
“width: 663px;” type=
“text” name=
“addfields<?php echo $i?>” value=
“<?php echo $addfields?>”/>

                </td>

</tr>

 

查找代码(大概在第369行):

$noteid = $ctag->GetAtt(
‘noteid’);

 

在下面添加代码:

$channel = $ctag->GetAtt(
‘channel’);

$addfields = $ctag->GetAtt(
‘addfields’);

$notetemplet = $ctag->GetAtt(
‘notetemplet’);

 

三、修改专题页新增/编辑核心文件,分别打开 dede/spec_add.phpdede/spec_edit.php,查找代码(spec_add.php 文件中大概在第114行,spec_edit.php 文件中大概在第170行 ):

$listtmp = trim(${
‘listtmp’.$i});

 

在下面添加代码:

$addfields = trim(${
‘addfields’.$i});

$notetemplet = trim(${
‘notetemplet’.$i});

$infolen = trim(${
‘infolen’.$i});

$channel = trim(${
‘channel’.$i});

 

查找代码(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和字段的输入框:

然后在调用标签里把自己想要调用的自定义字段写进去就可以了,如果嫌文件修改过多,余斗把修改好的文件分享出来,大家自行下载使用。

DedeCM专题页节点文档调用自定义模型字段修改文件整理