Skip to content

Página Pública das Atividades de Eventos

Mateus Machado Luna edited this page Aug 12, 2024 · 2 revisions

A página pública das Atividades de Eventos no VisiteMuseus trás customizações no tradicional template de itens do Tainacan, estilizando compos como a data e o ingresso, dando maior destaque para alguns metadados e exibindo atalhos para edição caso o usuário esteja logado.

Arquivos envolvidos

Funções relevantes

cne_instituicao_single_page_content()

  • Usando o filtro the_content do WordPress, carrega-se aqui o template /tainacan/atividade-single-page.php ao invés do template padrão de itens do Tainacan.
  • O template em si ainda usa muitas das funcionalidades que o template padrão de itens do Tainacan oferecido pelo plugin de integração do Blocksy ao Tainacan oferece, de forma que configurações continuam podendo ser feitas via menu Personalizar, embora nem todas vão se refletir da mesma forma. Por isso alguns dos filtros a seguir são filtros do próprio Blocksy;

cne_atividade_single_page_hero_title_before()

  • Adiciona botão de editar dados da atividade na área do cabeçalho caso o usuário tenha permissão para tal.

cne_atividade_single_page_hero_title_after()

  • Adiciona horário, data, descrição e galeria de mídia da atividade na área do cabeçalho.
  • Para os metadados, é usada a função tainacan_the_metadata() filtrada por alguns IDs. Note o uso da classe .screen-reader-text para esconder os rótulos. A galeria de mídias é chamada pela função tainacan_the_item_gallery();
  • Os metadados de hora e data recebem um ícone em SVG antes de seus valores. Isto é feito com o filtro tainacan-get-item-metadatum-as-html-before-value. Para que o SVG possa ser exibido neste contexto, é alterado também a lista de tags aceitas pela função wp_kses do WordPress, usando o filtro wp_kses_allowed_html;
  • Para que as datas dos eventos sejam exibidas sem o ano, usamos o filtro pre_option_date_format na função interna cne_view_mode_atividade_date_without_year();

cne_atividade_single_page_important_metadata()

  • Alguns metadados ficam localizados antes das primeiras seções de metadado na página da atividade. Para inseri-los, foi criada uma action cne-atividade-important-metadata no próprio template das atividades. Nesta função usamos esta action para carregar estes dados. Novamente, usando Adiciona metadados importantes da atividade antes das primeiras seções de metadado.
  • Novamente usando os filtros tainacan-get-item-metadatum-as-html-after-value e tainacan-get-item-metadatum-as-html-before-value, alteramos a aparência do metadado que diz respeito à gratuidade da atividade;

cne_atividade_single_page_bottom()

  • Adiciona uma seção no final da página da atividade com informações da Instituição que criou esta atividade.

cne_atividade_single_page_metadata_section_args()

  • Usando o filtro tainacan-get-metadata-section-as-html-filter-args, muda-se o ID dos títulos das seções. Esta alteração faz com que mesmo se a seção de metadado tiver um título (slug) diferente de uma coleção pra outra, ela será estilizada na mesma forma. Para isso puxa-se a informação do campo customizado criado para as seções cne_area_da_secao_de_metadados;

Opção para se definir a "área" da seção de metadados.

Como o template usado para a atividade é carregado para itens de diferentes coleções (cada edição de cada evento é uma nova coleção), surge-se um desafio de estilizar com consistência as seções de metadados que serão criadas nas coleções futuras. Os metadados não são um problema, pois por serem nível repositório seus IDs permanecem o mesmo. Mas as seções precisam ser criadas a cada nova coleção. Visto que tanto o ID quanto o slug de seções novas serão diferentes, foi criado um campo novo, no formulário de edição das seções de metadado para que possa ser definido qual a área esperada dessa seção (Contato, Endereço Físico, Endereço Virtual...). Esta lógica está configurada no arquivo /inc/opcoes-das-secoes-de-metadados.php e a consequência é a existência deste campo na interface:

image

Clone this wiki locally