Histórico da Página
...
Fluxograma de Renderização
Toda página renderizada no WCM possui o mesmo fluxo para sua construção. O primeiro arquivo chamado no processo de renderização é o “master.ftl”, onde são informados os metadados da página. O arquivo master invoca o método “pageRender.renderTheme()”, responsável pela renderização do tema, que por sua vez irá chamar a renderização do layout, onde posteriormente serão renderizadas os widgets que compõem a tela, concluindo a construção da página.
O fluxograma a seguir exemplifica o processo de renderização de uma página:
Criando um Layout
É possível criar um layout a partir do Fluig Studio. O tutorial com o passo-a-passo encontra-se aqui
- Uma vez finalizando o tutorial, o Studio preparará um ambiente semelhante a esse:
- Ou, no caso de ter-se optado por um layout vazio, aparecerá o seguinte conteúdo:
- Para criar um slot, nesse caso, pode-se usar o Snippet "Slot de um Layout" disponível nos exemplos de código do Studio.
- Entenda o impacto na forma como você cria o layout na sessão sobre mudança no layout de uma página
Código do Layout
Apesar de a estrutura fornecida pelos templates do Studio não serem obrigatórios, é aconselhável o uso de alguns elementos essenciais quando do desenvolvimento de um layout a partir da estaca zero, como por exemplo:
Deck of Cards | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||
|
Código do Slot
O código de um slot é composto dos seguintes elementos:
Bloco de código | ||
---|---|---|
| ||
<div class="editable-slot slotfull layout-1-1" id="slotContainer001"> <@wcm.renderSlot id="Slot001" decorator="false" editableSlot="false" isResponsiveSlot="true" /> </div> |
Bloco de código | ||
---|---|---|
| ||
<div class="editable-slot slotfull layout-1-1" id="slotContainer001"> ... </div> |
Propriedade | Função |
---|---|
id="slotContainer001" | slotContainer001: Identificação única do container. Não pode haver outro elemento com esse mesmo código. O tamanho máximo para um ID de slot é 50 caracteres. |
class="editable-slot slotfull layout-1-1" | editable-slot e slotfull: Usado pelo renderizador para montar o editor individual de slot. layout-1-1: Usado para posicionar o slot em um determinado ponto da tela. Será detalhado adiante. |
Sobre o segundo elemento "div":
Bloco de código | ||
---|---|---|
| ||
...<@wcm.renderSlot id="Slot001" decorator="false" editableSlot="false" isResponsiveSlot="true" />... |
Propriedade | Função |
---|---|
id="Slot001" | Slot001: Identificação única do slot. Não pode haver outro elemento com esse mesmo código |
decorator="false" | true: As widgets posicionadas neste slot exibem seus títulos false: As widgets posicionadas neste slot não exibem seus títulos |
editableSlot="false" | true: Torna possível inserir e retirar widgets dentro do slot bem como mudar o posicionamento delas false: Não permite qualquer edição no conteúdo do Slot. Slots de cabeçalho, rodapé e login geralmente estão com esse valor |
isResponsiveSlot="true" | true: implementa o novo visual com ações novas em uma widget. false: Renderiza o visual antigo. |
Posicionamento do Slot
Na primeira "div" do conjunto de elementos de um slot, podemos encontrar o seguinte código:
Bloco de código | ||
---|---|---|
| ||
<div id="slotContainer001" class="editable-slot slotfull layout-1-1"> |
O valor "layout-1-1" refere-se ao posicionamento daquele layout dentro da página. Segue abaixo a lista dos posicionamentos de slot disponíveis dentro do TOTVS Fluig Plataforma:
Valor | Posição | Largura |
---|---|---|
layout-1-3 | Esquerda | 32% |
layout-2-3 | Esquerda | 65% |
layout-1-2left | Esquerda | 50% |
layout-1-1 | --- | 100% |
layout-1-2right | Direita | 50% |
layout-1-3right | Direita | 32% |
Informações | ||
---|---|---|
| ||
Leia a sobre mudança no layout de uma página |
Sobre Slots não editáveis
Um layout pode, ou não, conter slots não editáveis. Naqueles fornecidos pelo Fluig Plataforma como templates, há 5 slots que não são editáveis por padrão. Para cada slot não-editável, é necessário criar uma propriedade no application.info relacionado o id do slot ao código da widget que estará contida nele, pois essa é a forma de inserir conteúdo em um slot não-editável.
Slot de Busca:
Bloco de código | ||
---|---|---|
| ||
<div id="SlotInstantSearch" slot="true" class="slotint slot-header-actions"> <#list (pageRender.getInstancesIds("SlotInstantSearch"))! as id> ${pageRender.renderInstanceNoDecorator(id)} </#list> </div> |
Propriedade do application.info:
slot.SlotInstantSearch=widget_search
Slot de Alertas Globais:
Bloco de código | ||
---|---|---|
| ||
<div id="SlotGlobalAlert" slot="true" class="slotint slot-header-actions"> <#list (pageRender.getInstancesIds("SlotGlobalAlert"))! as id> ${pageRender.renderInstanceNoDecorator(id)} </#list> </div> |
Propriedade do application.info:
slot.SlotGlobalAlert=alertpopover
Slot de Login:
Bloco de código | ||
---|---|---|
| ||
<div class="header-grouper-right"> <div id="SlotLogin" slot="true" class="slot-header-actions"> <#list (pageRender.getInstancesIds("SlotLogin"))! as id> ${pageRender.renderInstanceNoDecorator(id)} </#list> </div> </div> |
Propriedade do application.info:
slot.SlotLogin=sociallogin
Slot de Menu:
Bloco de código | ||
---|---|---|
| ||
<@wcm.menu /> |
Propriedade do application.info:
slot.SlotMenu=menu
Slot de Rodapé:
Bloco de código | ||
---|---|---|
| ||
<@wcm.footer layoutuserlabel="wcm.layoutdefault.user" /> |
Propriedade do application.info:
slot.SlotUsePolicy=usepolicy
Informações | ||
---|---|---|
| ||
o valor do parâmetro "layoutuserlabel" deve ser uma chave existente em um dos arquivos .properties do seu projeto |
Como exibir/ocultar títulos das widgets no slot
Para exibir o título das widgets no slot é possível utilizar a propriedade decorator na macro renderSlot.
Por padrão os títulos das widgets não são exibidos na utilização da macro renderSlot. Porém é possível exibir os títulos alterando a propriedade decorator="true" no código do slot conforme exibido abaixo. Assim, todas as widgets posicionadas neste slot terão um título visível no topo.
Bloco de código | ||
---|---|---|
| ||
<div id="divSlot1" class="editable-slot"> <@wcm.renderSlot id="SlotA" decorator="true" editableSlot="true" /> </div> |
Resultado: