Notei isso também e parece que apenas os links externos não aparecem em Mais.
Eu uso links internos neste componente, por exemplo, tenho um link que abre convites de usuário: /my/invited/pending/
Ao abrir o link da barra lateral, recebo: Oops! Essa página não existe ou é privada.
O link funciona quando acessado a partir da barra de URL.
Ao inserir o URL completo (https://domain.com/my/invited/pending/), o URL abre assim:
https://domain.com/https://domain.com/my/invited/pending/
Sim. Problema conhecido.
Olá,
Isso deve funcionar com: Chat,/chat/browse/open :sorrindo:
Sim, eu sei. Enviei meu comentário talvez um pouco rápido demais. Bem, definitivamente rápido demais, porque eu deveria dizer que deve usar o caminho em vez do URL completo.
Link extra para o chat… bem, a nova barra lateral mudou totalmente o playground e não é mais necessária.
Eu dei uma olhada no código da barra lateral do Discourse e @manuel adição de ícones.
Parece que, atualmente, não é possível personalizar os links personalizados do ícone porque o método de decoração do menu hambúrguer não leva em consideração a constante prefixValue (que contém o nome do ícone) ou algo assim…
Também me parece que as decorações do menu hambúrguer com api.decorateWidget serão depreciadas. Veja:
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/lib/plugin-api.js#L534
Além disso, o fato de links externos não funcionarem mais pode vir disso:
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/lib/plugin-api.js#L524
Portanto, deve haver algumas mudanças no core para tornar isso disponível.
Meu conhecimento sobre como o Discourse funciona é quase inexistente, então posso estar muito enganado.
Estou certo em minhas descobertas?
Instalei este componente de tema do repositório do GitHub. Estou executando o 3.0.0.beta15 no meu discourse e, embora pareça ter adicionado, o menu hambúrguer não mostra meu link… Alguma ideia?
Pode estar relacionado a:
Até hoje, links externos ainda não funcionam.
E links internos devem começar com um caminho relativo, não um caminho completo.
Muito obrigado por este componente útil. Preciso adicionar alguns links internos importantes, mas agora que o menu hambúrguer está integrado à barra lateral, acho que eles não são muito visíveis no menu Mais. Os usuários geralmente são péssimos em encontrar coisas, então realmente preciso colocá-los no nível superior, idealmente logo após Meus posts. Existem hacks de CSS para conseguir isso?
Além do que o CSS pode alcançar, eu acho. A equipe do Discourse tem isso em seu roteiro, mas não está acontecendo rapidamente (eu acho):
Eu uso:
<script>
const customHeader = document.createElement("div")
customHeader.className = "sidebar-section-wrapper sidebar-section-community"
customHeader.innerHTML = `
<div class="sidebar-section-header-wrapper sidebar-row">
<button id="ember11" class="sidebar-section-header sidebar-section-header-collapsable btn-flat btn no-text" type="button">
<span class="sidebar-section-header-text"> Rechtliches </span>
</button>
</div>
<div class="sidebar-section-content" id="customNavigation"/>
`
$(document).ready(function () {
// Create the links
const links = [
{ title: "Impressum", src: "/impressum" },
{ title: "Datenschutz", src: "/privacy" },
]
// Mobile
let hamburger = document.getElementById("toggle-hamburger-menu")
if (hamburger) {
hamburger.addEventListener("click", addCustomLinks)
} else {
addCustomLinks()
}
let bool = false;
function addCustomLinks() {
setTimeout(function () {
// Force to wait until navigation has been loaded
const sidebar = document.getElementsByClassName("sidebar-sections")[0]
if (sidebar) {
sidebar.append(customHeader)
if (bool) return;
// Get the customNav Id
const customNavigation = document.getElementById("customNavigation")
if (customNavigation) {
links.filter(function (link) {
let linkDiv = document.createElement("div")
linkDiv.className = "sidebar-section-link-wrapper"
linkDiv.innerHTML = `<a href="${link.src}" class="sidebar-section-link sidebar-section-link-everything sidebar-row ember-view">
<span class="sidebar-section-link-prefix icon"></span>
<span class="sidebar-section-link-content-text"> ${link.title} </span>
</a>
`
customNavigation.append(linkDiv)
let linkIcon = document.getElementById("link_" + link.title)
})
}
}
bool = true
}, 0)
}
})
</script>
Você pode ver o resultado em https://forum.courservio.de/
A versão original deste código é de https://meta.discourse.org/t/add-custom-links-to-sidebar/246848. Talvez possa te ajudar.
@hosch Uau, muito bom, exatamente o que eu estava procurando! Muito obrigado.
@hosch Por acaso é possível movê-lo mais para cima? Eu gostaria que aparecesse depois da seção Comunidade, ou talvez até antes dela.
Editar: Parece que é possível com uma variação disto:
Rearrange Existing Hamburger Menu Items - #3 by awesomerobot
.sidebar-sections {
display: flex; /* Configura um layout flexível para que você possa reordenar as coisas */
flex-direction: column;
.sidebar-section-community {
order: -1;
}
}
Eu me pergunto sobre movê-lo para a posição mais alta?
Há uma peculiaridade com este método em que o div personalizado desaparece ao alternar a visibilidade da barra lateral, por exemplo, se a janela do navegador estiver estreita. Este é um problema especialmente para tablets, que geralmente recebem a versão desktop do Discourse e exigem clicar no menu hambúrguer para exibir a barra lateral. Alguma solução possível? Obrigado!
Editar: Resolvido aqui:
Obrigado @hosch e @Olivier_Lambert por fazerem isso.
Você poderia explicar a este novato onde devo inserir isso? ![]()
Como posso reordenar elementos em uma seção de barra lateral / menu hambúrguer?
Por exemplo, quero colocar “Todas as categorias” acima das categorias na seção “Categorias”, o mesmo com “Todas as tags”.
Obrigado!
Agora você sabe como usar um componente para CSS, certo? Adicione isso na seção head.
Você não pode facilmente. Ainda não. Não está totalmente finalizado e polido no momento.
Eu tentei isso, deu erro ao usar ponto e vírgula perto de src.
Vamos tentar de novo. Obrigado.
Isso ainda é um problema, as soluções a seguir não corrigiram o problema.
Configuração: Invite friends,/my/invited/pending/,f
Fora de tópico:
Eu já vi esse estilo de barra lateral condensada antes, mas não consigo encontrá-la em lugar nenhum. Isso é um componente de tema?
Você pode usar este CSS:
#sidebar-section-content-categories,
#sidebar-section-content-tags {
display: flex;
flex-direction: column;
li:last-child {
order: -1;
}
}
![]()

