zoukankan      html  css  js  c++  java
  • How to add custom field to Moss search results?

    Want to add a rating field to MOSS search results? Here's how!
    Author: forest rain marcia
    Want to add a rating field to MOSS search results? Here's How!
    By Shai Petel, VP R&D,
    KWizCom Corporation
     
    Summary
    By popular demand I have decided to write a brief "How to" guide, explaining how to add custom fields, specifically a KWizCom Rating field, to the MOSS search results page.
     
    In this article we will focus on how to add the custom field to your MOSS search results page but it is important to note that many more things can be achieved using simple XSL editing, for example adding sorting or grouping by special fields.

    Now to our task – adding a KWizCom Rating field to your MOSS search results page:

    This task has to main steps:
    Step 1: Add the Rating field to the search Index Engine
    Step 2: Customizing the search results page

    This guide assumes you have installed KWizCom's Rating Field Type and created a field in a list named: “Rate” of type “Rating”.  If you have yet to do so please complete these requirements before you continue.
     
    Step 1: Add the Rating field to the search Index Engine
    1. Open SharePoint Central Administration
    2. Browse to your Shared Services Provider (SSP)
    3. At the SSP home page, click “Search Settings”
    4. Go to “Metadata Property Mappings” link
    5. Click “New Managed Property”
    6. Set property name to “Rating”, Type = “Decimal”
    7. Select “Include values from a single crawled property based on the order specified”
    8. Click on “Add Mapping”
    9. Search for your tags fields. If you do not see any of your tags fields – you may have to manually crawl the SharePoint content source before you can continue.
    10. If you have more than one property of type Rating – please search all of them and add them to this list.
    11. Click OK twice to confirm the new managed property.
     
    Part 2: Customizing the search results page
    12. Browse to your search site
    13. Go to the results page (or perform a simple search go get there)
    14. Click Site Actions -> Edit Page
    15. Locate the “Core Results” web part
    16. Choose to modify the web part properties
    First – we will add the Rating managed property to the results XML:
    17. Open the “Results Query Options” group, and click to edit “Selected Columns” property
    18. Add the Managed Property “Rating” to the Column Names.
    19. Next, we will have to edit the XSL for the result item template.
    20. Expand the “Data View Properties” tool part, and click “XSL Editor”
    21. Locate in the XSL the template “<xsl:template match="Result">” and update it to look like this:
    <!-- This template is called for each result -->
    <xsl:template match="Result">
    <xsl:variable name="id" select="id">
    <xsl:variable name="url" select="url">
    <span class="srch-Icon">
    <a href="{$url}" id="{concat('CSR_IMG_',$id)}" title="{$url}">
    <img align="absmiddle" src="{imageurl}" border="0" alt="{imageurl/@imageurldescription}" />
    </a>
    </span>
    <span class="srch-Title">
    <a href="{$url}" id="{concat('CSR_',$id)}" title="{$url}">
    <xsl:choose>
    <xsl:when test="hithighlightedproperties/HHTitle[. != '']">
    <xsl:call-template name="HitHighlighting">
    <xsl:with-param name="hh" select="hithighlightedproperties/HHTitle">
    </xsl:call-template>
    </xsl:when>
    <xsl:otherwise><xsl:value-of select="title"></xsl:otherwise>
    </xsl:choose>

    <xsl:if test="rating > 0">
    User Rating: <b><xsl:value-of select="rating"></b>
    </xsl:if>

    </a>
    <br/>
    </span>

    <xsl:choose>
    <xsl:when test="$IsThisListScope = 'True' and contentclass[. = 'STS_ListItem_PictureLibrary'] and picturethumbnailurl[. != '']">
    <div style="padding-top: 2px; padding-bottom: 2px;">
    <a href="{$url}" id="{concat('CSR_P',$id)}" title="{title}">
    <img src="{picturethumbnailurl}" alt="" />
    </a>
    </div>
    </xsl:when>
    </xsl:choose>
    <div class="srch-Description">
    <xsl:choose>
    <xsl:when test="hithighlightedsummary[. != '']">
    <xsl:call-template name="HitHighlighting">
    <xsl:with-param name="hh" select="hithighlightedsummary">
    </xsl:call-template>
    </xsl:when>
    <xsl:when test="description[. != '']">
    <xsl:value-of select="description">
    </xsl:when>
    </xsl:choose>
    </div >
    <p class="srch-Metadata">
    <span class="srch-URL">
    <a href="{$url}" id="{concat('CSR_U_',$id)}" title="{$url}" dir="ltr">
    <xsl:choose>
    <xsl:when test="hithighlightedproperties/HHUrl[. != '']">
    <xsl:call-template name="HitHighlighting">
    <xsl:with-param name="hh" select="hithighlightedproperties/HHUrl">
    </xsl:call-template>
    </xsl:when>
    <xsl:otherwise><xsl:value-of select="url"></xsl:otherwise>
    </xsl:choose>
    </a>
    </span>
    <xsl:call-template name="DisplaySize">
    <xsl:with-param name="size" select="size">
    </xsl:call-template>
    <xsl:call-template name="DisplayString">
    <xsl:with-param name="str" select="author">
    </xsl:call-template>
    <xsl:call-template name="DisplayString">
    <xsl:with-param name="str" select="write">
    </xsl:call-template>
    <xsl:call-template name="DisplayCollapsingStatusLink">
    <xsl:with-param name="status" select="collapsingstatus">
    <xsl:with-param name="urlEncoded" select="urlEncoded">
    <xsl:with-param name="id" select="concat('CSR_CS_',$id)">
    </xsl:call-template>
    </p>
    </xsl:template>
    22. You can only add the following to the existing XSL you already had there instead of pasting the entire tag:
    <xsl:if test="rating > 0">
    User Rating: <b><xsl:value-of select="rating"></b>
    </xsl:if>
    23. And you should get results that will resemble this:
    24. For debugging reasons, should you wish to view the results RAW XML, copy the existing XSL to notepad for backup, and use this XSL instead:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes">
    <xsl:template match="/">
    <xmp><xsl:copy-of select="*"></xmp>
    </xsl:template>
    </xsl:stylesheet>


    These steps are pretty straightforward, I sincerely hope this guide is helpful to you. Should you have any difficulty completing these steps on your own KWizCom offers this customization as a part of our remote consulting services. You are welcome to contact sales@kwizcom.com for more information.
     
    For more helpful tips and information please visit KWizCom's official blog: http://kwizcom.blogspot.com/
     
  • 相关阅读:
    关于动画的各种实现方法【转】
    关于弹出框的理念【转】
    jquery点击目标DIV以外关闭效果
    唯美诗句
    mouseover和this的巧用
    基于html5 canvas 的强大图表插件【Chart.js】
    关于百度地图API (持续跟新)
    JS的异步回调函数
    MMU内存管理单元(看书笔记)
    系统移植详细步骤
  • 原文地址:https://www.cnblogs.com/sharepointhome/p/2085763.html
Copyright © 2011-2022 走看看