Compartir a través de


Procedimiento para personalizar las páginas principales móviles

Última modificación: miércoles, 02 de febrero de 2011

Hace referencia a: SharePoint Foundation 2010

En este tema se proporciona una introducción al procedimiento básico para personalizar una página principal de Microsoft SharePoint Foundation a la que puedan acceder los dispositivos móviles. Para obtener información detallada acerca del procedimiento, vea Tutorial: Personalización de una página principal móvil. Para obtener información general acerca de cómo personalizar la vista de lista y las páginas de formulario, vea Procedimiento para personalizar las páginas de vista de lista móvil y formulario.

Como se describe detalladamente en Sistema de representación de páginas móviles, cada control de las áreas de encabezado (Title), cuerpo (Contents) y pie de página (Navigation) de una página principal móvil inicia una cadena de llamadas que en última instancia da como resultado una llamada a un objeto RenderingTemplate que representa el área correspondiente de la página móvil. Se trata casi siempre de una RenderingTemplate con un identificador segmentado. Si no se encuentra una RenderingTemplate con un nombre coincidente, se usará una plantilla predeterminada. Esto significa que se puede personalizar el encabezado, el cuerpo o el pie de página mediante la creación de una RenderingTemplate con el identificador que buscará el tiempo de ejecución.

Concretamente, el tiempo de ejecución buscará un identificador RenderingTemplate que tenga el formato siguiente:

usoDePáginaPrevisto_id.DeTipoDeSitio_HomePage_áreaDePágina

Los marcadores de posición usoDePáginaPrevisto, id.DeTipoDeSitio y áreaDePágina se definen en Identificadores segmentados de plantilla de representación. Para obtener más información acerca de las secciones de una página móvil, vea Diseño y paginación de las páginas móviles.

En usoDePáginaPrevisto, id.DeTipoDeSitio y áreaDePágina específicos, si no se encuentra una RenderingTemplate con un nombre coincidente, se usará "Default" en lugar de id.DeTipoDeSitio:

usoDePáginaPrevisto_Default_HomePage_áreaDePágina

Por ejemplo, si el tiempo de ejecución busca una RenderingTemplate con el identificador WebPartMobile_STS_HomePage_Title, no encontrará ninguna (si no se ha agregado ninguna plantilla personalizada con ese nombre). Por lo que usará WebPartMobile_Default_HomePage_Title, que existe, para representar el área de encabezado (Title) de la página principal móvil de un sitio STS.

Entonces, si deseara personalizar la representación del encabezado de la página principal móvil de un sitio STS, podría crear un elemento RenderingTemplate con el identificador WebPartMobile_STS_HomePage_Title en un archivo .ascx que se implemente en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates. No modifique los archivos MobileDefaultTemplates.ascx o GbwMobileDefaultTemplates.ascx. Para obtener más información acerca de cómo crear una plantilla de representación personalizada para una página móvil, vea el procedimiento descrito más adelante en este tema y Tutorial: Personalización de una página principal móvil.

Plantillas de representación existentes

En la siguiente lista se enumeran las RenderingTemplate para páginas principales móviles que ya existen en MobileDefaultTemplates.ascx o GbwMobileDefaultTemplates.ascx cuando se instala SharePoint Foundation.

  • Mobile_STS_HomePage_Title

  • Mobile_STS_HomePage_Contents

  • WebPartMobile_SGS_HomePage_Contents

  • WebPartMobile_STS_HomePage_Contents

Puede crear un nuevo elemento RenderingTemplate (en su propio archivo .ascx) con el mismo identificador que una de estas plantillas de representación existentes. Sin embargo, si lo hace correrá el riesgo de interrumpir otras soluciones implementadas en SharePoint Foundation que dependen del objeto RenderingTemplate original.

Nota

Las plantillas de representación que se incluyen con SharePoint Foundation se cargan antes que las plantillas personalizadas. Por lo tanto, cuando se carga una plantilla personalizada con el mismo identificador que una de las plantillas de representación existentes, se invalida la plantilla original. Si dos o más plantillas de representación personalizadas tienen el mismo identificador, la plantilla con el último nombre por orden alfabético invalida el resto. Si un archivo específico tiene dos o más plantillas de representación con el mismo identificador, ninguna de ellas se carga.

Los siguientes objetos RenderingTemplate también se definen en los archivos MobileDefaultTemplates.ascx o GbwMobileDefaultTemplates.ascx. El tiempo de ejecución los usa cuando no se ha definido un objeto RenderingTemplate para el tipo de sitio actual. (Por lo tanto, estas plantillas controlan la representación de la página principal de todas las páginas de un sitio web basado en una definición de sitio personalizada, a menos que se cree una plantilla de representación personalizada con el identificador usoDePáginaPrevisto_númeroIdDeSitioPersonalizado_HomePage_áreaDePágina). Se corre el mismo riesgo si se crea un objeto RenderingTemplate nuevo con cualquiera de estos identificadores.

  • Mobile_Default_HomePage_Title

  • Mobile_Default_HomePage_Contents

  • Mobile_Default_HomePage_Navigation

  • WebPartMobile_Default_HomePage_Title

  • WebPartMobile_Default_HomePage_Contents

  • WebPartMobile_Default_HomePage_Navigation

  • WebPartMobileDetail_Default_HomePage_Contents

  • WebPartMobileDetail_Default_HomePage_Navigation

Se pueden anidar objetos RenderingTemplate. Vea el ejemplo de la siguiente sección.

Para personalizar una sección de una página principal móvil

  1. En Microsoft Visual Studio, cree un Proyecto de SharePoint vacío. Conviértalo en una solución de granja de servidores, en lugar de una solución de espacio aislado.

  2. Agregue una Carpeta asignada de SharePoint a TEMPLATE\ControlTemplates.

  3. Haga clic con el botón secundario en la nueva carpeta y agregue un control de usuario de SharePoint. Asigne al archivo .ascx un nombre que lo distinga de los de otros proveedores de soluciones; por ejemplo, ContosoMobileRenderingTemplates.ascx. Visual Studio agrega automáticamente el archivo al manifiesto de la solución de SharePoint y lo establece para que se implemente en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates.

    SugerenciaSugerencia

    Para agregar el control de usuario, no haga clic con el botón secundario en el proyecto en el Explorador de soluciones. Cuando se agrega un control de usuario de ese modo, Visual Studio lo coloca en una subcarpeta de TEMPLATE\ControlTemplates. Si no se mueve, Visual Studio lo implementa en una subcarpeta correspondiente de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates. Las plantillas de representación móvil en las subcarpetas no se cargan.

  4. Elimine los archivos .ascx.cs y .ascx.designer.cs (o .ascx.vb y .ascx.designer.vb). No son necesarios para este proyecto.

  5. Reemplace toda la sección de directivas del archivo .ascx con el siguiente marcado:

    <%@ Register TagPrefix="GroupBoardMobile"   Namespace="Microsoft.SharePoint.Applications.GroupBoard.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Control Language="C#"   %> 
    <%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %> 
    <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="SPMobile" Namespace="Microsoft.SharePoint.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="WPMobile" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    
  6. Agregue una plantilla de representación al archivo .ascx y asígnele un identificador con el siguiente formato: usoDePáginaPrevisto_id.DeTipoDeSitio_HomePage_áreaDePágina.

    • El usoDePáginaPrevisto es Mobile, WebPartMobile o WebPartMobileDetail

    • El id.DeTipoDeSitio puede ser STS, SGS, BLOG o el número de identificación (no el nombre) de cualquier definición de sitio personalizada. (El identificador de una definición de sitio se establece con el atributo ID de un elemento Template de un archivo WebTemp.xml. Para obtener más información acerca del atributo ID de una definición de sitio, vea WebTemp.xml).

    • El áreaDePágina puede ser Title, Contents o Navigation.

  7. Seleccione Implementar solución en el menú Compilación. Se guardará automáticamente el archivo .ascx, se implementará en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates y se reciclará la aplicación web, de modo que todos los archivos .ascx en dicha carpeta se volverán a cargar.

Ejemplo

En el siguiente ejemplo de una definición RenderingTemplate se muestra cómo se pueden anidar las RenderingTemplate. En este caso, la plantilla personalizada agrega un vínculo a la página móvil de Microsoft en el pie de página y, a continuación, llama a la plantilla de representación de pie de página predeterminada para representar el resto del pie de página.

Si el dispositivo móvil no puede representar texto enriquecido, la página principal de STS móvil será mblwp.aspx y el usuario verá que el nuevo vínculo se ha agregado sobre el pie de página.

Si el dispositivo puede representar texto enriquecido, la página principal de STS móvil será mblwiki.aspx. El control del área de pie de página (Navigation) de esta página no llamará a ninguna plantilla de representación con un nombre segmentado, ni siquiera indirectamente. En concreto, no se llamará a WebPartMobile_STS_HomePage_Navigation. Por este motivo, el pie de página de mblwiki.aspx no puede personalizarse del modo descrito en este tema. Por lo tanto, la personalización descrita en este ejemplo al principio parecerá que no ha tenido ningún efecto en los dispositivos móviles capaces de representar texto enriquecido. Puede forzar al dispositivo para que use mblwp.aspx como la página principal si reemplaza (en el cuadro de dirección del explorador móvil) "wiki" en mblwiki.aspx por "wp". Las áreas de encabezado (Title) y cuerpo (Contents) de mblwiki.aspx usan las mismas plantillas de representación que las áreas correspondientes de mblwp.aspx, por lo que puede usar el procedimiento descrito en este tema para personalizar las áreas de encabezado y cuerpo, tanto en los dispositivos que pueden representar texto enriquecido como en los que no pueden.

Para obtener otro ejemplo de personalización de una página principal móvil, vea Tutorial: Personalización de una página principal móvil.

<SharePoint:RenderingTemplate ID="WebPartMobile_STS_HomePage_Navigation" RunAt="Server">
  <Template>
    <mobile:Link Text="Microsoft Mobile" href="http://mobile.microsoft.com/es-es/default.mspx" RunAt="Server" />
    <SPMobile:SPMobileComponent TemplateName="WebPartMobile_Default_HomePage_Navigation" RunAt="Server" />
  </Template>
</SharePoint:RenderingTemplate>

Vea también

Tareas

Tutorial: Personalización de una página principal móvil

Procedimiento para personalizar las páginas de vista de lista móvil y formulario

Conceptos

Diseño y paginación de las páginas móviles

Procedimiento para personalizar la página principal móvil mediante redireccionamiento

Sistema de representación de páginas móviles