修改MOSS2007内容查询部件实现自定义格式显示
很抱歉,本來是有截圖的,可以讓過程看得更清楚些,但可能由于機(jī)器的原因,圖片始終無法上傳.所以只能寫文字版了!
??? 在Office SharePoint Server 2007中的內(nèi)容查詢Web Part只支持單個列進(jìn)行顯示(默認(rèn)為標(biāo)題列),即使將列表中的列設(shè)置為富文本格式在內(nèi)容查詢Web Part中也顯示為不帶樣式的文本。下面的方法將實現(xiàn)在內(nèi)容查詢Web Part中顯示我們添加的列并使用樣式。
1.?????? 為通知列表添加自定義列
在本例中我們?yōu)橥ㄖ砑拥淖远x欄名稱為“顯示標(biāo)題”,多行文本;富文本類型。
*關(guān)鍵要點:如果自定義欄的名稱為非英文,為了避免SPField.InternalName屬性被編碼需要在創(chuàng)建時先用英文名稱代替,并須牢記該名稱,我們在后面的修改均用該英文名稱。創(chuàng)建完成后我們再將欄的名稱修改為中文,此時SPField.InternalName屬性并不會被修改,而維持原命名的英文名稱.
2.?????? 將內(nèi)容查詢WebPart導(dǎo)出并修改
在頁面中加入一個內(nèi)容查詢WebPart,將其查詢設(shè)置為我們剛才所修改的通知列表。通過其上下文菜單將其導(dǎo)出成文件。
我們用記事本打開保存到本地磁盤的.webpart文件,找到<property name="CommonViewFields" />,將其修改為:
<property name="CommonViewFields" type="string">CustomTitle,RichText;</property>其中的CustomTitle為我們上一步中添加的自定義欄的名稱(第一次輸入的英文名稱),RichText為該欄目的類型,保存該修改。
3.?????? 修改XSL文件
我們用SharePoint Designer打開網(wǎng)站(如http://moss:8000),在文件夾列表中找到\Style Library\XSL Style Sheets目錄,將會看到ItemStyle.xsl、ContentQueryMain.xsl、SummaryLinkMain.xsl三個文件,我們將會對其進(jìn)行修改
?????????????????????????????????????????????? 打開ContentQueryMain.xsl找到<xsl:template name="OuterTemplate.GetTitle">將該template定義復(fù)制,將復(fù)本的名稱更改為OuterTemplate.GetCustomTitle,相應(yīng)的修改如下:
<xsl:template name="OuterTemplate.GetCustomTitle">
??????? <xsl:param name="CustomTitle" select="@CustomTitle"/>
??????? <xsl:param name="UrlColumnName"/>
??????? <xsl:if test="string-length($CustomTitle) != 0">
??????????? <xsl:value-of select="$CustomTitle"/>
??????? </xsl:if>
??????? <xsl:if test="string-length($CustomTitle) = 0">
??????????? <xsl:if test="$UseCopyUtil = 'True'">
??????????????? <xsl:value-of select="$BlankTitle" />
??????????? </xsl:if>
??????????? <xsl:if test="$UseCopyUtil != 'True'">
??????????????? <xsl:call-template name="OuterTemplate.GetPageNameFromUrl">
??????????????????? <xsl:with-param name="UrlColumnName" select="$UrlColumnName"/>
??????????????? </xsl:call-template>
?? ?????????</xsl:if>
??????? </xsl:if>
</xsl:template>
保存修改。
??? 打開SummaryLinkMain.xsl文件找到<xsl:template name="OuterTemplate.GetTitle">將該template復(fù)制,將復(fù)本的名稱更改為GetCustomTitle,相應(yīng)的修改如下:
??? <xsl:template name="OuterTemplate.GetCustomTitle">
??????? <xsl:param name="CustomTitle" select="@CustomTitle"/>
??????? <xsl:value-of select="$CustomTitle"/>
</xsl:template>
保存修改。
?? 打開ItemStyle.xsl文件,我們需要在該文件中加入一個樣式定義
找到<xsl:template name="Default" match="*" 將這個名為Default的template復(fù)制一份,將name屬性修改為AnnouceList,match屬性修改為Row[@Style=’AnnouceList’]。并在variable中加入在上一步驟中加入的自定義欄的定義,并命名為CustomTitle(見下文示例)。
修改后的template定義為:
??????? <xsl:template name="AnnouceList" match="Row[@Style= AnnouceList]" mode="itemstyle">
??????? <xsl:variable name="SafeLinkUrl">
??????????? <xsl:call-template name="OuterTemplate.GetSafeLink">
??????????????? <xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
??????????? </xsl:call-template>
??????? </xsl:variable>
??????? <xsl:variable name="SafeImageUrl">
??????????? <xsl:call-template name="OuterTemplate.GetSafeStaticUrl">
??????????????? <xsl:with-param name="UrlColumnName" select="'ImageUrl'"/>
??????????? </xsl:call-template>
??????? </xsl:variable>
??????? <xsl:variable name="CustomTitle">
??????????? <xsl:call-template name="OuterTemplate.GetCustomTitle">
??????????????? <xsl:with-param name="Title" select="@CustomTitle"/>
??????????????? <xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
??????????? </xsl:call-template>
??????? </xsl:variable>
??????? <xsl:variable name="LinkTarget">
??????????? <xsl:if test="@OpenInNewWindow = 'True'" >_blank</xsl:if>
??????? </xsl:variable>
??????? <div id="linkitem" class="item">
??????????? <xsl:if test="string-length($SafeImageUrl) != 0">
??????????????? <div class="image-area-left">
??????????????????? <a href="{$SafeLinkUrl}" target="{$LinkTarget}">
??????????????????????? <img class="image" src="{$SafeImageUrl}" alt="{@ImageUrlAltText}" />
??????????????????? </a>
??????????????? </div>
??????????? </xsl:if>
??????? ????<div class="link-item">
??????????? <xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/>????
??????????? <table style="width:100%">
??????????? ???????? <tr>
??????????? ?????????????????? <td style="width:100%" class="itemlink-item">
??????????? ??????????????????????????? <a href="{$SafeLinkUrl}" mce_href="{$SafeLinkUrl}" target="{$LinkTarget}" title="{@LinkToolTip}">
??????????? ???????????????????????????????????? <xsl:value-of select="$CustomTitle" disable-output-escaping = "yes"/>
??????????? ??????????????????????????? </a>
??????????? ?????????????????? </td>
??????????? ???????? </tr>
??????????? </table>
???????????? </div>
??????? </div>
</xsl:template>
?保存修改。
?
4.?????? 導(dǎo)入前面步驟修改的.webPart文件打開網(wǎng)站集站點管理-》web部件,將修改的.webpart文件上傳,將該webpart名稱設(shè)置為“公告欄”.
5.?????? 將新加入的webpart重新加入頁面,修改其webpart屬性。
將項目樣式設(shè)置為我們在上一步的XSL定義中的樣式"AnnouceList"。點擊“確定”按鈕。
轉(zhuǎn)載于:https://www.cnblogs.com/liangfb/archive/2007/11/19/964475.html
總結(jié)
以上是生活随笔為你收集整理的修改MOSS2007内容查询部件实现自定义格式显示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Devops-运维效率之数据迁移自动化
- 下一篇: Delphi 7.0常用函数速查手册