SocialCommentControl - html5 bug

by Marcel Medina20. janeiro 2014 04:30

Oi pessoal,

Bom estar de volta falando sobre minhas experiências com SharePoint 2013. Já faz um tempinho desde meu último post, dessa vez estou postando sobre um fix para fazer o controle SocialCommentControl funcionar com Html5.

No SP2013 este controle foi descontinuado (deprecated), o que explica o porquê de nada ter sido feito ao controle. Ao adicioná-lo a uma page layout o markup quebra.

Nesse post estou falando desse controle, mas se você está usando SocialCommentWebpart o comportamento é o mesmo, pois ele empacota o controle com propriedades da webpart.

Googling não ajudou muito, então decidi fazer engenharia reversa dos assemblies SharePoint e ver a implementação. O problema está na html div tag. Com Html 5 self-closing tags não funcionam, e esse controle utiliza esse tipo de implementação, veja abaixo:

  1. protected override void CreateChildControls()
  2. {
  3. base.CreateChildControls();
  4. if (!this.IsUPAEnabled)
  5.     {
  6. string text = SPHttpUtility.HtmlEncode(StringResourceManager.GetString(LocStringId.SocialComment_NeedAuthenticatedMessage));
  7. text = string.Format(CultureInfo.InvariantCulture, "<span>{0}</span>", new object[]
  8.         {
  9.  text
  10.         });
  11. this.Controls.Add(new LiteralControl(text));
  12. return;
  13.     }
  14. this.Controls.Add(new LiteralControl("<div class=\"ms-socialCommentContents\" id=\"" + this.RootElementId + "\">"));
  15. if (this.IsShowNewArea)
  16.     {
  17. this.RenderNewArea();
  18.     }
  19. this.RenderEditArea();
  20. this.RenderErrorArea();
  21. this.RenderPagingControlContainer();
  22. this.Controls.Add(new LiteralControl("<div id=\"" + this.ClientID + "_PlaceHolder\" />"));
  23. this.Controls.Add(new LiteralControl("</div>"));
  24. }
A linha 14 mostra o problema. A tag div é self-closed, o que não funciona com html 5.

A solução para esse caso é simples. Pelo fato de não haver uma closing tag, adicionando-a o problema é eliminado.

Crie uma nova classe, faça a herança de SocialCommentControl e override o método CreateChildControls() adicionando a closing tag. Conforme exibido abaixo:

  1. public class SocialCommentHtml5Control : SocialCommentControl
  2.     {
  3. protected override void CreateChildControls()
  4.         {
  5.  base.CreateChildControls();
  6.  this.Controls.Add((Control)new LiteralControl("</div>"));
  7.         }
  8.     }

É isso. Adicione o controle a sua page layout e utilize no SP2013.

Espero que isso ajude.

[]’s,

Referência:
Microsoft Forum

Clique aqui para ler o mesmo conteúdo em Inglês.

Tags: ,

Dicas e Truques | Troubleshooting

Channel 9 Videos - TechEd New Zealand 2013

by Marcel Medina14. outubro 2013 14:36

Oi pessoal,

Se você perdeu a oportunidade de ver o TechEd 2013 na Nova Zelândia, você pode bisbilhotar no Channel 9.

 

Todas as sessões estão disponíveis aqui:

http://channel9.msdn.com/Events/TechEd/NewZealand/2013

[]'s,

Marcel

Clique aqui para ler o mesmo conteúdo em Inglês.

Tags:

Renomeando os databases do Search service application no SharePoint 2013

by Marcel Medina25. junho 2013 04:20

Oi pessoal,

Se você estiver utilizando esse artigo: http://technet.microsoft.com/pt-br/library/jj219654.aspxpara renomear search service application databases, preste atenção que a seguinte abordagem não funciona:

 
Para renomear os bancos de dados usando o SQL Server Management Studio
  1. No Management Studio, conecte-se à instância de fonte do SQL Server e expanda o nó Banco de Dados.

  2. Clique com o botão direito no banco de dados do aplicativo de serviço de Pesquisa que deseja renomear, clique em Renomear e digite o novo nome. Repita essa etapa para cada banco de dados que deseja renomear.

OBS: Isso não é correto se aplicado a todos os databases!

Essa abordagem só funciona com o AnalyticsReporting database!

Aqui está a parte crítica que não é explicada no artigo:

Se você quiser renomear os databases Crawl e Links, faça o backup de cada um deles e então faça o restore com os novos databases renomeados.

Então prossiga com o artigo. Preste atenção que existem erros de digitação com os trechos de código fornecidos, conforme já mencionado aqui.

Espero que isso ajude,

[]'s,

Marcel Medina

Clique aqui para ler o mesmo conteúdo em Inglês.

Tags:

Dicas e Truques | Notas Rápidas | Troubleshooting

Perfil



Marcel Medina é especialista em desenvolvimento .NET/SharePoint.

Atua como Consultor e Microsoft Trainer nas tecnologias citadas.

Possui 12 anos de experiência no mercado de TI e as seguintes certificações: MCP, MCDBA, MCAD, MCSD, MCTS (incluindo WSS 3.0, MOSS 2007 & SharePoint 2010, Application Development), MCITP (SharePoint Administrator 2010), MCPD (Enterprise Application Developer 2.0/3.5 & SharePoint Developer 2010) e MCT.

Suporte esse site

Se você quiser ajudar a manter esse site disponível, por favor faça uma doação:

 

Obrigado!

 

 

 

 

Listagem Mensal


Site Meter