Como controlar a ordem das seções do menu na barra lateral?

Olá a todos,

Estou tendo um problema com o menu da barra lateral no meu fórum Discourse. A ordem das seções parece fixa — por exemplo, quando crio seções personalizadas adicionais, elas sempre aparecem acima da seção “Categorias”.

Para minha comunidade, seria importante ter essas seções personalizadas abaixo das categorias, mas não consigo encontrar nenhuma maneira de alterar ou controlar essa ordem.

Existe alguma maneira de gerenciar a posição das seções da barra lateral, ou atualmente não é possível personalizar a hierarquia/ordem desses blocos?

Agradeço antecipadamente por qualquer orientação!

2 curtidas

Olá, você pode controlar a ordem das seções da barra lateral com CSS. Basta adicionar um novo componente com algo como o seguinte código CSS. Vá para admin -> temas e componentes -> componentes e crie um novo componente local

e adicione este código à aba CSS, onde custom-section-name é o nome slug de uma seção de menu personalizada:

.sidebar-wrapper {
  .sidebar-custom-sections {
    display: contents;
  }
  [data-section-name="community"] {
    order: -4;
  }
  [data-section-name="categories"] {
    order: -3;
  }
  [data-section-name="tags"] {
    order: -2;
  }
  [data-section-name="custom-section-name"] {
    order: -1;
  }
}
captura de tela da aba CSS

Você terá que alterar os números e adicionar seções personalizadas ao código acima para atender às suas necessidades específicas. Ficará algo assim:

4 curtidas

Obrigado! Eu tinha acabado de encontrar e implementar isso - mas não funcionou no celular

aqui também já foi um tópico - mas isso também não funciona

A classe sidebar-wrapper no celular é substituída por sidebar-hamburger-dropdown, acredito. Portanto, adicioná-la também deve fazê-la funcionar no celular:

.sidebar-wrapper, 
.sidebar-hamburger-dropdown { 
  .sidebar-custom-sections {
    display: contents;
  } 
  [data-section-name="community"] {
    order: -4;
  }
  [data-section-name="categories"] {
    order: -3;
  }
  [data-section-name="tags"] {
    order: -2;
  }
  [data-section-name="custom-section-name"] {
    order: -1;
  }
}
3 curtidas

Obrigado! Acabei de tentar - mas infelizmente não funcionou. :folded_hands:

Ah, mais um detalhe: a barra lateral não está usando flex no mobile, aparentemente. Então, você precisaria adicionar isso também.

.sidebar-sections {
display: flex;
flex-direction: column;
}
6 curtidas

Muito obrigado!! Isso funciona!! Ótimo!

1 curtida

O nome do cabeçalho da minha seção personalizada contém um espaço, por exemplo, “Ajuda aos usuários”.

Tentei usar data-section-name="ajuda aos usuários", mas isso não funciona.

Como posso especificar o espaço? É necessário algum mascaramento aqui? Por favor, ajude.

EDITAR:
Após inspecionar o site usando as ferramentas de desenvolvedor do FF, descobri que a solução é “ajuda-usuários”.

3 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.