SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Liferay Portugal Users Group - Meetup #16
Introdução aos
CollectionProviders
Fernando Fernandez
Co-organizador LPUG
Construindo uma comunidade mais forte
2
The Info Framework
●
Generalização da Asset Framework
– Item Renderers
– Info List Providers (aka Collection Providers)
●
7.2:
– Display Pages passam a mostrar Info em vez de Assets
– Asset Publishers passam a mostrar Info
●
Jorge Ferrer @ /dev/24 2020: Video
3
The Info Framework (2)
●
Javadoc: Info 4.0
●
Alguns packages:
– com.liferay.info.item
– com.liferay.info.field
– com.liferay.info.filter
– com.liferay.info.item.renderer
– com.liferay.info.item.renderer.template
– com.liferay.info.list.provider
– com.liferay.info.list.renderer
–
– com.liferay.info.collection.provider
– com.liferay.info.pagination
– com.liferay.info.sort
– com.liferay.info.taglib.list.renderer
– com.liferay.info.taglib.servlet.taglib
4
CollectionProvider
●
Produção de listas de informação para Asset Publisher (widget), Collection Display
(fragmento), Headless API
●
Nome na 7.2 e 7.3: InfoListProvider / Content Sets
●
Utilidade:
– Quando a configuração do Asset Publisher ou da Collection não é suficientemente flexível
– Quando queremos integrar fontes de dados externas
●
Exemplos:
– Fabian Bouché – Discografia
– Daniel de Francisco – Products & Documents
– Ruben Pulido – CollectionProvider & Display
– Victor Galan – CollectionProvider Filters
5
OOTB Collection Providers
6
Exemplo: webcontents de pasta
●
Queremos poder mostrar, num fragmento de CollectionDisplay,
todos os webcontents que estão criados numa certa pasta
●
Passos:
– Criar uma estrutura Highlights
– Criar uma pasta “Highlights” de que só aceite webcontents
dessa estrutura
– Criar alguns conteúdos na pasta
– Criar um CollectionProvider que liste os conteúdos dessa pasta
7
Como começar: Criar módulo OSGi
8
Instalar
9
Construção do resultado
10
Ajudas
11
Resultado final
12
Adicionar à página
●
Usar fragmento de Collection Display
●
Adicionar fragmentos ao Item Display
●
Mapear campos do Web Content
●
O que falta:
– Suportar filtros
– Detalhar informação dos campos
13
Collection na página
14
Trabalho de casa
●
Filtros (categorias, keywords)
●
Anunciar campos específicos da estrutura
15
Exemplos de Collection Providers
●
Nos sources do portal encontram-se vários exemplos:
– HighestRatedAssetsInfoCollectionProvider.java
– MostViewedAssetsInfoCollectionProvider.java
– RecentContentInfoCollectionProvider.java
– RelatedAssetsInfoCollectionProvider.java
https://github.com/liferay/liferay-portal
Construindo uma comunidade mais forte
Meetup: https://www.meetup.com/Liferay-Portugal-User-Group/
Linkedin: https://www.linkedin.com/groups/12125960/
Youtube: https://www.youtube.com/channel/UCOJiHlf2FNDpdV_zifzqXnA

Mais conteúdo relacionado

Semelhante a LPUG #16 - Collection Providers - 2022-06-15.pdf

LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30Fernando Fernández
 
Ppt pd
Ppt pdPpt pd
Ppt pdTiago
 
LPUG Meetup #13 - Agenda e community updates - 2021-06-30
LPUG Meetup #13 - Agenda e community updates - 2021-06-30LPUG Meetup #13 - Agenda e community updates - 2021-06-30
LPUG Meetup #13 - Agenda e community updates - 2021-06-30Fernando Fernández
 
Postfix
PostfixPostfix
PostfixTiago
 
Java swing
Java swingJava swing
Java swingTiago
 
LPUG Meetup #14 Agenda e Community Updates - 2021-09-22
LPUG Meetup #14   Agenda e Community Updates - 2021-09-22LPUG Meetup #14   Agenda e Community Updates - 2021-09-22
LPUG Meetup #14 Agenda e Community Updates - 2021-09-22Fernando Fernández
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesRodrigo Cândido da Silva
 
Liferay Portugal UG Meetup 2018 09-12 - Slides
Liferay Portugal UG Meetup 2018 09-12 - Slides Liferay Portugal UG Meetup 2018 09-12 - Slides
Liferay Portugal UG Meetup 2018 09-12 - Slides Fernando Fernández
 
Epidemic Marketplace DrupalCamp Porto 2012
Epidemic Marketplace DrupalCamp Porto 2012Epidemic Marketplace DrupalCamp Porto 2012
Epidemic Marketplace DrupalCamp Porto 2012paulo_graca
 
Drupal
DrupalDrupal
DrupalTiago
 
Monitoramento
MonitoramentoMonitoramento
MonitoramentoTiago
 
Nagios2
Nagios2Nagios2
Nagios2Tiago
 
Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodleTiago
 
Instalacao xoops
Instalacao xoopsInstalacao xoops
Instalacao xoopsTiago
 
Introducao-ao-ambiente-web
Introducao-ao-ambiente-webIntroducao-ao-ambiente-web
Introducao-ao-ambiente-webAndré Moraes
 
Jabber
JabberJabber
JabberTiago
 
Serviços OpenAIRE para Gestores de Repositórios - broker service & dashboard ...
Serviços OpenAIRE para Gestores de Repositórios - broker service & dashboard ...Serviços OpenAIRE para Gestores de Repositórios - broker service & dashboard ...
Serviços OpenAIRE para Gestores de Repositórios - broker service & dashboard ...Pedro Príncipe
 
Materail para netbeans
Materail para netbeansMaterail para netbeans
Materail para netbeansAbner Augusto
 
Relatório de análise da plataforma cultura digital
Relatório de análise da plataforma cultura digitalRelatório de análise da plataforma cultura digital
Relatório de análise da plataforma cultura digitalGabriela Agustini
 

Semelhante a LPUG #16 - Collection Providers - 2022-06-15.pdf (20)

LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
 
Ppt pd
Ppt pdPpt pd
Ppt pd
 
LPUG Meetup #13 - Agenda e community updates - 2021-06-30
LPUG Meetup #13 - Agenda e community updates - 2021-06-30LPUG Meetup #13 - Agenda e community updates - 2021-06-30
LPUG Meetup #13 - Agenda e community updates - 2021-06-30
 
Postfix
PostfixPostfix
Postfix
 
Java swing
Java swingJava swing
Java swing
 
LPUG Meetup #14 Agenda e Community Updates - 2021-09-22
LPUG Meetup #14   Agenda e Community Updates - 2021-09-22LPUG Meetup #14   Agenda e Community Updates - 2021-09-22
LPUG Meetup #14 Agenda e Community Updates - 2021-09-22
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
Liferay Portugal UG Meetup 2018 09-12 - Slides
Liferay Portugal UG Meetup 2018 09-12 - Slides Liferay Portugal UG Meetup 2018 09-12 - Slides
Liferay Portugal UG Meetup 2018 09-12 - Slides
 
Epidemic Marketplace DrupalCamp Porto 2012
Epidemic Marketplace DrupalCamp Porto 2012Epidemic Marketplace DrupalCamp Porto 2012
Epidemic Marketplace DrupalCamp Porto 2012
 
Drupal
DrupalDrupal
Drupal
 
Monitoramento
MonitoramentoMonitoramento
Monitoramento
 
Ferm
FermFerm
Ferm
 
Nagios2
Nagios2Nagios2
Nagios2
 
Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodle
 
Instalacao xoops
Instalacao xoopsInstalacao xoops
Instalacao xoops
 
Introducao-ao-ambiente-web
Introducao-ao-ambiente-webIntroducao-ao-ambiente-web
Introducao-ao-ambiente-web
 
Jabber
JabberJabber
Jabber
 
Serviços OpenAIRE para Gestores de Repositórios - broker service & dashboard ...
Serviços OpenAIRE para Gestores de Repositórios - broker service & dashboard ...Serviços OpenAIRE para Gestores de Repositórios - broker service & dashboard ...
Serviços OpenAIRE para Gestores de Repositórios - broker service & dashboard ...
 
Materail para netbeans
Materail para netbeansMaterail para netbeans
Materail para netbeans
 
Relatório de análise da plataforma cultura digital
Relatório de análise da plataforma cultura digitalRelatório de análise da plataforma cultura digital
Relatório de análise da plataforma cultura digital
 

Mais de Fernando Fernández

Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdfForget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdfFernando Fernández
 
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdfLPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdfFernando Fernández
 
LPUG #17 - Agenda e Community Updates - 2022-09-28
LPUG #17 - Agenda e Community Updates - 2022-09-28LPUG #17 - Agenda e Community Updates - 2022-09-28
LPUG #17 - Agenda e Community Updates - 2022-09-28Fernando Fernández
 
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdfLPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdfFernando Fernández
 
LPUG Meetup #15 - Reinvenção do Liferay
LPUG Meetup #15 - Reinvenção do LiferayLPUG Meetup #15 - Reinvenção do Liferay
LPUG Meetup #15 - Reinvenção do LiferayFernando Fernández
 
LPUG - Meetup #15 - Agenda e Community Updates - 2021-03-02
LPUG - Meetup  #15  - Agenda e Community Updates - 2021-03-02LPUG - Meetup  #15  - Agenda e Community Updates - 2021-03-02
LPUG - Meetup #15 - Agenda e Community Updates - 2021-03-02Fernando Fernández
 
LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Life...
LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Life...LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Life...
LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Life...Fernando Fernández
 
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30Fernando Fernández
 
Entrega eficiente de conteúdos em sites complexos
Entrega eficiente de conteúdos em sites complexosEntrega eficiente de conteúdos em sites complexos
Entrega eficiente de conteúdos em sites complexosFernando Fernández
 
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3Fernando Fernández
 
LPUG Meetup #12 - Destaques DEVCON
LPUG Meetup #12 - Destaques DEVCONLPUG Meetup #12 - Destaques DEVCON
LPUG Meetup #12 - Destaques DEVCONFernando Fernández
 
LPUG #11 portal 7.3 'final' - 2020-12-09
LPUG #11   portal 7.3 'final' - 2020-12-09LPUG #11   portal 7.3 'final' - 2020-12-09
LPUG #11 portal 7.3 'final' - 2020-12-09Fernando Fernández
 
LPUG #10 agenda e community updates - 2020-09-16
LPUG #10   agenda e community updates - 2020-09-16LPUG #10   agenda e community updates - 2020-09-16
LPUG #10 agenda e community updates - 2020-09-16Fernando Fernández
 
Liferay UG Meetup #8 - Community updates - 2020-03-04
Liferay UG Meetup #8 - Community updates - 2020-03-04Liferay UG Meetup #8 - Community updates - 2020-03-04
Liferay UG Meetup #8 - Community updates - 2020-03-04Fernando Fernández
 
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04Fernando Fernández
 
Liferay Portugal Users Group Meetup #7 2019-12-04
Liferay Portugal Users Group Meetup #7   2019-12-04Liferay Portugal Users Group Meetup #7   2019-12-04
Liferay Portugal Users Group Meetup #7 2019-12-04Fernando Fernández
 
Liferay Kaleo Workflow com atribuição por categorias
Liferay Kaleo Workflow com atribuição por categoriasLiferay Kaleo Workflow com atribuição por categorias
Liferay Kaleo Workflow com atribuição por categoriasFernando Fernández
 
LPUG Meetup 6 - Boas-vindas e Community Updates - 2019-09-18
LPUG Meetup 6 - Boas-vindas e Community Updates - 2019-09-18LPUG Meetup 6 - Boas-vindas e Community Updates - 2019-09-18
LPUG Meetup 6 - Boas-vindas e Community Updates - 2019-09-18Fernando Fernández
 
Liferay Portugal Users Group - Meetup 3
Liferay Portugal Users Group - Meetup 3Liferay Portugal Users Group - Meetup 3
Liferay Portugal Users Group - Meetup 3Fernando Fernández
 
Liferay Portugal User Group Slides 1º Meetup
Liferay Portugal User Group Slides 1º Meetup Liferay Portugal User Group Slides 1º Meetup
Liferay Portugal User Group Slides 1º Meetup Fernando Fernández
 

Mais de Fernando Fernández (20)

Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdfForget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
 
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdfLPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
 
LPUG #17 - Agenda e Community Updates - 2022-09-28
LPUG #17 - Agenda e Community Updates - 2022-09-28LPUG #17 - Agenda e Community Updates - 2022-09-28
LPUG #17 - Agenda e Community Updates - 2022-09-28
 
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdfLPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
 
LPUG Meetup #15 - Reinvenção do Liferay
LPUG Meetup #15 - Reinvenção do LiferayLPUG Meetup #15 - Reinvenção do Liferay
LPUG Meetup #15 - Reinvenção do Liferay
 
LPUG - Meetup #15 - Agenda e Community Updates - 2021-03-02
LPUG - Meetup  #15  - Agenda e Community Updates - 2021-03-02LPUG - Meetup  #15  - Agenda e Community Updates - 2021-03-02
LPUG - Meetup #15 - Agenda e Community Updates - 2021-03-02
 
LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Life...
LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Life...LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Life...
LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Life...
 
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
 
Entrega eficiente de conteúdos em sites complexos
Entrega eficiente de conteúdos em sites complexosEntrega eficiente de conteúdos em sites complexos
Entrega eficiente de conteúdos em sites complexos
 
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
 
LPUG Meetup #12 - Destaques DEVCON
LPUG Meetup #12 - Destaques DEVCONLPUG Meetup #12 - Destaques DEVCON
LPUG Meetup #12 - Destaques DEVCON
 
LPUG #11 portal 7.3 'final' - 2020-12-09
LPUG #11   portal 7.3 'final' - 2020-12-09LPUG #11   portal 7.3 'final' - 2020-12-09
LPUG #11 portal 7.3 'final' - 2020-12-09
 
LPUG #10 agenda e community updates - 2020-09-16
LPUG #10   agenda e community updates - 2020-09-16LPUG #10   agenda e community updates - 2020-09-16
LPUG #10 agenda e community updates - 2020-09-16
 
Liferay UG Meetup #8 - Community updates - 2020-03-04
Liferay UG Meetup #8 - Community updates - 2020-03-04Liferay UG Meetup #8 - Community updates - 2020-03-04
Liferay UG Meetup #8 - Community updates - 2020-03-04
 
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04
 
Liferay Portugal Users Group Meetup #7 2019-12-04
Liferay Portugal Users Group Meetup #7   2019-12-04Liferay Portugal Users Group Meetup #7   2019-12-04
Liferay Portugal Users Group Meetup #7 2019-12-04
 
Liferay Kaleo Workflow com atribuição por categorias
Liferay Kaleo Workflow com atribuição por categoriasLiferay Kaleo Workflow com atribuição por categorias
Liferay Kaleo Workflow com atribuição por categorias
 
LPUG Meetup 6 - Boas-vindas e Community Updates - 2019-09-18
LPUG Meetup 6 - Boas-vindas e Community Updates - 2019-09-18LPUG Meetup 6 - Boas-vindas e Community Updates - 2019-09-18
LPUG Meetup 6 - Boas-vindas e Community Updates - 2019-09-18
 
Liferay Portugal Users Group - Meetup 3
Liferay Portugal Users Group - Meetup 3Liferay Portugal Users Group - Meetup 3
Liferay Portugal Users Group - Meetup 3
 
Liferay Portugal User Group Slides 1º Meetup
Liferay Portugal User Group Slides 1º Meetup Liferay Portugal User Group Slides 1º Meetup
Liferay Portugal User Group Slides 1º Meetup
 

LPUG #16 - Collection Providers - 2022-06-15.pdf

  • 1. Liferay Portugal Users Group - Meetup #16 Introdução aos CollectionProviders Fernando Fernandez Co-organizador LPUG Construindo uma comunidade mais forte
  • 2. 2 The Info Framework ● Generalização da Asset Framework – Item Renderers – Info List Providers (aka Collection Providers) ● 7.2: – Display Pages passam a mostrar Info em vez de Assets – Asset Publishers passam a mostrar Info ● Jorge Ferrer @ /dev/24 2020: Video
  • 3. 3 The Info Framework (2) ● Javadoc: Info 4.0 ● Alguns packages: – com.liferay.info.item – com.liferay.info.field – com.liferay.info.filter – com.liferay.info.item.renderer – com.liferay.info.item.renderer.template – com.liferay.info.list.provider – com.liferay.info.list.renderer – – com.liferay.info.collection.provider – com.liferay.info.pagination – com.liferay.info.sort – com.liferay.info.taglib.list.renderer – com.liferay.info.taglib.servlet.taglib
  • 4. 4 CollectionProvider ● Produção de listas de informação para Asset Publisher (widget), Collection Display (fragmento), Headless API ● Nome na 7.2 e 7.3: InfoListProvider / Content Sets ● Utilidade: – Quando a configuração do Asset Publisher ou da Collection não é suficientemente flexível – Quando queremos integrar fontes de dados externas ● Exemplos: – Fabian Bouché – Discografia – Daniel de Francisco – Products & Documents – Ruben Pulido – CollectionProvider & Display – Victor Galan – CollectionProvider Filters
  • 6. 6 Exemplo: webcontents de pasta ● Queremos poder mostrar, num fragmento de CollectionDisplay, todos os webcontents que estão criados numa certa pasta ● Passos: – Criar uma estrutura Highlights – Criar uma pasta “Highlights” de que só aceite webcontents dessa estrutura – Criar alguns conteúdos na pasta – Criar um CollectionProvider que liste os conteúdos dessa pasta
  • 7. 7 Como começar: Criar módulo OSGi
  • 12. 12 Adicionar à página ● Usar fragmento de Collection Display ● Adicionar fragmentos ao Item Display ● Mapear campos do Web Content ● O que falta: – Suportar filtros – Detalhar informação dos campos
  • 14. 14 Trabalho de casa ● Filtros (categorias, keywords) ● Anunciar campos específicos da estrutura
  • 15. 15 Exemplos de Collection Providers ● Nos sources do portal encontram-se vários exemplos: – HighestRatedAssetsInfoCollectionProvider.java – MostViewedAssetsInfoCollectionProvider.java – RecentContentInfoCollectionProvider.java – RelatedAssetsInfoCollectionProvider.java https://github.com/liferay/liferay-portal
  • 16. Construindo uma comunidade mais forte Meetup: https://www.meetup.com/Liferay-Portugal-User-Group/ Linkedin: https://www.linkedin.com/groups/12125960/ Youtube: https://www.youtube.com/channel/UCOJiHlf2FNDpdV_zifzqXnA