¿Cómo cambiar dinámicamente la página PageLayout y MasterPage de publicación de SharePoint?

Para mejorar la experiencia de edición y visualización de las páginas de publicación WCM de SharePoint, me gustaría poder cambiar a un conjunto especial de Masterpage / PageLayout cuando esté en modo de edición.

Así que en / _catalogs / masterpage quiero tener:

MyMasterpage.master - página maestra para el modo de visualización MyMasterpage-edit.master - página maestra para el modo de edición, solo use si está disponible MyPageLayout.aspx - diseño de página para el modo de visualización MyPageLayout-edit.aspx - diseño de página para el modo de edición, solo use si está disponible

Cuando creo una nueva página de publicación en la biblioteca de Páginas, selecciono el diseño de página MyPageLayout.

Al renderizar la página que me gustaría detectar si estoy en el modo Editar de pantalla, tal como lo hace el control del servidor. Este control ejecuta el siguiente código para determinar el modo de representación:

private void calculateShouldRender()
{
    SPControlMode contextualFormModeFromPostedForm = ConsoleUtilities.GetContextualFormModeFromPostedForm();
    if ((SPControlMode.Display == contextualFormModeFromPostedForm) && (PageDisplayMode.Display == this.PageDisplayMode))
    {
        this.shouldRender = true;
    }
    else if ((SPControlMode.Edit == contextualFormModeFromPostedForm) && (PageDisplayMode.Edit == this.PageDisplayMode))
    {
        this.shouldRender = true;
    }
    else
    {
        this.shouldRender = false;
    }
    this.Visible = this.shouldRender;
}

Si el modo de renderizado es Editar, quiero cambiar a la página MyMasterpage-edit.master materpage y a MyPageLayout-edit.aspx pagelayout.

Podría hacer un gran cambio en la página maestra y la distribución de página controlada por los controles del servidor, pero me gustaría dividir las responsabilidades. Un analista de SharePoint puede crear páginas de modo de edición óptimas, y un desarrollador front-end puede crear páginas de modo de visualización limpias y hermosas sin todo el desorden de edición.

¿Alguna idea sobre cómo lograr esto? El cambio de página maestra no parece ser el problema, una vez escribí unentrada en el blo en este. Lo difícil parece el cambio del diseño de la página.

Respuestas a la pregunta(12)

Su respuesta a la pregunta