Cómo: Personalizar la página principal móvil mediante redireccionamiento
De forma predeterminada, Windows SharePoint Services 3.0 utiliza un mecanismo de redirección BI-Level para sitios web. La página principal móvil tiene una dirección URL corta con una carpeta "m" agregada al final de la dirección URL normal (por ejemplo, http(s)://Server/sites/Site/m/
) que redirige la solicitud a la página default.aspx
móvil. La página default.aspx, a continuación, redirige al usuario a la página principal real, de acuerdo con en el tipo de definición del sitio actual, utilizando la siguiente secuencia:
El único contenido de default.aspx es un control que indica al motor en tiempo de ejecución que utilice una RenderingTemplate denominada "MobileHomePageRedirect".
El motor en tiempo de ejecución busca todos los archivos *.ascx en unidad_local
:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES
para una RenderingTemplate con este nombre. Encuentra una en el archivoMobileDefaultTemplates.ascx
.La propiedad Template del control MobileHomePageRedirect apunta el motor en tiempo de ejecución a un objeto de la clase SPMobileWebUrlRedirect.
El objeto SPMobileWebUrlRedirect crea el nombre de otra RenderingTemplate mediante el modelo **Mobile_**SiteTypeID _HomePage_Redirect, donde SiteTypeID es el nombre de una definición de sitio que se suministra con Windows SharePoint Services, como STS, o el número de identificador de una definición de sitio personalizado, como 10001. (Para obtener más información acerca de las redirecciones web móviles, consulte la sección "Comentarios" en el tema SPMobileWebUrlRedirect.)
El motor en tiempo de ejecución busca todos los archivos *.ascx en ...
\12\TEMPLATE\CONTROLTEMPLATES
para esta segunda RenderingTemplate.Si SiteTypeID es BLOG, entonces, el motor en tiempo de ejecución encontrará la Mobile_BLOG_HomePage_RedirectRenderingTemplate en
MobileDefaultTemplates.ascx
. La última propiedad de control Template apunta el motor en tiempo de ejecución a un objeto de la clase SPMobileUrlRedirection cuya propiedad PageFileName especifica quebloghome.aspx
es la página principal.Si SiteTypeID no es BLOG y no se han creado archivos .ascx personalizados, entonces el motor en tiempo de ejecución utilizará la Mobile_Default_HomePage_RedirectRenderingTemplate en
MobileDefaultTemplates.ascx
. La última propiedad de control Template apunta el motor en tiempo de ejecución al objeto de la clase SPMobileUrlRedirection cuya propiedad PageFileName especifica quembllists.aspx
es la página principal.
Puede crear un control personalizado que redirija a los usuarios a una página principal móvil alternativa.
Procedimientos
Resumen del proceso para personalizar la página principal móvil a través de redireccionamiento
Cree una página principal móvil personalizada; por ejemplo,
MyHome.aspx
.Coloque la nueva página principal en el siguiente directorio:
unidad_local
:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\MOBILE
.Cree una plantilla de control personalizado. Por ejemplo,
MyMobileControlTemplates.ascx
(consulte el siguiente ejemplo.)Coloque la nueva plantilla de control en el siguiente directorio:
unidad_local
:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES directory
Restablezca Internet Information Services (IIS) y, a continuación, busque el sitio web para ver las personalizaciones.
Nota
Si está utilizando un emulador de dispositivos móviles en un equipo, en vez de un dispositivo móvil real, deberá eliminar archivos temporales de Internet cada vez que realice un cambio para ver la nueva versión de la página.
Ejemplo
Descripción
En el ejemplo siguiente se muestra el contenido de un archivo .ascx personalizado (por ejemplo, MyMobileControlTemplates.ascx) que define una plantilla de control que dirige el motor en tiempo de ejecución para utilizar MyHome.aspx
como la página principal siempre que un dispositivo móvil accede a un sitio web mediante la definición de sitio "MySiteType". Notas sobre el archivo personalizado:
Todas las directivas "% @" son reutilizables como la que normalmente se encuentra en todos estos archivos personalizados.
"MySiteType" puede ser:
El nombre de la definición del sitio del equipo: "STS". Las definiciones de sitio MPS, CENTRALADMIN y WIKI no son compatibles con el acceso desde dispositivos móviles. Puede obtener acceso a la definición de sitio BLOG desde dispositivos móviles, pero ya hay una Mobile_BLOG_HomePage_RedirectRenderingTemplate definida en
MobileDefaultTemplates.ascx
. No se puede modificar este archivo. Puede crear una segunda RenderingTemplate también denominada Mobile_BLOG_HomePage_Redirect en un archivo .ascx personalizado, pero corre el riesgo en ese caso de interrumpir otras soluciones personalizadas o de otro fabricante que pueden depender de la Mobile_BLOG_HomePage_Redirect existente.Nota
Se cargan los elementos de RenderingTemplate que se suministran con la carga de Windows SharePoint Services 3.0 en primer lugar, por lo que la plantilla de representación estándar se sobrescribe cuando se carga una plantilla personalizada con el mismo nombre. Si dos o más elementos de RenderingTemplate personalizados tienen el mismo nombre, el archivo cuyo nombre es alfabéticamente el último reemplazará a los demás. Si un archivo determinado tiene dos o más plantillas con el mismo nombre, no se carga ninguna de ellas.
Nota
El nombre de una definición de sitio se establece con el atributo Name de un elemento Template en un archivo
WebTemp.xml
. Para obtener más información acerca del atributo Namede una definición de sitio, consulte WebTemp.xml.El número de identificador (no el nombre) de cualquier definición de sitio personalizado que se ha creado.
Nota
El identificador de una definición de sitio se establece con el atributo ID de un elemento Template en un archivo
WebTemp.xml
. Para obtener más información acerca del atributo IDde una definición de sitio, consulte WebTemp.xml.
Importante
En la configuración de la definición de sitio, el elemento de configuración del archivo de definición de sitio Onet.xml debe tener un elemento WebFeatures que a su vez tenga el elemento de característica de redirección: <Feature ID="F41CC668-37E5-4743-B4A8-74D1DB3FD8A4" />
.
Código
<%@ Control Language="C#" %>
<%@ Assembly Name="Microsoft.SharePoint, Version=12.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=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="SPMobile" Namespace="Microsoft.SharePoint.MobileControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<SharePoint:RenderingTemplate RunAt="Server" ID="Mobile_MySiteType_HomePage_Redirect">
<Template>
<SPMobile:SPMobileUrlRedirection RunAt="Server" PageFileName="MyHome.aspx" />
</Template>
</SharePoint:RenderingTemplate>