帝国cms结合项多选下拉 二次开发一个百度百科词条系统

帝国CMS教程

百度百科都看过,一个词条可以创建许多个小标题分类。利用帝国cms来做的话,最简单的方法就是自己再编辑器里面分段落,然后利用CSS来达到词条的效果。但是不利用后期修改,如果词条太多,内容太长不方便维护。还有一种方法就是利用帝国CMS的多值字段了,这个也不难,照着官方的代码稍微改改就能实现百度百科的效果了。

首先我们需要添加一个百科的多值字段。

字段名:ct

字段标识:词条

类型:中型

输入表单显示元素:多值字段

大概的输入表单替换html代码如下面这样。

functiondomvadd_p_ctnr(){vari;varstr='';varoldi=0;varj=0;varaddnum=0;addnum=parseInt(document.add.mvaddnum_p_ctnr.value);oldi=parseInt(document.add.mveditnum_p_ctnr.value);for(i=1;i<=addnum;i++){j=i+oldi;str=str+'<tr><tdalign="center"valign="top"><inputclass="p2"type="text"name="p_ctnr_1[]"id="p_ctnr_1_'+j+'"value=""class="p2"size="60"></td><tdalign="center"><textareaname="p_ctnr_2[]"id="p_ctnr_2_'+j+'"rows="12"cols="80"></textarea></td></tr>';}document.getElementById("mvadd_p_ctnr").innerHTML="<tablewidth='100%'border=0cellspacing=1cellpadding=3>"+str+"</table>";}</script><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><td><tablewidth="100%"border="0"cellpadding="3"cellspacing="1"bgcolor="#DBEAF5"><tr><tdalign="center">标题</td><tdalign="center">分段内容</td></tr></table></td></tr><tr><td><?phpif($ecmsfirstpost==1){?><tablewidth='100%'border=0cellspacing=1cellpadding=3><?php$editnum=3;for($i=1;$i<=$editnum;$i++){?><tr><tdalign="center"valign="top"><inputtype="text"name="p_ctnr_1[]2"id="p_ctnr_1_<?=$i?>"value=""class="p2"size="60"/></td><tdalign="center"><textareaname="p_ctnr_2[]"id="p_ctnr_2_<?=$i?>"rows="12"cols="80"></textarea></td></tr><?php}?></table><?php}else{$editnum=0;if($r['p_ctnr']){$r['p_ctnr']=stripSlashes($r['p_ctnr']);?><tablewidth='100%'border=0cellspacing=1cellpadding=3><?php//录入项$j=0;$mvf_record=explode('||||||',$r['p_ctnr']);$mvf_count=count($mvf_record);for($i=0;$i<$mvf_count;$i++){$j=$i+1;$mvf_field=explode("::::::",$mvf_record[$i]);?><tr><tdalign="center"valign="top"><inputtype="text"name="p_ctnr_1[]"id="p_ctnr_1_<?=$j?>"value="<?=$mvf_field[0]?>"class="p2"size="60"><inputtype="hidden"name="p_ctnr_mvid[]"id="p_ctnr_mvid_<?=$j?>"value="<?=$j?>"><inputtype="checkbox"name="p_ctnr_mvdelid[]"id="p_ctnr_mvdelid_<?=$j?>"value="<?=$j?>">删</td><tdalign="center"><textareaname="p_ctnr_2[]"id="p_ctnr_2_<?=$j?>"rows="12"cols="80"><?=$mvf_field[1]?></textarea></td></tr><?php}?></table><?php$editnum=$j;}}?></td></tr><tr><tdheight="25">扩展数量:<inputname="mveditnum_p_ctnr"type="hidden"id="mveditnum_p_ctnr"value="<?=$editnum?>"><inputname="mvnum_p_ctnr"type="hidden"id="mvnum_p_ctnr"value="2"><inputname="mvmust_p_ctnr"type="hidden"id="mvmust_p_ctnr"value="1"><inputname="mvaddnum_p_ctnr"type="text"id="mvaddnum_p_ctnr"value="1"size="6"><inputtype="button"name="Submit5"value="输出"onclick="javascript:domvadd_p_ctnr();"></td></tr><tr><tdid="mvadd_p_ctnr"></td></tr></table>

熟悉帝国CMS的添加字段大家都会,主要是前台调用有点难。帝国CMS论坛找了一段,循环分隔多值字段的代码,稍加修改。

<?php$morefr=explode('||||||',$navinfor[p_ctnr]);$mfcount=count($morefr);for($mfi=0;$mfi<$mfcount;$mfi++){$morefrf=explode('::::::',$morefr[$mfi]);?><liclass="font16line36"><span><?=$mfi+1?>.</span><atitle="<?=$morefrf[0]?>"data-slide="<?=$mfi+1?>"onClick="gotofloor(this);"href="javascript:void(0);"class="<?echo$mfi==0?'fb':'';?>"><?=$morefrf[0]?></a></li><?php}?></ol><?php$morefr=explode('||||||',$navinfor[p_ctnr]);$mfcount=count($morefr);for($mfi=0;$mfi<$mfcount;$mfi++){$morefrf=explode('::::::',$morefr[$mfi]);?><liclass="gray8line26jies"><dtclass="title"data-slide="<?=$mfi+1?>"><span><?=$morefrf[0]?></span></dt><ddclass="newstext"><?=$morefrf[1]?></dd></li><?php}?>

上面一段为调用的目录,下面的一段循环调用的词条标题和内容。前台的样式大家自行修改,我们主要看看后台是什么样的。

 

帝国cms结合项多选下拉 二次开发一个百度百科词条系统 第1张

可以自由添加词条数量,也可以删除,这样维护起来是不是就方便些了。