CMSware外部投稿

来自站长百科
跳转至: 导航、​ 搜索

导航:返回上一页

外部投稿功能允许匿名用户通过该接口向网站允许投稿的栏目投稿。一个栏目是否允许投稿我们已在该栏目的结点设置-稿件工作流套用设定过。设定为投稿即发布时提交以后不会有返回值,即返回为空白页。

界面示例:

Cmsware135.png

说明

(1)前台接口

{PUBLISH_URL}/contribution.php?参数1=X&参数2=Y&参数3=Z

可用参数:

  1. TableID:内容模型ID,用于定位投稿录入界面模版(新闻投稿、软件下载投稿的录入界面都是不同的)
  2. TargetNodeID:投稿目标结点ID
  3. Tpl:指定投稿所用的模版名称,模版名称需要以“.html”做后缀。比如现在使用{templates}/plugins/contribution 下的test.html模版,参数就是Tpl=test.html,当然,系统支持参数中省略掉.html类型的模版的后缀名(其它类型的模版文件不可省略),即Tpl=test.html可以这样写:Tpl=test
  4. 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>

表单效果示例:

Cmsware136.jpg


参考来源[ ]