动易BI如何启用评论验证码功能_动易Cms教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

  在BizIdea版本当中,我们在后台对某个节点设置时,启用了对评论使用验证码功能,但前台发表评论时却没有出现验证码,这个不是BUG问题,系统功能其实已经存在,只不过没有通过标签调用实现而已,下面我们来一步步实现它。

---------------(以下以文章类模型并且是默认的系统代码为例进行讲解)

一步通过分析内容页模板,发现调用评论的代码为

 

//评论相关代码
function commentinit()
{
    var x = new AjaxRequest('XML','commentform');
    x.labelname = "内容评论PK标签";   // 红色代码表示调用了一个标签,名称为“内容评论PK标签”
    x.para = ['itemId=@RequestInt_id'];  //红色代码表示这个标签的一个参数,这个参数自动接受当前文章ID值
............. 其下代码省略,因为关键代码就是上面两处

 

二步:标签管理里我们打开“内容评论PK标签”,可以看到这个标签有个参数正是“itemId”,我们直接到最后一步,看看它有没有调用进一步的标签,我们可以很容易的看到调用的标签代码

 

<div class="article_PK"  id="indiv">
      {PE.Label id="发表评论用户信息" itemId="<xsl:value-of select="$itemId"/>"  /}  //这个就是嵌套调用的标签
</div>


 

三步:标签管理里我们打开“发表评论用户信息”标签,同样可以看到这个标签有个“itemId”参数,我们继续进行到最后一步,发现有三处地方调用了同一个标签,调用标签代码如下

 

<xsl:when test="pe:EnableTouristsComment(NewDataSet/Table/NodeID)='true'">{PE.Label id="显示发表评论用户信息" itemId="<xsl:value-of select="$itemId"/>"  /}</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="pe:IsLogined()='true'">{PE.Label id="显示发表评论用户信息" itemId="<xsl:value-of select="$itemId"/>"/}</xsl:when>
<xsl:otherwise>
<font style="color:red">该信息所属栏目不允许游客发表评论!</font>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="pe:UserPurview('commentcheck',NewDataSet/Table/NodeID)='true'">{PE.Label id="显示发表评论用户信息" itemId="<xsl:value-of select="$itemId"/>"/}</xsl:when>
<xsl:otherwise>

不能显示出验证码的问题在这个标签的调用里就体现出第一步了,为什么这么说,我们先来看看启用验证码的功能代码是什么:

 

<xsl:if test="pe:GetNodeEnableValidCode($nodeid)='true'">
<img id="VcodeLogOn" title="看不清楚,笔换一个" onclick="refreshValidateCodeImage(this);" src="{pe:InstallDir()}Controls/validateCodeImage.aspx" align="absmiddle" style="border:none;cursor:pointer;" /> <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
<input name="TxtValidCode" type="text" maxlength="6" value="" id="TxtValidCode" class="input1" size="12" onfocus="this.select();" /> <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;</xsl:text>
</xsl:if>

 

--------关键功能代码是红色标识出的,其中它要接受一个传递值(蓝色代码标识的),这个参数就是当前文章所属节点的ID,而在对“显示发表评论用户信息”标签调用时,却缺少了这个参数的传递,所以我们要补充一下,补充代码如下,“nodeid”这个就是新设置的参数:

 

{PE.Label id="显示发表评论用户信息" itemId="<xsl:value-of select="$itemId"/>" nodeid="<xsl:value-of select="NewDataSet/Table/NodeID"/>" /}    

 

四步标签里我们打开“显示发表评论用户信息”标签,在这里我们就要开始着手补充上面所说的参数,如图所示

 

添加后,点下一步,插入红色代码:

 

<?xml version="1.0" encoding="utf-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pe="labelproc" exclude-result-prefixes="pe">
  <xsl:output method="html" />
  <xsl:param name="nodeid"/>            //先这义这个参数,这样才能在代码里引用这个参数
  <xsl:template match="/">

-----------------------

 

在合适的地方加上前面所说的调用验证码功能的代码,比如我们这里是加在这里:

 

<div class="PK_indiv_r">
      <textarea wrap="off" id="content">
      </textarea>
      <br />
  <xsl:if test="pe:GetNodeEnableValidCode($nodeid)='true'">验证码:
<img id="VcodeLogOn" title="看不清楚,换一个" onclick="refreshValidateCodeImage(this);" src="{pe:InstallDir()}Controls/validateCodeImage.aspx" align="absmiddle" style="border:none;cursor:pointer;" /> <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
  <input name="TxtValidCode" type="text" maxlength="6" value="" id="TxtValidCode" class="input1" size="12" onfocus="this.select();" /> <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;</xsl:text>
</xsl:if>
      <input type="submit" name="BtnLogin" value="发表评论" onClick="addcomment()" />
      <xsl:if test="pe:IsLogined()='true'">
        <input type="checkbox" id="open" checked="true" onClick="setprivate()" />公开
      </xsl:if>

 

然后,还需对“发表评论用户信息”标签中有关对“显示发表评论用户信息”标签的调用都加上相应的参数,如下:
{PE.Label id="显示发表评论用户信息" itemId="<xsl:value-of select="$itemId"/>" nodeid="<xsl:value-of select="NewDataSet/TabledeID"/>" /}

 

添加好后,我们保存标签,现在我们可以看看前台效果:

 

 

附:如果改不过来的,请把“评论标签”下载覆盖到你站中的“\Template\商城模板方案\标签库\评论类”目录下,即可。 
 “评论标签”地址:http://help.powereasy.net/help/UploadFiles_4256/200904/2009040816151010.rar

查看更多 动易Cms教程  动易Cms模板

来源:模板无忧//所属分类:动易Cms教程/更新时间:2009-04-21
相关动易Cms教程