Mudanças entre as edições de "Desenvolvimento:como se faz:exibindo um campo personalizado"
Diegomacedo (disc | contribs) |
Diegomacedo (disc | contribs) |
||
Linha 10: | Linha 10: | ||
No caso do Solr, dos dados dos campos armazenados no índice é disponibilizados no record driver através de sua propriedade no campo; no caso do MARC, métodos de conveniência são fornecidos para a extração de dados. Para outros formatos de dados e disponibilidade, fontes e formato de dados internos irá variar de acordo com o desenho do [[development:howtos:connecting_a_new_external_data_source|search backend]]. | No caso do Solr, dos dados dos campos armazenados no índice é disponibilizados no record driver através de sua propriedade no campo; no caso do MARC, métodos de conveniência são fornecidos para a extração de dados. Para outros formatos de dados e disponibilidade, fontes e formato de dados internos irá variar de acordo com o desenho do [[development:howtos:connecting_a_new_external_data_source|search backend]]. | ||
− | |||
===== Fluxo para adicionar um campo ===== | ===== Fluxo para adicionar um campo ===== | ||
Linha 27: | Linha 26: | ||
Não se esqueça de reindexar os dados e reiniciar o Solr depois de fazer alterações como esta! | Não se esqueça de reindexar os dados e reiniciar o Solr depois de fazer alterações como esta! | ||
+ | |||
+ | ===== 2. Torne os dados acessíveis através do record driver ===== | ||
+ | |||
+ | Se você estiver exibindo um campo que já está definido dentro Vufind, você pode pular esta etapa. | ||
+ | |||
+ | Se você está adicionando totalmente um campo novo, você precisará adicionar um método getter apropriado para o record driver usado para exibir seus registros. Na situação mais comum, isto vai está em [[https://github.com/vufind-org/vufind/blob/master/module/VuFind/src/VuFind/RecordDriver/SolrMarc.php|SolrMarc]] driver, que herda a maioria de sua funcionalidade de [[https://github.com/vufind-org/vufind/blob/master/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php|SolrDefault]] driver. Os métodos get existentes nestas classes deve servir como exemplos úteis para a criação de novos métodos. | ||
+ | |||
+ | Se você copiar um método existente como um modelo para o seu novo método, o detalhe mais importante a observar é o valor de retorno: certifique-se de que você devolver uma string quando se lida com um campo Solr de valor único e que você retornar um array quando lidando com um campo com valores múltiplos Solr. Isto tornará mais fácil para você lidar com dados de forma limpa no seu modelo. | ||
+ | |||
+ | Observe também que enquanto você pode simplesmente editar o record drivers existente no local, é geralmente uma melhor prática para localizar suas mudanças dentro de um módulo personalizado para facilitar futuras atualizações. Veja a [[development:architecture:customizing_vufind|Customizing VuFind]] página para maiores detalhes disto. Se estiver usando o VuFind 2.4 ou mais recente, note que [[development:code_generators|code generators]] pode automatizar a maior parte da configuração na construção de um record driver personalizado. |
Edição das 14h28min de 8 de abril de 2016
Índice |
Exibindo um campo personalizado
Esta página contém informações gerais sobre a forma de apresentar novos campos na interface do VuFind.
// Graças ao Luis Diaz para ajuda na elaboração deste documento. //
Entendo como os campos no VuFind são apresentados
Toda a apresentação do VuFind são renderizados usando templates do PHP dentro de theme. Os dados usados nestes templates é recuperado a partir de um record driver, que é uma classe PHP com muitos métodos públicos. o record driver frequentemente recupera as informações a partir do indíce Solr ou em um registro MARC armazenado e recuperado do índice.
No caso do Solr, dos dados dos campos armazenados no índice é disponibilizados no record driver através de sua propriedade no campo; no caso do MARC, métodos de conveniência são fornecidos para a extração de dados. Para outros formatos de dados e disponibilidade, fontes e formato de dados internos irá variar de acordo com o desenho do search backend.
Fluxo para adicionar um campo
O fluxo básico para adicionar um campo é:
- Disponibilizar os dados para o VuFind - torne os dados acessíveis através do record driver - apresentar os dados no template apropriado
1. Disponibilizar os dados para o VuFind
É possível que os dados já estejam disponíveis para o VuFind. Se você está recuperando um valor a partir de um campo dentro do registro MARC armazenado, ou se você deseja exibir um campo que já é visível em outras partes do VuFind, você pode pular esta etapa.
Se você precisa processar dados na fase de indexação em vez de carregá-lo cru no MARC, você precisará ajustar o seu SolrMarc configurando e/ou suas definições no schema.xml do Solr. Veja a discussão no adding facets para obter detalhes sobre como fazer isso.
Não se esqueça de reindexar os dados e reiniciar o Solr depois de fazer alterações como esta!
2. Torne os dados acessíveis através do record driver
Se você estiver exibindo um campo que já está definido dentro Vufind, você pode pular esta etapa.
Se você está adicionando totalmente um campo novo, você precisará adicionar um método getter apropriado para o record driver usado para exibir seus registros. Na situação mais comum, isto vai está em [[1]] driver, que herda a maioria de sua funcionalidade de [[2]] driver. Os métodos get existentes nestas classes deve servir como exemplos úteis para a criação de novos métodos.
Se você copiar um método existente como um modelo para o seu novo método, o detalhe mais importante a observar é o valor de retorno: certifique-se de que você devolver uma string quando se lida com um campo Solr de valor único e que você retornar um array quando lidando com um campo com valores múltiplos Solr. Isto tornará mais fácil para você lidar com dados de forma limpa no seu modelo.
Observe também que enquanto você pode simplesmente editar o record drivers existente no local, é geralmente uma melhor prática para localizar suas mudanças dentro de um módulo personalizado para facilitar futuras atualizações. Veja a Customizing VuFind página para maiores detalhes disto. Se estiver usando o VuFind 2.4 ou mais recente, note que code generators pode automatizar a maior parte da configuração na construção de um record driver personalizado.