CMSware外部投稿
导航:返回上一页
外部投稿功能允许匿名用户通过该接口向网站允许投稿的栏目投稿。一个栏目是否允许投稿我们已在该栏目的结点设置-稿件工作流套用设定过。设定为投稿即发布时提交以后不会有返回值,即返回为空白页。
界面示例:
说明
(1)前台接口
{PUBLISH_URL}/contribution.php?参数1=X&参数2=Y&参数3=Z
可用参数:
- TableID:内容模型ID,用于定位投稿录入界面模版(新闻投稿、软件下载投稿的录入界面都是不同的)
- TargetNodeID:投稿目标结点ID
- Tpl:指定投稿所用的模版名称,模版名称需要以“.html”做后缀。比如现在使用{templates}/plugins/contribution 下的test.html模版,参数就是Tpl=test.html,当然,系统支持参数中省略掉.html类型的模版的后缀名(其它类型的模版文件不可省略),即Tpl=test.html可以这样写:Tpl=test
- o:o=do即提交投稿
功能定义:
显示投稿界面:
contribution.php?TableID=?
提交投稿数据: GET:
contribution.php?o=do&TableID=?&TargetNodeID=?
POST:实际投稿数据,表单输入字段名格式为“data_内容模型字段名”,比如“Title”和“Content”字段的表单输入字段名为 “data_Title”、“data_Content”
使用举例:
使用test.html作为新闻模型的投稿录入模版:
contribution.php?TableID=1&Tpl=test.html
也可以简写为
contribution.php?TableID=1&Tpl=test
使用新闻模型的默认自定义模版:contribution.php?TableID=1
(2)模版定义
- 模版目录位于:{templates}/plugins/contribution
- default.html :默认模版,当内容模型自定义模版不存在时,使用该模版
- error.html :默认投稿成功以后的返回页面,你可以修改这个模版设置自己的返回页面
- contribution_{TableID}.html :内容模型默认自定义模版,{TableID}为内容模型TableID
比如我们在{templates}/plugins/contribution下定义一个contribution_1.html,新闻模型投稿默认使用
系统使用模版的优先顺序:自定义模版(Tpl),内容模型自定义模版(contribution_{TableID}.html),默认模版(default.html)
(3)模版制作
简单的讲,我们要把一个做好的html表单修改成一个投稿模版要做以下几件事情:加form,选结点,改name,添ID,留主体
1.加form即我们先用一个form把要提交的表单用一个form包起来
<form name="form1" method="post" action="[$PUBLISH_URL]contribution.php?o=do&TableID=2"> 要提交的表单 </form>
2.选结点就是要指定投稿到哪个结点。注意:我们必须保证所指定的结点是允许投稿的,
如下是指定投稿到结点ID为12的结点
<input type="hidden" name="TargetNodeID" value = "12">
如下是显示允许投稿的结点列表供我们选择
<select name="TargetNodeID" id = "TargetNodeID"> <loop $NODE_LIST var=var> <if $var.WorkFlow != 0 && $var.TableID == $TableID > <option value="[$var.NodeID]">[@str_repeat(' ', $var.cHeader)] - [$var.Name]</option> </if> </loop></select>
3.改name
必须把表单中的各类类似
<td><input name="areacode" type="text" size="10"> <input name="phone" type="text" size="20"></td>
这里的name部分值前全部加上data_,这是一个强制的系统约定,不可更改。也就是在模版中这部分的代码必须改为
<td><input name="data_areacode" type="text" size="10"> <input name="data_phone" type="text" size="20"></td>
4.添ID.所有的提交项除了name以外还必须有一个和name一样的ID,这是系统的强制约定。我们上面的这段代码
<td><input name="data_areacode" type="text" size="10"> <input name="data_phone" type="text" size="20"></td>
在最终模版中应该是如下这样的:
<td><input name="data_areacode" id="data_areacode" type="text" size="10"> <input name="data_phone" id="data_areacode" type="text" size="20"></td>
5.留主体。html页面中除了上述部分需要修改以外,其余部分原样保留,不需要变动什么
下面给出一个完整的例子:
比如我们做好了如下的一个静态页面提交表单, 要将其改为投稿模版,其代码为
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"><table width="520" border="0" cellpadding="1" cellspacing="1"> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"> 姓名:</td> <td><input name="name" size="30"></td> </tr> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"> 性别:</td> <td><select name="sex"> <option value="先生" selected>先生</option> <option value="女士">女士</option> </select></td> </tr> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"> 电话:</td> <td><input name="areacode" type="text" size="10"> - <input name="phone" type="text" size="20"></td> </tr> <tr> <td align="right"></td> <td bgcolor="#C6EFCF" class="l18"> 手机:</td> <td><input name="mobile" type="text" size="30"></td> </tr> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"><span class="e18"> Email</span>:</td> <td><input name="email" type="text" size="30"></td> </tr> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"> 所在地区:</td> <td> <select name="area"> <option value="北京" selected>北京</option> <option value="上海">上海 </option> <option value="天津">天津 </option> <option value="重庆">重庆 </option> <option value="黑龙江">黑龙江 </option> <option value="吉林">吉林 </option> <option value="辽宁">辽宁 </option> <option value="河北">河北 </option> <option value="山东">山东 </option> <option value="山西">山西 </option> <option value="河南">河南 </option> <option value="陕西">陕西 </option> <option value="青海">青海 </option> <option value="宁夏">宁夏 </option> <option value="西藏">西藏 </option> <option value="新疆">新疆 </option> <option value="内蒙古">内蒙古 </option> <option value="四川">四川 </option> <option value="云南">云南 </option> <option value="广东">广东 </option> <option value="广西">广西 </option> <option value="海南">海南 </option> <option value="湖南">湖南 </option> <option value="湖北">湖北 </option> <option value="江西">江西 </option> <option value="安徽">安徽 </option> <option value="江苏">江苏 </option> <option value="浙江">浙江 </option> <option value="福建">福建 </option> <option value="甘肃">甘肃 </option> <option value="贵州">贵州</option> <option value="海外地区">海外地区</option> </select> <input name="region" type="text" size="15"> 市/区</td> </tr> <tr> <td align="right"> </td> <td bgcolor="#C6EFCF" class="l18"> 通讯地址:</td> <td><input name="address" type="text" size="30"></td> </tr> <tr> <td align="right"> </td> <td bgcolor="#C6EFCF" class="l18"> 邮政编码:</td> <td><input name="postcode" type="text" size="30"></td> </tr> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"> 留言类型:</td> <td> <select name="type"> <option value="咨询" selected>咨询</option> <option value="投诉">投诉</option> <option value="意见或建议">意见或建议</option> <option value="其它">其它</option> </select> </td> </tr> <tr> <td align="right" valign="top"><font color="#f74d00">*</font></td> <td valign="top" bgcolor="#C6EFCF" class="l18"> 留言内容:</td> <td><textarea name="content" cols="40" rows="5"></textarea></td> </tr> </table> <table width="520" border="0" cellspacing="1" cellpadding="1"> <tr> <td class="l18"><font color="#f84c02">您是否需要获得公司的新品信息或市场营销活动信息?</font></td> </tr> <tr> <td> </td> <td class="l18"><input type="radio" name="sendmail" value="y" checked> 请通过电子邮件发送给我新品信息或市场营销活动信息</td> </tr> <tr> <td> </td> <td class="l18"><input type="radio" name="sendmail" value="n"> 请不要使用该资料向我发送新品信息或市场营销活动信息</td> </tr> </table> <br> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="201" bgcolor="#e5e5e5"> </td> <td width="89"> <input name="submit" type="submit" value="提交" width="89" height="28" border="0" onclick="return checkform();"></td> <td width="95"> <input name="clean" width="95" height="28" border="0" type="reset" value="重填" onclick="document.form1.reset();return false;"></td> <td bgcolor="#e5e5e5"> </td> </tr> </table></td> <td width="1" bgcolor="#B5B5B5"><img src="0.gif" width="1" height="1"></td> </tr> </table>
我们将其修改为如下的投稿模版:
<form name="form1" method="post" action="[$PUBLISH_URL]contribution.php?o=do&TableID=2"> <input type="hidden" name="TargetNodeID" value = "12">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"><table width="520" border="0" cellpadding="1" cellspacing="1"> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"> 姓名:</td> <td><input name="data_name" id="data_name" size="30"></td> </tr> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"> 性别:</td> <td><select name="data_sex" id="data_sex"> <option value="先生" selected>先生</option> <option value="女士">女士</option> </select></td> </tr> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"> 电话:</td> <td><input name="data_areacode" id="data_areacode" type="text" size="10"> - <input name="data_phone" id="data_areacode" type="text" size="20"></td> </tr> <tr> <td align="right"></td> <td bgcolor="#C6EFCF" class="l18"> 手机:</td> <td><input name="data_mobile" id="data_areacode" type="text" size="30"></td> </tr> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"><span class="e18"> Email</span>:</td> <td><input name="data_email" id="data_areacode" type="text" size="30"></td> </tr> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"> 所在地区:</td> <td> <select name="data_area" id="data_areacode"> <option value="北京" selected>北京</option> <option value="上海">上海 </option> <option value="天津">天津 </option> <option value="重庆">重庆 </option> <option value="黑龙江">黑龙江 </option> <option value="吉林">吉林 </option> <option value="辽宁">辽宁 </option> <option value="河北">河北 </option> <option value="山东">山东 </option> <option value="山西">山西 </option> <option value="河南">河南 </option> <option value="陕西">陕西 </option> <option value="青海">青海 </option> <option value="宁夏">宁夏 </option> <option value="西藏">西藏 </option> <option value="新疆">新疆 </option> <option value="内蒙古">内蒙古 </option> <option value="四川">四川 </option> <option value="云南">云南 </option> <option value="广东">广东 </option> <option value="广西">广西 </option> <option value="海南">海南 </option> <option value="湖南">湖南 </option> <option value="湖北">湖北 </option> <option value="江西">江西 </option> <option value="安徽">安徽 </option> <option value="江苏">江苏 </option> <option value="浙江">浙江 </option> <option value="福建">福建 </option> <option value="甘肃">甘肃 </option> <option value="贵州">贵州</option> <option value="海外地区">海外地区</option> </select> <input name="data_region" id="data_areacode" type="text" size="15"> 市/区</td> </tr> <tr> <td align="right"> </td> <td bgcolor="#C6EFCF" class="l18"> 通讯地址:</td> <td><input name="data_address" id="data_address" type="text" size="30"></td> </tr> <tr> <td align="right"> </td> <td bgcolor="#C6EFCF" class="l18"> 邮政编码:</td> <td><input name="data_postcode" id="data_postcode" type="text" size="30"></td> </tr> <tr> <td align="right"><font color="#f74d00">*</font></td> <td bgcolor="#C6EFCF" class="l18"> 留言类型:</td> <td> <select name="data_type" id="data_type"> <option value="咨询" selected>咨询</option> <option value="投诉">投诉</option> <option value="意见或建议">意见或建议</option> <option value="其它">其它</option> </select> </td> </tr> <tr> <td align="right" valign="top"><font color="#f74d00">*</font></td> <td valign="top" bgcolor="#C6EFCF" class="l18"> 留言内容:</td> <td><textarea name="data_content" id="data_content" cols="40" rows="5"></textarea></td> </tr> </table> <table width="520" border="0" cellspacing="1" cellpadding="1"> <tr> <td class="l18"><font color="#f84c02">您是否需要获得公司的新品信息或市场营销活动信息?</font></td> </tr> <tr> <td> </td> <td class="l18"><input type="radio" name="data_sendmail" id="data_sendmail" value="y" checked> 请通过电子邮件发送给我新品信息或市场营销活动信息</td> </tr> <tr> <td> </td> <td class="l18"><input type="radio" name="data_sendmail" id="data_sendmail" value="n"> 请不要使用该资料向我发送新品信息或市场营销活动信息</td> </tr> </table> <br> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="201" bgcolor="#e5e5e5"> </td> <td width="89"> <input name="data_submit" id="data_submit" type="submit" value="提交" width="89" height="28" border="0" onclick="return checkform();"></td> <td width="95"> <input name="data_clean" id="data_clean" width="95" height="28" border="0" type="reset" value="重填" onclick="document.form1.reset();return false;"></td> <td bgcolor="#e5e5e5"> </td> </tr> </table></td> <td width="1" bgcolor="#B5B5B5"><img src="0.gif" width="1" height="1"></td> </tr> </table>
</form>
表单效果示例: