El monstruito no soy yo, es el SharePoint

El Blog de Luis Mañez, dedicado a tecnologías MS, principalmente SharePoint y Office 365

August 2010 - Artículos

Menú de selección de idiomas en SharePoint 2010

Si estáis trabajando con sites multi-lenguaje, seguramente querréis disponer de un menú con los distintos idiomas en los que se ofrece el site. Si además, esto es algo que ya dominabais en MOSS 2007, seguramente habréis intentado incluir en vuestra página (seguramente en la Master) el control: VariationsLabelMenu.ascx, que se encuentra en la carpeta:

\<Program Files>\Common Files\Microsoft Shared Debug\Web Server Extensions\14\Template\ControlTemplates

Si lo hacéis, veréis que el listado deseado no aparece por ningún sitio, esto es porque este control trae alguna novedad en la versión 2010. Para empezar, en la versión del 2007, el archivo VariationsLableMenu.ascx, tenía un código similar al siguiente:

   1: <PublishingWebControls:VariationDataSource id="LabelMenuDataSource"
   2: LabelMenuConfiguration="1" Filter="" runat="server"/> 
   3:  
   4: <PublishingWebControls:VariationsLabelEcbMenu id ="varlabelmenu1"
   5: DataSourceID="LabelMenuDataSource" DisplayText="Menu" IsCallbackMode="true"
   6: runat="server"/>

 

Sin embargo, en la versión 2010, únicamente define el control “VariationDataSource”, de ahí que al agregarlo en la página no aparezca nada.

El control “VariationsLabelEcbMenu” se ha quedado obsoleto, parece ser que por problemas de rendimiento: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.webcontrols.variationslabelecbmenu.aspx

Si queremos sacar el listado de variantes, tenemos que tratar directamente contra el DataSource. En este caso hemos utilizado un DataList:

   1: <asp:DataList id="DataList1" Font-Size="8pt" RepeatDirection="Horizontal"
   2:                 runat="server" DataSourceID="LabelMenuDataSource" ShowHeader="False"
   3:                 ShowFooter="False" Font-Bold="True">
   4:     <ItemTemplate>
   5:         <a href="<%# DataBinder.Eval(Container.DataItem, "NavigateUrl") %>">
   6:             <%
   1: # DataBinder.Eval(Container.DataItem, "DisplayText") 
%>
   7:         </a>
   8:     </ItemTemplate>
   9:     <SeparatorTemplate> | </SeparatorTemplate> 
  10: </asp:DataList>

 

Ahora bien, metemos ese código directamente en el fichero “VariationsLabelMenu.ascx” ??? Pues yo prefiero crear un ascx personalizado y, o bien lo agrego directamente a la master, o bien hago uso del SharePoint:DelegateControl que viene definido para ese control:

   1: <SharePoint:DelegateControl runat="server" ControlId="VariationsFlagControl" />

La definición del ControlId, la podemos encontrar en el fichero: VariationsFlagControl.xml, que está en:

\<Program Files>\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES\Publishing\VariationsFlagControl.xml

y que tiene el siguiente contenido:

   1: <!-- _lcid="1033" _version="14.0.4750" _dal="1" -->
   2: <!-- _LocalBinding -->
   3: <Elements
   4:     xmlns="http://schemas.microsoft.com/sharepoint/">
   5:     <Control 
   6:         Sequence="50"
   7:         Id="GlobalSiteLink0"
   8:         ControlSrc="~/_controltemplates/VariationsLabelMenu.ascx">
   9:     </Control>
  10:     <Control 
  11:         Sequence="50"
  12:         Id="VariationsFlagControl"
  13:         ControlSrc="~/_controltemplates/VariationsLabelMenu.ascx">
  14:     </Control>
  15: </Elements>

Para apuntarlo a nuestro nuevo ascx, basta con cambiar al ControlSrc del Id=VariationsFlagControl.

Siguiendo cualquiera de los 2 mecanismos, lo que obtenemos finalmente es nuestro menú de los idiomas (variantes) disponibles, que al pintarse desde un Repeater o un DataList, podemos personalizarlos como queramos!

image

Para acabar, cuando se implementa un portal multi-lingüe, siempre aparece la pregunta de cómo debe comportarse cuando el usuario cambia de idioma. Debe ir a la home de ese idioma? debe cambiar el idioma pero manteniendo la página en la que estábamos?… pues bien, podemos lograr cualquiera de las 2 cosas con tan sólo cambiar la propiedad “LabelMenuConfiguration” del control VariationDataSource. Los valores disponibles y su funcionamiento lo tenéis en el siguiente enlace: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.webcontrols.variationdatasource.labelmenuconfiguration.aspx

Os dejo algunas de referencias que me han sido de ayuda para entender este tema:

Para acabar, quiero agradecer la ayuda de Juan Carlos González y de mi compañero Paco Martí.

Espero que os sea de utilidad.

Saludosss!

Tip: Desactivar warning del complemento “Name ActiveX control” en Sharepoint 2010

Hola a todos,

En esta ocasión os cuento otro tip para evitar el incómodo mensaje del “Name ActiveX Control”

image

Este complemento es el que permite que, junto a los nombres de los integrantes, salga la información de presencia en linea (si está conectado al MSN por ejemplo) y las posibles acciones relacionadas a realizar

image

Si estás en un sitio de publicación con acceso anónimo, no tiene mucho sentido utilizar esa funcionalidad. Para desactivarlo en MOSS 2007, había que hacer algunas “ñapas” con javascript, como se indica en estos artículos:

http://weblogs.asp.net/sreejukg/archive/2010/04/01/disable-the-activex-warning-in-sharepoint-2007-sites.aspx
http://support.microsoft.com/kb/931509

En Sharepoint 2010, la cosa es sencillísima:

1) Desde la administración central de Sharepoint, seleccionamos la aplicación web y desde la Ribbon, elegimos “Configuración general”:

image

2) Desactivamos la opción “Habilitar acciones adicionales y Estado de conexión para los integrantes”:

image

Y hasta aquí este pequeño tip, espero que le sirva a alguien.

Un saludo!!

Posted: 15/8/2010 12:02 por Luis Mañez | con no comments
Archivado en: ,
TIP: Guía de instalación y configuración de una máquina virtual para desarrollo de Sharepoint 2010

Hola a todos!!

Tengo la suerte de estar trabajando en un proyecto WCM en Sharepoint 2010, así que espero poder contaros cosas interesantes sobre el desarrollo.

De momento, dado los problemas que he tenido para montar en entorno de desarrollo, en concreto con el servicio del User profile (necesario para todo el tema de los metadatos administrados), os dejo un pequeño tip para conseguir ese entorno óptimo.

Se trata de una guía gratuita que ha creado la empresa de Andrew Connell (Critical Path Training). Para descargártelo, tan sólo hay que darse de alta como miembro (totalmente gratuito). Los pasos a seguir, están en:

http://www.andrewconnell.com/blog/archive/2010/05/12/now-available-create-your-own-sharepoint-server-2010-rtm-virtual.aspx

La guía es un PDF de 71 páginas, donde explica paso a paso como montar ese entorno, desde la configuración del Hyper-V, hasta la creación de la aplicación web en Sharepoint 2010, pasando por el Windows Server 2008 y SQL Server. Vamos, pasito a pasito y con muchos pantallazos para no perdernos.

Para acabar, comentaros que si queréis usar VM-Ware (como ha sido mi caso), la guía es igual de válida, y sólo hay que saltarse la parte del Hyper-V.

Espero que os sirva.

Saludos!!

Posted: 12/8/2010 11:19 por Luis Mañez | con no comments
Archivado en: ,