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.

  1. <PropertyDefs>  
  2.   <PropertyDef Name="Path" DataType="text" DisplayName="dirección URL"/>  
  3.   <PropertyDef Name="Size" DataType="integer" DisplayName="Tamaño"/>  
  4.   <PropertyDef Name="Write" DataType="datetime" DisplayName="Fecha de la última modificación"/>  
  5.   <PropertyDef Name="FileName" DataType="text" DisplayName="nombre"/>  
  6.   <PropertyDef Name="Description" DataType="text" DisplayName="descripción"/>  
  7.   <PropertyDef Name="Title" DataType="text" DisplayName="Título"/>  
  8.   <PropertyDef Name="Author" DataType="text" DisplayName="autor"/>  
  9.   <PropertyDef Name="DocSubject" DataType="text" DisplayName="tema"/>  
  10.   <PropertyDef Name="DocKeywords" DataType="text" DisplayName="palabras clave"/>  
  11.   <PropertyDef Name="DocComments" DataType="text" DisplayName="comentarios"/>  
  12.   <PropertyDef Name="Manager" DataType="text" DisplayName="jefe"/>  
  13.   <PropertyDef Name="Company" DataType="text" DisplayName="compañía"/>  
  14.   <PropertyDef Name="Created" DataType="datetime" DisplayName="fecha de creación"/>  
  15.   <PropertyDef Name="CreatedBy" DataType="text" DisplayName="creado por"/>  
  16.   <PropertyDef Name="ModifiedBy" DataType="text" DisplayName="modificado por última vez por"/>  
  17.   <PropertyDef Name="TipoResolucion" DataType="text" DisplayName="Tipo de resolución"/>  
  18. </PropertyDefs>  

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

  1. <ResultTypes>  
  2.   <ResultType DisplayName="Todos los resultados" Name="default">  
  3.     <Query/>  
  4.     <PropertyRef Name="Author" />  
  5.     <PropertyRef Name="Description" />  
  6.     <PropertyRef Name="FileName" />  
  7.     <PropertyRef Name="Size" />  
  8.     <PropertyRef Name="Path" />  
  9.     <PropertyRef Name="Created" />  
  10.     <PropertyRef Name="Write" />  
  11.     <PropertyRef Name="CreatedBy" />  
  12.     <PropertyRef Name="ModifiedBy" />  
  13.   </ResultType>  
  14.   <ResultType DisplayName="Documentos" Name="documents">  
  15.     <Query>IsDocument=1</Query>  
  16.     <PropertyRef Name="Author" />  
  17.     <PropertyRef Name="DocComments"/>  
  18.     <PropertyRef Name="Description" />  
  19.     <PropertyRef Name="DocKeywords"/>  
  20.     <PropertyRef Name="FileName" />  
  21.     <PropertyRef Name="Size" />  
  22.     <PropertyRef Name="DocSubject"/>  
  23.     <PropertyRef Name="Path" />  
  24.     <PropertyRef Name="Created" />  
  25.     <PropertyRef Name="Write" />  
  26.     <PropertyRef Name="CreatedBy" />  
  27.     <PropertyRef Name="ModifiedBy" />  
  28.     <PropertyRef Name="Title"/>  
  29.     <PropertyRef Name="Manager" />  
  30.     <PropertyRef Name="Company"/>  
  31.   </ResultType>  
  32.   <ResultType DisplayName="Documentos de Word" Name="worddocuments">  
  33.     <Query>FileExtension='doc' Or FileExtension='docx' Or FileExtension='dot'</Query>  
  34.     <PropertyRef Name="Author" />  
  35.     <PropertyRef Name="DocComments"/>  
  36.     <PropertyRef Name="Description" />  
  37.     <PropertyRef Name="DocKeywords"/>  
  38.     <PropertyRef Name="FileName" />  
  39.     <PropertyRef Name="Size" />  
  40.     <PropertyRef Name="DocSubject"/>  
  41.     <PropertyRef Name="Path" />  
  42.     <PropertyRef Name="Created" />  
  43.     <PropertyRef Name="Write" />  
  44.     <PropertyRef Name="CreatedBy" />  
  45.     <PropertyRef Name="ModifiedBy" />  
  46.     <PropertyRef Name="Title"/>  
  47.     <PropertyRef Name="Manager" />  
  48.     <PropertyRef Name="Company"/>  
  49.   </ResultType>  
  50.   <ResultType DisplayName="Documentos de Excel" Name="exceldocuments">  
  51.     <Query>FileExtension='xls' Or FileExtension='xlsx' Or FileExtension='xlt'</Query>  
  52.     <PropertyRef Name="Author" />  
  53.     <PropertyRef Name="DocComments"/>  
  54.     <PropertyRef Name="Description" />  
  55.     <PropertyRef Name="DocKeywords"/>  
  56.     <PropertyRef Name="FileName" />  
  57.     <PropertyRef Name="Size" />  
  58.     <PropertyRef Name="DocSubject"/>  
  59.     <PropertyRef Name="Path" />  
  60.     <PropertyRef Name="Created" />  
  61.     <PropertyRef Name="Write" />  
  62.     <PropertyRef Name="CreatedBy" />  
  63.     <PropertyRef Name="ModifiedBy" />  
  64.     <PropertyRef Name="Title"/>  
  65.     <PropertyRef Name="Manager" />  
  66.     <PropertyRef Name="Company"/>  
  67.   </ResultType>  
  68.   <ResultType DisplayName="Presentaciones" Name="presentations">  
  69.     <Query>FileExtension='ppt'</Query>  
  70.     <PropertyRef Name="Author" />  
  71.     <PropertyRef Name="DocComments"/>  
  72.     <PropertyRef Name="Description" />  
  73.     <PropertyRef Name="DocKeywords"/>  
  74.     <PropertyRef Name="FileName" />  
  75.     <PropertyRef Name="Size" />  
  76.     <PropertyRef Name="DocSubject"/>  
  77.     <PropertyRef Name="Path" />  
  78.     <PropertyRef Name="Created" />  
  79.     <PropertyRef Name="Write" />  
  80.     <PropertyRef Name="CreatedBy" />  
  81.     <PropertyRef Name="ModifiedBy" />  
  82.     <PropertyRef Name="Title"/>  
  83.     <PropertyRef Name="Manager" />  
  84.     <PropertyRef Name="Company"/>  
  85.   </ResultType>  
  86.   <ResultType DisplayName="Mi lista" Name="MiLista">  
  87.     <Query>"scope"='MiAmbito'</Query>  
  88.     <PropertyRef Name="DocSubject"/>  
  89.     <PropertyRef Name="Path" />  
  90.     <PropertyRef Name="Created" />  
  91.     <PropertyRef Name="CreatedBy" />  
  92.     <PropertyRef Name="ModifiedBy" />  
  93.     <PropertyRef Name="Title"/>  
  94.     <PropertyRef Name="TextoLista"/>  
  95.   </ResultType>  
  96. </ResultTypes>  

Aceptamos, aceptamos publicamos y probamos.

A mi me ha funcionado ¿y a ti?

2 comentarios: