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.php和dede/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专题页节点文档调用自定义模型字段修改文件整理

本文DedeCMS专题页节点文档调用自定义模型字段方法到此结束。如果幸福是一条尾巴,那么每当我追逐自我的尾巴时,它总是一躲再躲,而当我着手做自我的事情时,它总是形影不离地伴随着我。小编再次感谢大家对我们的支持!

标签: DedeCMS