Pergunta

Esta é provavelmente uma pergunta muito básica para muitos, mas minha experiência é como desenvolvedor do SharePoint.Fiz muito pouco com páginas wiki ou páginas de sites em geral.

Estou criando um site do SharePoint 2010 para uma pequena equipe em nossa organização e optamos por usar o modelo Site de Equipe.Passei algum tempo adicionando web parts, imagens e texto à página inicial (SitesPages/Home.aspx) como forma de visualizar o que poderíamos fazer com o site.Tudo isso foi feito no meu ambiente de desenvolvimento.

Agora que estamos satisfeitos com a versão de desenvolvimento da página, existe alguma maneira de exportá-la e adicioná-la ao nosso projeto do Visual Studio para que possa eventualmente ser reimplantada na produção?Essa é uma boa abordagem ou deveríamos apenas recriar a página manualmente na produção?

Meu primeiro pensamento foi que poderíamos exportar a página do SPD e implantá-la por meio de um recurso de módulo, mas desde então aprendi que o controle EmbeddedFormField na página wiki torna isso impossível.

Eu também tentei esta abordagem: http://www.sharemuch.com/2012/02/20/how-to-automatically-provision-sharepoint-2010-wiki-pages-content/.A página resultante não renderiza corretamente as web parts (as web parts não estão lá, apenas algum texto).Também recebo "A página atual foi personalizada a partir de seu modelo.Mensagem "Reverter para modelo" e não consigo fazê-la desaparecer, mesmo se eu clicar em "Reverter para modelo".

Meu módulo fica assim:

<Module Name="OneCallPages" Url="SitePages" SetupPath="FEATURES\MyProject.SharePoint_SiteAssetsFeature\MyProjectAssets\SitePages" List="119">
  <File Path="Welcome.aspx" Url="Welcome.aspx" Type="GhostableInLibrary">
    <Property
      Name="WikiField"
      Type="string"
      Value="..."/>
   </File>
</Module>
Foi útil?

Solução 2

Muito obrigado ao rjcup3 pela ajuda.Acabei usando a abordagem descrita aqui: http://sharepointstruggle.blogspot.com/2011/10/programmaticamente-provisioning-wiki.html.

Basicamente, envolve a criação de um arquivo XML com o conteúdo da página wiki e, em seguida, a exportação de cada uma das web parts na página do SPD e a referência do conteúdo do arquivo .webpart (.dwp) resultante do XML.Em seguida, uma classe personalizada cuida da criação da página wiki programaticamente e da importação das web parts.

Outras dicas

Você já tentou salvar o site como modelo e exportar o .wsp?Em seguida, você poderá fazer upload do .wsp para o catálogo de soluções no ambiente de destino e usá-lo como modelo de site para implantar o layout de página.

Para salvar o site como modelo, vá para Configurações do site > Salvar site como modelo.Fácil assim.

O .wsp será armazenado no catálogo de soluções que pode ser acessado em:

http://[path to site collection]/_catalogs/solutions/

Instruções passo a passo podem ser encontradas aqui.

Ao criar ou copiar páginas wiki, certifique-se de adicionar a propriedade "wikiContent", bem como as web parts.Defina o wikicontent com:

Item[SPBuiltInFieldId.WikiField] = wikiContent;
Item.Update();

Adicione webparts com o gerenciador de web parts (este exemplo copia web parts de uma página para outra):

var wpManagerTemplate = webTemplate.GetLimitedWebPartManager(item.Url, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
var wpManagerNew = web.GetLimitedWebPartManager(newFile.Item.Url, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);

 var webParts = wpManagerTemplate.WebParts;
 foreach (WebPart webpart in webParts)
 {
     wpManagerNew.AddWebPart(webpart, "wpz", webpart.ZoneIndex);
 }

Veja também:https://sharepointkaos.wordpress.com/2015/08/07/copy-page-from-one-wiki-library-to-another/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top