Atualizar 'Dicas de Plone 6 e Volto'

master
parent
commit
2c0965e71f
  1. 25
      Dicas-de-Plone-6-e-Volto.md

25
Dicas-de-Plone-6-e-Volto.md

@ -143,18 +143,35 @@ Passos:
#### Criando item de painel de controle #### Criando item de painel de controle
Há duas formas de definir algo no painel de controle. > Frequentemente é necessário também [criar um endpoint](#criando-um-endpoint-para-ser-usado-no-frontend) para acessar o que foi configurado no painel de controle.
Há duas formas de definir algo no painel de controle:
1. Definir interface detalhando os dados do painel de controle 1. Definir interface detalhando os dados do painel de controle
Não consegui achar um projeto com exemplo desta forma, mas é a forma que está explicada na documentação e nos treinamentos. Não consegui achar um projeto com exemplo desta forma, mas é a forma que está explicada na documentação e nos treinamentos.
Checklist típica (os arquivos não precisam ser exatamente esses, é só uma sugestão):
- Criar um schema no arquivo `interfaces.py`, detalhando os campos desejados.
- Incluir uma tag `<configlet>` nos profiles de instalação e desinstalação do item de painel de controle, arquivo `controlpanel.xml`. O atributo `appId` deve coincidir nos dois arquivos.
- Criar um registro no Registry para a configuração, nos profiles de instalação e desinstalação. Arquivo `registry.xml` ou `registry/main.xml`. Usa-se a tag `<records>`.
- Criar uma página pra responder o item, arquivo `controlpanel/configure.zcml` (tag `browser:page`) e `controlpanel/controlpanel.py`.
- Criar um adapter pro Volto conseguir ver o item. Crie a tag `<adapter>`, em geral no arquivo `restapi/configure.zcml`.
[Documentação, Control Panels](https://6.docs.plone.org/backend/control-panels.html) [Documentação, Control Panels](https://6.docs.plone.org/backend/control-panels.html)
[Training "Mastering Plone", add custom control panel](https://training.plone.org/mastering-plone/registry.html#controlpanel-label) [Training "Mastering Plone", add custom control panel](https://training.plone.org/mastering-plone/registry.html#controlpanel-label)
[Documentação dos tipos](https://plonerestapi.readthedocs.io/en/latest/usage/types-schema.html) [Documentação dos tipos](https://plonerestapi.readthedocs.io/en/latest/usage/types-schema.html)
2. Definir interface apenas com uma string, de forma que os dados sejam guardados como json. Neste caso, define-se um widget no frontend para editar este json. *Esta forma é mais comum nos addons do "Awesome Volto"*. 2. Definir interface apenas com uma string, de forma que os dados sejam guardados como json. Neste caso, define-se um widget no frontend para editar este json. *Esta forma é mais comum nos addons do "Awesome Volto"*.
Checklist típica (os arquivos não precisam ser exatamente esses, é só uma sugestão):
- Criar um schema no arquivo `interfaces.py`. Neste caso, o schema só contém um item, so tipo `SourceText`.
- Incluir uma tag `<configlet>` nos profiles de instalação e desinstalação do item de painel de controle, arquivo `controlpanel.xml`. O atributo `appId` deve coincidir nos dois arquivos.
- Criar um registro no Registry para a configuração, nos profiles de instalação e desinstalação. Arquivo `registry.xml` ou `registry/main.xml`. Usa-se a tag `<records>`.
- Criar uma página pra responder o item, arquivo `controlpanel/configure.zcml` (tag `browser:page`) e `controlpanel/controlpanel.py`.
- Criar um adapter pro Volto conseguir ver o item. Crie a tag `<adapter>`, em geral no arquivo `restapi/configure.zcml`.
Projetos de exemplo: Projetos de exemplo:
- [eea.banner](https://github.com/eea/eea.banner) (usado pelo addon de frontend `volto-banner`) - [eea.banner](https://github.com/eea/eea.banner) (usado pelo addon de frontend `volto-banner`)
- [collective.volto.subfooter](https://github.com/collective/collective.volto.subfooter) - [collective.volto.subfooter](https://github.com/collective/collective.volto.subfooter)
@ -165,6 +182,12 @@ Há duas formas de definir algo no painel de controle.
[Docs, Control Panels (bem limitado)](https://6.docs.plone.org/backend/control-panels.html) [Docs, Control Panels (bem limitado)](https://6.docs.plone.org/backend/control-panels.html)
##### Troubleshooting
- Item aparece no plone clássico e não aparece no Volto.
O Volto exige os atributos `action_id` e `appId` da tag `<configlet>`. Além disso, não se esqueça do `<adapter>`.
#### Criando um endpoint para ser usado no frontend #### Criando um endpoint para ser usado no frontend
Passos, grosso modo. Veja os exemplos para ter uma ideia melhor. Passos, grosso modo. Veja os exemplos para ter uma ideia melhor.

Loading…
Cancel
Save