Social Icons

jueves, 30 de abril de 2009

Agregar Tipo de resultado y/o Restricciones de propiedades

Uf ya se me había olvidado cómo se llamaba el blog :)

No, en realidad es que he estado liado y un poco falto de inspiración ¿Cuándo he andado yo sobrao de eso? estos últimos dos meses. ¡¡DOS MESES!!

Bueno, a lo que voy.

Modificar el webpart Cuadro de búsqueda avanzado da un poco de miedo, pero la verdad es que si nos acostumbramos a su interfaz podemos lograr cositas muy interesantes con muy poco esfuerzo.

Por ejemplo:

Tengo un ámbito creado (MiAmbito) que contiene solo los elementos de una lista y dentro de esa lista tengo un metadato que se llama TextoLista que está dado de alta en las Asignaciones de propiedades de metadatos. ¿Podría añadir yo a mi sitio de Buscador avanzado un Tipo de resultado llamado “Mi lista” y una Restricción de propiedad específica para mi metadato “TextoLista”?

Pues nada más fácil.

Primero editamos el webpart Cuadro de búsqueda avanzado y abrimos el texto que se esconde en Propiedades—> Propiedades:

image

En la ventana que se nos abre podremos ver muy mal por cierto, mejor que trabajar ahí es hacer un c&p al visual studio un xml que (entre otras cosas) define las propiedades que estarán disponibles para los tipos de resultado <PropertyDefs> y los diferentes tipos de resultado que se mostrarán en el webpart de búsqueda <ResultTypes>

Bien pues a trabajar. Añadiremos nuestra propiedad “TextoLista” dentro de PropertyDefs para poderla usar luego.

<PropertyDefs>
<PropertyDef Name="Path" DataType="text" DisplayName="dirección URL"/>
<PropertyDef Name="Size" DataType="integer" DisplayName="Tamaño"/>
<PropertyDef Name="Write" DataType="datetime" DisplayName="Fecha de la última modificación"/>
<PropertyDef Name="FileName" DataType="text" DisplayName="nombre"/>
<PropertyDef Name="Description" DataType="text" DisplayName="descripción"/>
<PropertyDef Name="Title" DataType="text" DisplayName="Título"/>
<PropertyDef Name="Author" DataType="text" DisplayName="autor"/>
<PropertyDef Name="DocSubject" DataType="text" DisplayName="tema"/>
<PropertyDef Name="DocKeywords" DataType="text" DisplayName="palabras clave"/>
<PropertyDef Name="DocComments" DataType="text" DisplayName="comentarios"/>
<PropertyDef Name="Manager" DataType="text" DisplayName="jefe"/>
<PropertyDef Name="Company" DataType="text" DisplayName="compañía"/>
<PropertyDef Name="Created" DataType="datetime" DisplayName="fecha de creación"/>
<PropertyDef Name="CreatedBy" DataType="text" DisplayName="creado por"/>
<PropertyDef Name="ModifiedBy" DataType="text" DisplayName="modificado por última vez por"/>
<PropertyDef Name="TipoResolucion" DataType="text" DisplayName="Tipo de resolución"/>
</PropertyDefs>

Y por último añadiremos un nuevo ResultType dentro de ResultTypes, así:

<ResultTypes>
<ResultType DisplayName="Todos los resultados" Name="default">
<Query/>
<PropertyRef Name="Author" />
<PropertyRef Name="Description" />
<PropertyRef Name="FileName" />
<PropertyRef Name="Size" />
<PropertyRef Name="Path" />
<PropertyRef Name="Created" />
<PropertyRef Name="Write" />
<PropertyRef Name="CreatedBy" />
<PropertyRef Name="ModifiedBy" />
</ResultType>
<ResultType DisplayName="Documentos" Name="documents">
<Query>IsDocument=1</Query>
<PropertyRef Name="Author" />
<PropertyRef Name="DocComments"/>
<PropertyRef Name="Description" />
<PropertyRef Name="DocKeywords"/>
<PropertyRef Name="FileName" />
<PropertyRef Name="Size" />
<PropertyRef Name="DocSubject"/>
<PropertyRef Name="Path" />
<PropertyRef Name="Created" />
<PropertyRef Name="Write" />
<PropertyRef Name="CreatedBy" />
<PropertyRef Name="ModifiedBy" />
<PropertyRef Name="Title"/>
<PropertyRef Name="Manager" />
<PropertyRef Name="Company"/>
</ResultType>
<ResultType DisplayName="Documentos de Word" Name="worddocuments">
<Query>FileExtension='doc' Or FileExtension='docx' Or FileExtension='dot'</Query>
<PropertyRef Name="Author" />
<PropertyRef Name="DocComments"/>
<PropertyRef Name="Description" />
<PropertyRef Name="DocKeywords"/>
<PropertyRef Name="FileName" />
<PropertyRef Name="Size" />
<PropertyRef Name="DocSubject"/>
<PropertyRef Name="Path" />
<PropertyRef Name="Created" />
<PropertyRef Name="Write" />
<PropertyRef Name="CreatedBy" />
<PropertyRef Name="ModifiedBy" />
<PropertyRef Name="Title"/>
<PropertyRef Name="Manager" />
<PropertyRef Name="Company"/>
</ResultType>
<ResultType DisplayName="Documentos de Excel" Name="exceldocuments">
<Query>FileExtension='xls' Or FileExtension='xlsx' Or FileExtension='xlt'</Query>
<PropertyRef Name="Author" />
<PropertyRef Name="DocComments"/>
<PropertyRef Name="Description" />
<PropertyRef Name="DocKeywords"/>
<PropertyRef Name="FileName" />
<PropertyRef Name="Size" />
<PropertyRef Name="DocSubject"/>
<PropertyRef Name="Path" />
<PropertyRef Name="Created" />
<PropertyRef Name="Write" />
<PropertyRef Name="CreatedBy" />
<PropertyRef Name="ModifiedBy" />
<PropertyRef Name="Title"/>
<PropertyRef Name="Manager" />
<PropertyRef Name="Company"/>
</ResultType>
<ResultType DisplayName="Presentaciones" Name="presentations">
<Query>FileExtension='ppt'</Query>
<PropertyRef Name="Author" />
<PropertyRef Name="DocComments"/>
<PropertyRef Name="Description" />
<PropertyRef Name="DocKeywords"/>
<PropertyRef Name="FileName" />
<PropertyRef Name="Size" />
<PropertyRef Name="DocSubject"/>
<PropertyRef Name="Path" />
<PropertyRef Name="Created" />
<PropertyRef Name="Write" />
<PropertyRef Name="CreatedBy" />
<PropertyRef Name="ModifiedBy" />
<PropertyRef Name="Title"/>
<PropertyRef Name="Manager" />
<PropertyRef Name="Company"/>
</ResultType>
<ResultType DisplayName="Mi lista" Name="MiLista">
<Query>"scope"='MiAmbito'</Query>
<PropertyRef Name="DocSubject"/>
<PropertyRef Name="Path" />
<PropertyRef Name="Created" />
<PropertyRef Name="CreatedBy" />
<PropertyRef Name="ModifiedBy" />
<PropertyRef Name="Title"/>
<PropertyRef Name="TextoLista"/>
</ResultType>
</ResultTypes>

Aceptamos, aceptamos publicamos y probamos.

A mi me ha funcionado ¿y a ti?

2 comentarios: