🖼️ Galeria de Tópicos

:information_source: Resumo Adiciona uma visualização de galeria para cada tópico
:eyeglasses: Prévia Clique para ver um exemplo de galeria
:hammer_and_wrench: Link do Repositório https://github.com/Canapin/discourse-topic-gallery
:open_book: Guia de Instalação Como instalar plugins no Discourse

Descrição

O Topic Gallery exibe todas as imagens de uma discussão em uma página dedicada.

Casos de Uso

Ideal para comunidades e/ou categorias focadas em imagens, onde os usuários postam muitas fotos.
Permite uma experiência de imagem completa sem que a interface regular do tópico e outros conteúdos atrapalhem.

Você pode experimentá-lo aqui. Esta é principalmente uma instância de teste, portanto, a disponibilidade não é garantida.

Funcionalidades

Funcionalidades Principais

  • Deslize infinito! [1]

  • Filtros de usuário e data

  • Inicia a galeria a partir de uma postagem específica

  • Acesso específico a grupos

  • Exclusões baseadas em categorias

  • Link para a postagem de origem abaixo da imagem atualmente aberta, para que você nunca se perca:
    Link da postagem de origem da galeria

  • Mostra imagens agrupadas (pertencentes à mesma postagem) ao passar o mouse:
    Imagens agrupadas do Topic Gallery

Navegação de um tópico para uma galeria

Vários botões estão disponíveis para navegar de um Tópico para uma Galeria:

  • Abaixo da linha do tempo:

  • No final de um tópico:
    Botão de tópico do Topic Gallery

  • Em cada postagem (pode ser desativado nas configurações):
    Botão de postagem do Topic Gallery
    :information_source: Se abrirmos a galeria a partir de uma postagem, a galeria será filtrada e mostrará apenas imagens a partir desta postagem. Você pode cancelar este filtro com um único clique:
    imagem

URLs da Galeria

A sintaxe do URL da galeria é a mesma de um tópico regular, mas /t/ é substituído por /gallery/:

https://canapin.discourse.diy/t/share-your-pictures/10
:backhand_index_pointing_down:
https://canapin.discourse.diy/gallery/share-your-pictures/10

Há também um endpoint JSON público:
https://canapin.discourse.diy/gallery/share-your-pictures/10.json

Segurança e Consultas

  • O acesso aos recursos é restrito a grupos permitidos e em categorias permitidas.
  • As galerias são restritas a usuários com acesso ao tópico de origem.

As consultas de upload excluem:

  • A ordem das imagens de uma postagem é preservada
  • Imagens não carregadas pelo usuário
  • Emojis personalizados, avatares, etc., referências que não são de postagens
  • Uploads de postagens às quais o usuário atual não tem acesso, o que significa:
    • Sussurros (se o usuário atual não puder ver sussurros)
    • Postagens ocultas
    • Postagens excluídas
    • Postagens de usuários ignorados

Comportamento da Galeria

  • Imagens com link direto (hotlinked) não são exibidas.

  • Imagens pequenas não são exibidas (a resolução mínima pode ser alterada nas configurações).

  • Imagens duplicadas são exibidas uma única vez.

  • Imagens em citações são exibidas.

Configurações

Nome Tipo Padrão Descrição
topic_gallery_enabled booleano true Habilita o plugin topic gallery.
topic_gallery_allowed_groups lista_de_grupos admins Grupos autorizados a acessar a galeria do tópico.
topic_gallery_minimum_image_size inteiro (0–1000) 64 Largura e altura mínimas (em pixels) para que as imagens apareçam na galeria. Imagens menores que este valor em qualquer dimensão são excluídas.
topic_gallery_excluded_categories lista_de_categorias "" Categorias onde a galeria do tópico é desativada. Tópicos nessas categorias não mostrarão botões de galeria ou a página da galeria.
topic_gallery_post_menu_button booleano true Mostra um botão de galeria dentro de cada postagem.

:information_source: Por padrão, o plugin está habilitado apenas para administradores. Visite as configurações para habilitar outros grupos.


  1. Atingir o final do primeiro lote de imagens carrega e anexa automaticamente o próximo lote. ↩︎

17 curtidas

Finalmente lancei este plugin :slight_smile:
Você pode ver uma prévia aqui: Gallery - Share your pictures! - Canapin

6 curtidas

Esta é uma ideia e implementação muito legais.
Vou tentar isso mais tarde, mas existe uma maneira de adicionar uma descrição de imagem que apareceria no pop-up da imagem abaixo dela?

1 curtida

Acho que você pode usar texto alternativo (alt text):

![Algum texto alternativo aqui](upload://...)

Você também pode clicar na imagem acima para ver o texto alternativo.

3 curtidas

Ah, houve uma falha da minha parte. A configuração do photoswipe deste plugin parece estar mostrando o nome do arquivo original em vez do título personalizado. Vou corrigir isso :slight_smile:

4 curtidas

@Canapin Por que não usar o lightbox() nativo do Discourse?

Aparentemente, embora eu possa usar a lightbox integrada (o que eu estava fazendo nas primeiras versões deste plugin), não consigo configurá-la e ajustá-la às minhas necessidades. Notavelmente, não consegui fazê-la interagir com meus métodos de carregamento/deslizamento infinito, então tive que enviar a minha própria.

1 curtida

Infelizmente, não consigo corrigir isso. Os títulos das imagens são escritos no conteúdo das postagens e não são armazenados em nenhuma tabela.

Por razões de desempenho, minhas consultas não retornam o conteúdo das postagens, então não posso analisá-lo para recuperar os títulos.

Acho que vou manter os nomes dos arquivos, mesmo que essa informação raramente seja valiosa… :thinking:
Nomes de arquivos não modificados geralmente revelam de onde a imagem veio.

Por exemplo, na minha instância de teste:

  • image.png → “image” nomes de arquivos são imagens coladas diretamente no editor

  • Gemini_Generated_Image_8h4wt58h4wt58h4w.jpg → Adivinhe

  • ComfyUI-ExtraMD-Large_315126945425344_00000.jpg → Gerador de imagem de IA local

  • the-tattooer-is-totally-right-v0-s2f8spm3l-D5908.jpg → Provavelmente salvo de um site

  • cropped-android-chrome-512x512-1-32x32.png → Captura de tela de smartphone

Etc.

1 curtida

O ícone da galeria na parte inferior de um tópico no celular não está bem desenhado. (Não segue o formato/tamanho dos outros botões). Parece bom no desktop. Obrigado.

1 curtida

Antes
image

Depois
image

Corrigido, obrigado pelo relatório :slight_smile:

1 curtida

Obrigado! Seria possível também ter uma configuração para desativar o “do post #123” automático quando um usuário clica no botão da galeria no meio de um tópico? Então, basicamente, a galeria completa disponível, não importa em qual botão de galeria específico você clique. :slight_smile:

1 curtida

Você pode desabilitar os botões de postagem nas configurações do plugin. Os botões de galeria restantes (linha do tempo e fim do tópico) abrem a galeria desde o início.

1 curtida

Perguntas de UX para conhecedores.

Na maioria das vezes, tanto no desktop quanto no mobile, quero abrir a galeria a partir da última postagem não lida:

Por exemplo, abro um tópico e ele mostra isso:

Meu primeiro instinto, especialmente no mobile, é clicar no ícone da galeria ao lado do elemento de progressão do tópico. Mas esse ícone abre a galeria do início.

Se quero abrir a galeria a partir da postagem atual, preciso rolar para baixo até chegar ao final da postagem, onde está o botão “abrir galeria a partir da postagem atual”:

Não tenho certeza de como resolver isso. Devo alterar quais botões abrem a galeria do início ou da postagem atual? Devo mover o botão para outro lugar?

Qualquer ideia é bem-vinda :grinning_cat:

1 curtida

No contexto de um fórum para uma escola (uma categoria por turma), esse plugin é bastante interessante!

Podemos publicar fotos, adicionar comentários e ter uma boa visão geral.

Particularmente útil seria este pull request: Add sitewide and category gallery scopes - Pull Request #23 - Canapin/discourse-topic-gallery - GitHub

De fato, o caso de uso seria abrir tópicos por eventos e publicar fotos relacionadas a um evento em um tópico dedicado.

E com os escopos de galeria do site inteiro e da categoria, as pessoas podem ter uma boa visão geral de todas as fotos sem precisar entrar em cada tópico!

1 curtida

Entendo o pedido :slight_smile:

Não sou contra adicionar uma configuração para isso.

Mas eu não sou programador (sei o básico, é verdade), e, embora eu tenha dedicado o tempo e o esforço necessários para revisar e entender completamente o código fornecido pela IA para meu plugin, garantindo que fosse seguro e confiável, não tenho nem a confiança nem a motivação suficientes para revisar o PR atual e garantir que ele seja tão seguro e confiável quanto o código existente, e que não torne o código atual mais desorganizado.

Ficaria muito feliz se um programador experiente pudesse revisar essa alteração. Não posso alocar meus próprios recursos para isso, mas uma revisão patrocinada (mais correções de refatoração, se necessário) me permitiria implementar o recurso.

Se alguém puder dar uma estimativa ampla de quanto tempo (ou dinheiro, mas é a mesma coisa, certo?) esse trabalho não feito por IA levaria, talvez ele possa ser postado em Marketplace? :slight_smile:

1 curtida