oct 11
24

En un cliente me han pedido activar en librerias de documentos, la opcion “Permitir clasificación de elementos de esta lista” o tambien conocido funcionalidad de rating través de código (ya que hay que hacerlo masivamente en unas decenas de colecciones de sitio).
He estado revisando los metodos/propiedades del objeto SPList pero no veo nada que me pueda valer… así que investigando un poco mas, he conseguido implementar el siguiente código:
private void EnableRating(SPList list)
{
SPFieldCollection listfields = list.Fields;
SPFieldCollection availfields = list.ParentWeb.AvailableFields;
if (!listfields.Contains(FieldId.AverageRatings))
{
SPField field = availfields[FieldId.AverageRatings];
list.Fields.AddFieldAsXml(field.SchemaXmlWithResourceTokens, true,SPAddFieldOptions.AddFieldToDefaultView | SPAddFieldOptions.AddFieldInternalNameHint | SPAddFieldOptions.AddToAllContentTypes);
}
if (!listfields.Contains(FieldId.RatingsCount) && availfields.Contains(FieldId.RatingsCount))
{
SPField field2 = availfields[FieldId.RatingsCount];
list.Fields.AddFieldAsXml(field2.SchemaXmlWithResourceTokens, false,SPAddFieldOptions.AddFieldInternalNameHint | SPAddFieldOptions.AddToAllContentTypes);
}
list.Update();
}
[Acerca de mi...]
[Facebook]
[Google+]
[LinkedIn]
[Tweeter]

Bing Webmaster
PowerShell Scripts for SharePoint