Personalizando el Search Center en SharePoint 2010 – Parte 4 (Iconos según Content Type de resultados)

Dentro de los requerimientos de personalización de los resultados de búsqueda, se me presentó un escenario bastante interesante en el cual se requería mostrar un icono distinto según el content type del resultado de búsqueda. Para complicar más el escenario esta funcionalidad se debía lograr mediante FAST Search Server.

Para lograr esto se necesitan realizar los siguiente pasos:

1. Crear una nueva propiedad administrada en FAST que tenga asociada el tipo de contenido (ows_ContentType).

2. Ejecutar un Full Crawl.

3. Agregar la nueva columna en el webpart de resultados de búsqueda.

4. Modificar el XSLT de los resultados de búsqueda para modificar la sección Srch-Icon y especificar el icono correspondiente de acuerdo al Content Type del elemento.

 El primer paso consiste en la configuración de la propiedad administrada desde FAST, esto únicamente se puede lograr mediante la consola de PowerShell de FAST.

Ejecutar el siguiente comando para crearlo:

$mp = New-FASTSearchMetadataManagedProperty -Name MyContentType -Type 1

Verificar que se creo correctamente:

Get-FASTSearchMetadataManagedProperty -Name MyContentType

Obtener el atributo del content type:

$cp = Get-FASTSearchMetadataCrawledProperty -Name ows_ContentType

 Asociar al propiedad administrada con el atributo de content type:

$pm = New-FASTSearchMetadataCrawledPropertyMapping -CrawledProperty $cp -ManagedProperty $mp

 El siguiente paso es agregar nuestra nueva columna en el webpart de resultados de búsqueda. Para esto en la sección de Propiedad recuperadas copiar todo el contenido y llevarlo a un notepad u otro editor para modificarlo.

Agregar a estas columnas la siguiente columna: <Column Name=”MyContentType”/>

Finalmente en el XSLT del webpart de resultados de búsqueda identificar el DIV con clase: srch-Icon y agregar el siguiente XSLT:

 <div class=”srch-Icon” id=”{concat($currentId,’_Icon’)}”>
<xsl:choose>
      <xsl:when test=’mycontenttype=”Cartelera”‘>
           <img src=”
http://miportal/_layouts/images/SocialTagsAndNotes_24.png”  border=”0″/>
      </xsl:when>
      <xsl:otherwise>
           <img align=”absmiddle” src=”{imageurl}” border=”0″ alt=”
{imageurl/@imageurldescription}” />       
      </xsl:otherwise>
</xsl:choose>
</div>

 Guardar los cambios y hacer las pruebas.

Como se puede ver en la imagen se ha cambiado el Icono del contenido “RESTORE PROCESS” que tiene un tipo de contenido especifico.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *