首先我们需要添加一个百科的多值字段。
字段名:ct
字段标识:词条
类型:中型
输入表单显示元素:多值字段
大概的输入表单替换html代码如下面这样。
熟悉帝国CMS的添加字段大家都会,主要是前台调用有点难。帝国CMS论坛找了一段,循环分隔多值字段的代码,稍加修改。
- function domvadd_p_ctnr()
- {
- var i;
- var str='';
- var oldi=0;
- var j=0;
- var addnum=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><td align="center" valign="top"><input class="p2" type="text" name="p_ctnr_1[]" id="p_ctnr_1_'+j+'" value="" class="p2" size="60"></td><td align="center"><textarea name="p_ctnr_2[]" id="p_ctnr_2_'+j+'" rows="12" cols="80"></textarea></td></tr>';
- }
- document.getElementById("mvadd_p_ctnr").innerHTML="<table width='100%' border=0 cellspacing=1 cellpadding=3>"+str+"</table>";
- }
- </script>
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td>
- <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#DBEAF5">
- <tr><td align="center">标题</td><td align="center">分段内容</td></tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <?php
- if($ecmsfirstpost==1)
- {
- ?>
- <table width='100%' border=0 cellspacing=1 cellpadding=3>
- <?php
- $editnum=3;
- for($i=1;$i<=$editnum;$i++)
- {
- ?>
- <tr>
- <td align="center" valign="top"><input type="text" name="p_ctnr_1[]2" id="p_ctnr_1_<?=$i?>" value="" class="p2" size="60"/></td>
- <td align="center">
- <textarea name="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']);
- ?>
- <table width='100%' border=0 cellspacing=1 cellpadding=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><td align="center" valign="top"><input type="text" name="p_ctnr_1[]" id="p_ctnr_1_<?=$j?>" value="<?=$mvf_field[0]?>" class="p2" size="60"> <input type="hidden" name="p_ctnr_mvid[]" id="p_ctnr_mvid_<?=$j?>" value="<?=$j?>"><input type="checkbox" name="p_ctnr_mvdelid[]" id="p_ctnr_mvdelid_<?=$j?>" value="<?=$j?>">删</td><td align="center"><textarea name="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>
- <td height="25">扩展数量: <input name="mveditnum_p_ctnr" type="hidden" id="mveditnum_p_ctnr" value="<?=$editnum?>">
- <input name="mvnum_p_ctnr" type="hidden" id="mvnum_p_ctnr" value="2">
- <input name="mvmust_p_ctnr" type="hidden" id="mvmust_p_ctnr" value="1">
- <input name="mvaddnum_p_ctnr" type="text" id="mvaddnum_p_ctnr" value="1" size="6"> <input type="button" name="Submit5" value="输出" onclick="javascript:domvadd_p_ctnr();"></td>
- </tr>
- <tr>
- <td id="mvadd_p_ctnr"></td>
- </tr>
- </table>
上面一段为调用的目录,下面的一段循环调用的词条标题和内容。前台的样式大家自行修改,我们主要看看后台是什么样的。可以自由添加词条数量,也可以删除,这样维护起来是不是就方便些了。
- <?php
- $morefr=explode('||||||',$navinfor[p_ctnr]);
- $mfcount=count($morefr);
- for($mfi=0;$mfi<$mfcount;$mfi++)
- {
- $morefrf=explode('::::::',$morefr[$mfi]);
- ?><li class="font16 line36"><span><?=$mfi+1?>.</span><a title="<?=$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]);
- ?>
- <li class="gray8 line26 jies">
- <dt class="title" data-slide="<?=$mfi+1?>"><span><?=$morefrf[0]?></span></dt>
- <dd class="newstext"><?=$morefrf[1]?>
- </dd>
- </li>
- <?php
- }
- ?>