Files

137 lines
8.5 KiB
Markdown
Raw Permalink Normal View History

2026-05-06 13:35:47 -03:00
---
title: Camada Visual Social Poster
source: https://tdn.totvs.com/display/fluig/Camada+Visual+Social+Poster
path: \Plataforma Documentação técnica\Recurso de Comunidades (Social)\Componentes de Publicação\Camada Visual Social Poster.md
---
# Índice
- 1 [Arquivos básicos do widget Social Poster](#CamadaVisualSocialPoster-ArquivosbásicosdowidgetSocialPoster)
- 2 [Ação de Publicação](#CamadaVisualSocialPoster-AçãodePublicação)
- 3 [Ação de Publicação de Usuário](#CamadaVisualSocialPoster-AçãodePublicaçãodeUsuário)
- 4 [Área de publicação na Comunidade](#CamadaVisualSocialPoster-ÁreadepublicaçãonaComunidade)
- 5 [Estrutura do widget Social Poster](#CamadaVisualSocialPoster-EstruturadowidgetSocialPoster)
### Arquivos básicos do widget Social Poster
O *widget* Social Poster é baseado no *framework* de *templates* [FreeMarker](http://freemarker.org/) (.ftl). O FreeMarker é responsável pela camada de visualização, onde sobre ele é escrito todo HTML do componente. Bem como o(s) arquivo(s) de [FreeMarker](http://freemarker.org/), todos os componentes possuem arquivos próprios de CSS (.css) e JavaScript (.js).
Além desses componentes, o *widget* Social Poster utiliza um componente de *template* chamado [Mustache](http://mustache.github.io/), que é uma especificação de *templates* que não utiliza lógica, ou seja, não possui declarações com *if, for, while* etc.; toda sua construção é baseada em *tags*.
### Ação de Publicação
O Social Poster é responsável por absorver todo o conteúdo digitado pelo usuário no Campo de Publicação e enviar para a exibição de uma nova publicação na *Timeline*.
### Ação de Publicação de Usuário
Ação de Publicação de Usuário é o campo de texto onde o usuário digita o conteúdo para publicação. Esse campo de texto está disponível na página inicial.
![](..\..\..\images\Image%2032.png)
**Área de publicação de usuário**
### Área de publicação na Comunidade
Na publicação em comunidade, além de publicar conteúdo de texto, é possível anexar imagens, um vídeo, documento ou artigo de acordo com a disponibilidade desses recursos.
![](..\..\..\images\Image%2033.png)
**Área de publicação de comunidade**
### Estrutura do widget Social Poster
Veja a seguir a estrutura que compõe o *widget* Social Poster:
**No HTML**
```
<div class="wcm-widget-class wcm-widget-post-share">
<!-- Verifica se o recurso está bloqueado -->
{{#socialStateBlocked}}
<!-- Verifica se tipo é comunidade -->
{{#socialTypeCommunity}}
<p class="message-information">${i18n.getTranslation('community.disabled')}</p>
{{/socialTypeCommunity}}
<!-- Verifica se tipo é usuário -->
{{#socialTypeUser}}
<p class="message-information">${i18n.getTranslation('user.disabled')}</p>
{{/socialTypeUser}}
{{/socialStateBlocked}}
<!-- Se o recurso não está bloqueado faz carregamento dos elementos da social poster -->
{{#socialStateActive}}
<!-- Verifica se existe um alias -->
{{#socialAlias}}
<!-- Verifica se usuário está em sua própria página ou se usuário é membro da comunidade -->
{{#isUserOwnPageOrMember}}
<!-- Área da imagem do usuário ou comunidade -->
<figure class="user-avatar-container">
<img src="/social/api/rest/social/imagetype/{{socialType}}/thumb/{{socialAlias}}" class="image-responsive">
</figure>
<form method="post" class="totvs-form grid post-share-form" data-post-share-form>
<fieldset class="col-1">
<!-- Área de postagem do conteúdo -->
<div class="post-area" data-post-area>
<div class="post-share-text-container">
<span class="close-post-share byyou-controller byyou-controller-close3" data-close-post-share></span>
<textarea name="post-share-text" class="post-share-text" id="post-share-text" placeholder="${i18n.getTranslation('share.question')}" data-post-share-text></textarea>
</div>
<!-- Verifica se tipo é comunidade -->
{{#socialTypeCommunity}}
<nav class="post-options-container">
<!-- Habilita link de seleção de imagem se recurso estiver disponível -->
{{#photoIsEnabled}}
<a href="#" class="post-options post-photo" data-attach-media="photo">${i18n.getTranslation('post.picture')}</a>
{{/photoIsEnabled}}
<!-- Habilita link de seleção de vídeo se recurso estiver disponível -->
{{#videoIsEnabled}}
<a href="#" class="post-options post-video" data-attach-media="video">${i18n.getTranslation('post.video')}</a>
{{/videoIsEnabled}}
<!-- Habilita link de seleção de documento se recurso estiver disponível -->
{{#documentIsEnabled}}
<a href="#" class="post-options post-document" data-attach-media="document">${i18n.getTranslation('post.document')}</a>
{{/documentIsEnabled}}
</nav>
{{/socialTypeCommunity}}
</div>
</fieldset>
<fieldset class="col-1">
<div class="submit-area group form-inline">
<!-- Área da lista de restrição do post e do botão de envio -->
<div class="post-submit-type fr">
<span class="post-text-limit">600</span>
<select name="post-share-visibility" class="post-share-visibility" {{#postShareVisibility}}disabled{{/postShareVisibility}}>
<!-- Se página possuir contexto de usuário habilita opções de acordo com o mesmo -->
{{#socialTypeUser}}
<option value="PUBLIC">${i18n.getTranslation('public')}</option>
<option value="PRIVATE">${i18n.getTranslation('follower')}</option>
{{/socialTypeUser}}
<!-- Se página possuir contexto de comunidade habilita opções de acordo com o mesmo -->
{{#notSocialTypeUser}}
<!-- Se conteúdo for privado não exibe opção 'publico' -->
{{#socialPrivateContent}}
<option value="PRIVATE">${i18n.getTranslation('member')}</option>
{{/socialPrivateContent}}
<!-- Se conteúdo não for privado adiciona opção 'publico' -->
{{#notSocialPrivateContent}}
<option value="PUBLIC">${i18n.getTranslation('public')}</option>
<option value="PRIVATE">${i18n.getTranslation('member')}</option>
{{/notSocialPrivateContent}}
{{/notSocialTypeUser}}
</select>
<!-- Se o recurso está bloqueado desabilita botão -->
{{#socialStateBlocked}}
<button class="totvs-btn-disabled" disabled="disabled">${i18n.getTranslation('profile.disabled')}</button>
{{/socialStateBlocked}}
<!-- Se o recurso não está bloqueado exibe botão -->
{{#notSocialStateBlocked}}
<button type="submit" class="totvs-btn-disabled post-share-submit" disabled="disabled">${i18n.getTranslation('publish')}</button>
{{/notSocialStateBlocked}}
</div>
</div>
</fieldset>
</form>
{{/isUserOwnPageOrMember}}
{{/socialAlias}}
{{/socialStateActive}}
</div>
```