Desenvolvimento:como se faz:exibindo um campo personalizado

De IBICT
Edição feita às 14h56min de 8 de abril de 2016 por Diegomacedo (disc | contribs)

Ir para: navegação, pesquisa

Í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.

3. Apresentar os dados no template apropriado

O passo final para exibir um novo campo e torná-lo visível através de um template de exibição O passo final para exibir um novo campo é torná-lo visível através de um modelo de exibição. Recorde-se relacionam modelos são encontrados na pasta RecordDriver do seu tema escolhido em uma pasta que corresponde ao nome da classe do driver registro. Quando VuFind escolhe um modelo para exibir, segue-se a cadeia de herança de classe '- por exemplo, se SolrMarc/core.phtml não existe, VuFind voltará a tentar SolrDefault/core.phtml, porque Solr o padrão é SolrMarc pai. Devido a este projeto, a maioria dos modelos de exibição registro de VuFind são encontrados dentro da pasta do tema RecordDriver/SolrDefault embora há muitos drivers diferentes disponíveis.

Aguns templates-chaves que você provavelmente considere para edição:

 * core.phtml - os metadados exibidos no modo de exibição de registro, independentemente no active tab
 * result-grid.phtml - um único resultado de busca, quando "grid view" está activa
 * result-list.phtml - um único resultado de busca, quando "list view" (the default mode) is active

Deve ser possível para adicionar o novo campo para o modelo, imitando alguns dos outros códigos já presentes lá.

Tal como acontece com personalizações de código, é possível editar modelos no local, mas muitas vezes é melhor prática para criar o seu próprio tema personalizado e criar suas exibições personalizadas lá - isso vai fazer futuros upgrades mais fáceis. Veja Customizing VuFind para mais detalhes.