Configurar um link personalizado na barra lateral para abrir em uma nova aba

É possível fazer com que o link de uma seção personalizada abra em uma nova aba (_blank)? Existem muitos componentes de tema que oferecem essa capacidade também.

3 curtidas

Discutimos em algum momento se os links externos na barra lateral deveriam abrir em uma nova aba, mas decidimos respeitar a preferência do usuário.

Você pode compartilhar um ou dois casos do seu próprio site em que você acha que seria melhor ignorar essa preferência do usuário e forçar o link a abrir em uma nova aba?

2 curtidas

Claro. Talvez nossa abordagem seja apenas diferente. Eu realmente acredito que, se o link for externo, é muito mais educado direcionar o navegador do usuário para uma aba separada. Isso evita que eles interrompam a experiência que têm/tinham enquanto estão nas páginas do Fórum.

Nosso fórum é altamente ativo, não tenho certeza se é bom para um usuário ser interrompido ao sair completamente do site ao seguir o link. O link leva ao nosso canal do Telegram, se for esse o caso.

No final, não proponho que os links externos abram _blank por padrão. Sugiro que você dê aos administradores do Discourse a capacidade de controlar como quaisquer links são abertos a partir deste componente/recurso de configuração específico.

3 curtidas

Solução temporária: Se você clicar com o botão direito em um item, terá a opção de abri-lo em uma nova guia.

[quote=“kinetiksoft, post:3, topic:267004”]
Com certeza. Talvez nossa abordagem seja apenas diferente. Eu realmente acredito que, se o link for externo, é muito mais educado encaminhar o navegador do usuário para uma guia separada. Isso evita que eles interrompam a experiência que têm/tinham enquanto estão nas páginas do Fórum.
[/quote]Concordo, seu progresso nunca seria interrompido quando os links abrissem em uma nova guia.

Eu tendo a concordar com isso. Assim como no cenário acima com um canal do Telegram, claramente haverá casos em que substituir as preferências do usuário é ideal para links personalizados criados pelo administrador. Em componentes de tema, frequentemente usamos _blank, então não tenho certeza por que essa opção não pode estar aqui como parte da modal de configuração da barra lateral personalizada (a menos que seja uma questão de espaço e não haja lugar para ela). Na verdade, eu também tenho links personalizados na barra lateral para administradores no meu fórum, onde eu estaria inclinado a substituir a configuração do usuário para links.

2 curtidas

Você acredita que, se o usuário expressou a preferência de ter links abertos na mesma janela, é mais educado não fazer o que ele indicou expressamente?

Pessoas que usam leitores de tela são as mais incomodadas com a abertura de coisas em novas abas quando não esperam. É por isso que geralmente é recomendado não “sequestrar” links para uma nova aba (mesmo que seja o que você e eu preferimos).

Você pode alterar a preferência padrão do usuário para abrir em uma nova aba e também aplicar essa configuração a todos os usuários. Isso permitirá que seu site seja mais educado sem violar as preferências do usuário.

4 curtidas

este é um ponto muito bom.

5 curtidas

Como alguém que realmente usa um leitor de tela (e todos os problemas divertidos que alguns componentes de tema criam para eles), posso confirmar, geralmente é uma má ideia forçar novas abas.

5 curtidas

Como posso desativar a barra lateral de abrir um link personalizado para um site irmão, em uma nova aba? Como o outro site também tem um link para retornar ao Discourse. Atualmente, isso resulta em um número de abas indesejadas.

Preferiria que apenas esse link externo abrisse em _self.

Obrigado

1 curtida

Geralmente, todos os links devem abrir em _self. Um usuário diz quando e quais devem abrir em uma nova aba ou janela.

1 curtida

Em admin - configurações, certifique-se de que o seguinte esteja desativado:

Observe que os usuários logados podem substituir as configurações de administrador em suas preferências de usuário na aba de interface:

2 curtidas

Eu acho que a pergunta foi como configurar isso para um link específico para o site, que tem um link de volta para o fórum. Mudar a configuração do administrador mudaria o comportamento para todos os links, não mudaria?

2 curtidas

hmmm, pode ser. Eles querem substituir as configurações do usuário? Essas são as únicas configurações que conheço que afetam links em abas/janelas separadas.

1 curtida

Sim, não quero desativar o target _blank globalmente para sites externos. Apenas quero desativá-lo para este item de menu específico.

Obrigado pela explicação.

2 curtidas

Custom Header Links permite que você escolha o destino dos links que ele adiciona. Talvez isso ajude

https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.hbs#L18

3 curtidas

Obrigado. Então, use isto para a barra lateral?

1 curtida

É uma dica. É o melhor que tenho. Sinceramente, não tenho certeza sobre modificar a barra lateral.

Parece que ainda não há pontos de extensão de plugin na barra lateral (!?), então pode ser necessário um JavaScript inteligente para encontrar o que você deseja modificar. Algo como isto, talvez.

3 curtidas

Isso é intencional, idealmente a barra lateral deve ser estendida usando a API… isso nos ajuda a manter quaisquer links/seções personalizados adicionados aqui.

No momento, parece que os destinos de links externos são tudo ou nada com base na configuração do usuário external_links_in_new_tab… portanto, mesmo com uma seção/link personalizado adicionado via API, não há um método para alterar o destino de um link específico. Seria possível adicionar essa opção… embora historicamente tendamos a respeitar a preferência do usuário sobre como os links são abertos.

4 curtidas

Isso explica. Acho que perdi esse comunicado. Mas olhando um pouco mais de perto, vejo addSidebarPanel e addSidebarSection em plugin-api.js, mas apenas o último aparece em um post, e está longe de ser um how-to. Mas existe isto:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/lib/plugin-api.js#L2306-2310

4 curtidas