Files
apitdn/fluig_rag_docs/Plataforma Documentação técnica/Recurso de Páginas e Widgets (WCM)/Estrutura de páginas.md
T
2026-05-06 13:35:47 -03:00

151 lines
6.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Estrutura de páginas
source: https://tdn.totvs.com/pages/viewpage.action?pageId=185732957
path: \Plataforma Documentação técnica\Recurso de Páginas e Widgets (WCM)\Estrutura de páginas.md
---
# Índice
- 1 [Objetivo](#Estruturadepáginas-Objetivo)
- 2 [Elementos de uma Página](#Estruturadepáginas-ElementosdeumaPágina)
- 3 [Página privada](#Estruturadepáginas-Páginaprivada)
- 4 [Página pública](#Estruturadepáginas-Páginapública)
- 5 [PathParam](#Estruturadepáginas-PathParam)
- 6 [Definir comportamento distinto para um widget em páginas públicas ou autenticadas](#Estruturadepáginas-Definircomportamentodistintoparaumwidgetempáginaspúblicasouautenticadas)
- 7 [Layout](#Estruturadepáginas-Layout)
- 8 [Slots](#Estruturadepáginas-Slots)
- 9 [Widgets](#Estruturadepáginas-Widgets)
# Objetivo
O objetivo deste guia é apresentar os elementos que constituem a estrutura de uma página no TOTVS Fluig Plataforma.
# Elementos de uma Página
O Fluig Plataforma é constituído de páginas e essas possuem os seguintes elementos: *Layout*, *Slots* e *Widgets*.
Uma página é constituída de um *layout*, que por sua vez possui *slots* que definem o posicionamento e a disposição dentro do *layout* onde os *widgets* são inseridos. Toda página permite definir o o modo de visualização como pública ou privada.
# Página privada
Para determinar que uma página esteja acessível apenas aos usuários autenticados na plataforma, ao criá-la ou editá-la basta selecionar a opção "AUTHENTICATED" no campo "Autorização". Desta maneira, somente usuários autenticados terão acesso a esta página.
Caso um usuário acesse uma página cuja autorização seja *Authenticated* sem estar autenticado, ele será redirecionado para a página de login. Somente após a autenticação ele poderá visualizar a página solicitada.
![](..\..\images\authenticated.png)
**Criação de páginas - Autorização: AUTHENTICATED**
Como fica a URL?
Considerando os seguintes dados:
| Elemento | Valor |
| --- | --- |
| Nome do servidor | meuserver.com.br |
| Porta utilizada pelo Fluig server | **8080** |
| Código da empresa corrente | **001** |
A URL desta página ficará assim: <http://meuserver.com.br:8080/portal/p/001/campanha_agasalho>
Onde:
| Elemento | Descrição |
| --- | --- |
| /portal | Valor fixo da plataforma. |
| /p | Indicativo de página privada. |
| campanha\_agasalho | É o campo "Identificador único" do cadastro de página. |
# Página pública
Para determinar que uma página seja acessada também por usuários que não estejam autenticados, ao criá-la ou editá-la, basta selecionar a opção "PUBLIC" no campo "Autorização". Desta maneira, usuários visitantes e autenticados conseguem visualizar a página pública.
Dica!
Para criar páginas públicas, em vez de utilizar esse recurso, você pode utilizar o recurso [Pages Beta](http://tdn.totvs.com/x/qwqVGQ), que oferece diversos *templates* e componentes que facilitam a configuração das suas páginas.
![](..\..\images\public.png)
**Criação de páginas - Autorização: PUBLIC**
Como fica a URL?
Considerando os seguintes dados:
| Elemento | Valor |
| --- | --- |
| Nome do servidor | [meuserver.com.br](http://meuserver.com.br) |
| Porta utilizada pelo Fluig server | **8080** |
| Código da empresa corrente | **001** |
A URL desta página ficará assim: [http://meuserver.com.br:8080/portal/001/campanha\_agasalho](http://meuserver.com.br:8080/portal/p/001/campanha_agasalho)
Onde:
| Elemento | Descrição |
| --- | --- |
| /portal | Valor fixo da plataforma |
| campanha\_agasalho | É o campo "Identificador único" do cadastro de página. |
A ausência do elemento **"/p"** indica que o acesso a essa página será público, ou seja, sem autenticação.
# PathParam
A plataforma Fluig permite que uma página contenha parâmetros em sua URL de forma que seja possível recuperá-los em um *layout* ou qualquer *widget* inserido na página. Cada parâmetro é nomeado pelo formato "p" seguido da sua ordem na URL, por exemplo, "p1", "p2", "p3", etc. É possível recuperar cada parâmetro na URL diretamente no seu *template* Freemarker.
Por exemplo: [http://meufluig.com/portal/p/meutenant/reservadesala/sala73/08:00/12:00](http://meufluig.com/portal/p/meutenant/minhapagina/meuparametro1/meuparametro2/meuparametro3)
| URL | Descrição | Variável no template Freemarker |
| --- | --- | --- |
| [http://meufluig.com/portal/p/meutenant/reservadesala](http://meufluig.com/portal/p/meutenant/minhapagina/meuparametro1/meuparametro2/meuparametro3) | Endereço da página com identificador único "reservadesala" | - |
| sala73 | Valor do parâmetro "p1" | *${p1}* |
| 08:00 | Valor do parâmetro "p2" | *${p2}* |
| 12:00 | Valor do parâmetro "p3" | *${p3}* |
Dica Freemarker
Para evitar erros na renderização do *template* Freemarker, deve-se [fornecer um valor padrão](http://freemarker.org/docs/dgui_template_exp.html#dgui_template_exp_missing_default) caso o PathParam não esteja presente na URL de acesso.
Exemplo: *${p1|"sala01"}*
# Definir comportamento distinto para um *widget* em páginas públicas ou autenticadas
É possível desenvolver um *widget* para que ele se comporte de forma diferente quando estiver em um contexto privado *(***com** "/p" na URL*)* ou público *(***sem** "/p" na URL*).* Para esses casos, pode-se utilizar os seguintes comandos:
No arquivo **\*.js**:
```
if(WCMAPI.getUserIsLogged()){
// Executa uma ação quando o usuário estiver autenticado
} else {
// Executa outra quando não estiver
}
```
No arquivo **\*.ftl**:
```
<#if widgetRender.isUserLogged()==true >
<!-- Executa uma ação quando o usuário estiver autenticado -->
<#else>
<!-- Executa outra quando não estiver -->
</#if>
```
# *Layout*
Toda página da plataforma Fluig é constituída por um *layout* que define a estrutura dela o que diz respeito ao posicionamento e ao tamanho dos *slots*.
Para saber mais acesse o guia sobre *[Layouts](Construção de Widgets e Layouts/Layouts.md)*.
# *Slots*
Os *slots* servem para organizar os *widgets* dentro de um *layout*. Eles são áreas pré-definidas dentro do *layout* onde os *widgets* podem ser distribuídos na ordem desejada para atender a cada necessidade.
Para saber mais acesse o guia sobre *[Slots](http://tdn.totvs.com/display/fluig/Layouts#Layouts-Slot).*
# *Widgets*
Dentro de uma página os *widgets* são os componentes concretos, que podem exibir e consultar informações, variando de componente para componente.
Para saber mais acesse o guia sobre *[Widgets](Construção de Widgets e Layouts/Widgets.md)*.