在BizIdea版本當(dāng)中,我們?cè)诤笈_(tái)對(duì)某個(gè)節(jié)點(diǎn)設(shè)置時(shí),啟用了對(duì)評(píng)論使用驗(yàn)證碼功能,但前臺(tái)發(fā)表評(píng)論時(shí)卻沒有出現(xiàn)驗(yàn)證碼,這個(gè)不是BUG問(wèn)題,系統(tǒng)功能其實(shí)已經(jīng)存在,只不過(guò)沒有通過(guò)標(biāo)簽調(diào)用實(shí)現(xiàn)而已,下面我們來(lái)一步步實(shí)現(xiàn)它。
---------------(以下以文章類模型并且是默認(rèn)的系統(tǒng)代碼為例進(jìn)行講解)
第一步:通過(guò)分析內(nèi)容頁(yè)模板,發(fā)現(xiàn)調(diào)用評(píng)論的代碼為
//評(píng)論相關(guān)代碼
function commentinit()
{
var x = new AjaxRequest('XML','commentform');
x.labelname = "內(nèi)容評(píng)論P(yáng)K標(biāo)簽"; // 紅色代碼表示調(diào)用了一個(gè)標(biāo)簽,名稱為“內(nèi)容評(píng)論P(yáng)K標(biāo)簽”
x.para = ['itemId=@RequestInt_id']; //紅色代碼表示這個(gè)標(biāo)簽的一個(gè)參數(shù),這個(gè)參數(shù)自動(dòng)接受當(dāng)前文章ID值
............. 其下代碼省略,因?yàn)殛P(guān)鍵代碼就是上面兩處
第二步:標(biāo)簽管理里我們打開“內(nèi)容評(píng)論P(yáng)K標(biāo)簽”,可以看到這個(gè)標(biāo)簽有個(gè)參數(shù)正是“itemId”,我們直接到最后一步,看看它有沒有調(diào)用進(jìn)一步的標(biāo)簽,我們可以很容易的看到調(diào)用的標(biāo)簽代碼
<div class="article_PK" id="indiv">
{PE.Label id="發(fā)表評(píng)論用戶信息" itemId="<xsl:value-of select="$itemId"/>" /} //這個(gè)就是嵌套調(diào)用的標(biāo)簽
</div>
第三步:標(biāo)簽管理里我們打開“發(fā)表評(píng)論用戶信息”標(biāo)簽,同樣可以看到這個(gè)標(biāo)簽有個(gè)“itemId”參數(shù),我們繼續(xù)進(jìn)行到最后一步,發(fā)現(xiàn)有三處地方調(diào)用了同一個(gè)標(biāo)簽,調(diào)用標(biāo)簽代碼如下
<xsl:when test="pe:EnableTouristsComment(NewDataSet/Table/NodeID)='true'">{PE.Label id="顯示發(fā)表評(píng)論用戶信息" itemId="<xsl:value-of select="$itemId"/>" /}</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="pe:IsLogined()='true'">{PE.Label id="顯示發(fā)表評(píng)論用戶信息" itemId="<xsl:value-of select="$itemId"/>"/}</xsl:when>
<xsl:otherwise>
<font style="color:red">該信息所屬欄目不允許游客發(fā)表評(píng)論!</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="顯示發(fā)表評(píng)論用戶信息" itemId="<xsl:value-of select="$itemId"/>"/}</xsl:when>
<xsl:otherwise>
不能顯示出驗(yàn)證碼的問(wèn)題在這個(gè)標(biāo)簽的調(diào)用里就體現(xiàn)出第一步了,為什么這么說(shuō),我們先來(lái)看看啟用驗(yàn)證碼的功能代碼是什么:
<xsl:if test="pe:GetNodeEnableValidCode($nodeid)='true'">
<img id="VcodeLogOn" title="看不清楚,筆換一個(gè)" 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>
--------關(guān)鍵功能代碼是紅色標(biāo)識(shí)出的,其中它要接受一個(gè)傳遞值(藍(lán)色代碼標(biāo)識(shí)的),這個(gè)參數(shù)就是當(dāng)前文章所屬節(jié)點(diǎn)的ID,而在對(duì)“顯示發(fā)表評(píng)論用戶信息”標(biāo)簽調(diào)用時(shí),卻缺少了這個(gè)參數(shù)的傳遞,所以我們要補(bǔ)充一下,補(bǔ)充代碼如下,“nodeid”這個(gè)就是新設(shè)置的參數(shù):
{PE.Label id="顯示發(fā)表評(píng)論用戶信息" itemId="<xsl:value-of select="$itemId"/>" nodeid="<xsl:value-of select="NewDataSet/Table/NodeID"/>" /}
第四步:標(biāo)簽里我們打開“顯示發(fā)表評(píng)論用戶信息”標(biāo)簽,在這里我們就要開始著手補(bǔ)充上面所說(shuō)的參數(shù),如圖所示
添加后,點(diǎn)下一步,插入紅色代碼:
<?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"/> //先這義這個(gè)參數(shù),這樣才能在代碼里引用這個(gè)參數(shù)
<xsl:template match="/">
-----------------------
在合適的地方加上前面所說(shuō)的調(diào)用驗(yàn)證碼功能的代碼,比如我們這里是加在這里:
<div class="PK_indiv_r">
<textarea wrap="off" id="content">
</textarea>
<br />
<xsl:if test="pe:GetNodeEnableValidCode($nodeId)='true'">驗(yàn)證碼:
<img id="VcodeLogOn" title="看不清楚,換一個(gè)" 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="發(fā)表評(píng)論" onClick="addcomment()" />
<xsl:if test="pe:IsLogined()='true'">
<input type="checkbox" id="open" checked="true" onClick="setprivate()" />公開
</xsl:if>
添加好后,我們保存標(biāo)簽,現(xiàn)在我們可以看看前臺(tái)效果:
|
新聞熱點(diǎn)
疑難解答
圖片精選