Barres latérales de la liste des sujets

:information_source: Anciennement « Barres latérales de catégories Discourse » — le nom de ce composant de thème a été mis à jour en Barres latérales de liste de sujets maintenant qu’il prend en charge à la fois les catégories et les étiquettes.

:discourse2: Résumé Barres latérales de liste de sujets prend un sujet et l’applique comme barre latérale pour la liste des sujets d’une catégorie ou d’une étiquette.
:eyeglasses: Aperçu Aperçu sur Discourse Theme Creator
:hammer_and_wrench: Lien vers le dépôt https://github.com/discourse/discourse-topic-list-sidebars
:open_book: Nouveau sur les thèmes Discourse ? Guide pour débutants sur l’utilisation des thèmes Discourse

Installer ce composant de thème

Fonctionnalités

Ce composant de thème prend un sujet et l’applique comme barre latérale pour la liste des sujets d’une catégorie ou d’une étiquette. Ces barres latérales ne sont visibles que lorsque le navigateur a une largeur d’au moins 767 px (la plupart des tablettes et moniteurs).

Que puis-je faire avec ce composant de thème ?

  • Choisir un sujet et afficher son contenu comme barre latérale pour une catégorie ou une étiquette.

  • Définir une barre latérale à afficher sur les pages /latest, /new, /unread et /top en utilisant all comme nom de catégorie dans vos paramètres.

  • Choisir d’afficher les barres latérales à gauche ou à droite de la liste des sujets.

  • Par défaut, la barre latérale d’une catégorie s’affiche également pour toutes ses sous-catégories, sauf si une sous-catégorie a sa propre barre latérale définie (vous pouvez désactiver cette option en décochant le paramètre hériter de la barre latérale parente).

Comment le configurer ?

Choisissez vos catégories et étiquettes, puis ajoutez l’identifiant du sujet (par exemple, example.com/t/exemple-sujet/57) que vous souhaitez utiliser pour remplir le contenu de la barre latérale.

Je recommande de créer des sujets de barre latérale dans leurs catégories/étiquettes respectives, de fermer le sujet pour qu’il n’y ait aucune réponse, et de le rendre non listé (pour qu’il n’apparaisse pas dans la liste des sujets).

Notez que vous ne pouvez pas utiliser un sujet d’une catégorie privée comme barre latérale dans une catégorie publique (vous pouvez techniquement le faire, mais les utilisateurs n’ayant pas accès à ce sujet privé verront simplement une barre latérale vide !).

Paramètres

Nom Description
sidebars Ajouter et supprimer des barres latérales
côté de la barre latérale Choisir entre Gauche ou Droite
hériter de la barre latérale parente Si coché, les sous-catégories hériteront de la barre latérale de leur catégorie parente (sauf si la sous-catégorie a sa propre barre latérale assignée).

Lorsqu’il est décoché, les sous-catégories n’afficheront une barre latérale que si elle est spécifiée.
coller au défilement Lorsqu’il est coché, la barre latérale a une position fixe lors du défilement

Notes pour les développeurs

Chaque barre latérale de catégorie est enveloppée dans une classe contenant le slug de la catégorie, donc pour la catégorie staff, ce serait .category-sidebar-staff. Vous pouvez utiliser ces classes pour styliser les barres latérales individuelles.

La balise body sur les pages avec des barres latérales a également une classe ajoutée, vous pouvez donc utiliser body.custom-sidebar pour appliquer des styles sur toutes les pages qui ont une barre latérale.

Crédits

:heart: Un merci spécial à @xrav3nz pour avoir posé les bases permettant de rendre ce composant possible !


:discourse2: Hébergé par nous ? Les composants de thème sont disponibles pour une utilisation sur nos plans Standard, Business et Entreprise.

59 « J'aime »

Trying to figure out how to make this work with tags as well. (we use tags heavily rather than having tons of categories.)

It looks like it may be about replacing controller:navigation/category with whatever the equivalent for tags is but not sure.

2 « J'aime »

J’ai juste jeté un coup d’œil rapide et c’est possible de faire cela pour les tags…

Je vais probablement travailler davantage là-dessus demain et le séparer dans son propre dépôt.

Oui, c’est le cœur du problème — cela semble fonctionner pour les tags :

const controller = container.lookup("controller:tags-show");
const tag = controller.get("tag");

Mise à jour : J’ai un composant de thème disponible, Discourse Tag Sidebars.

10 « J'aime »

Since I am using the header submenu plugin, A part of the text is covered by my header bar. It would be great if it was possible to add extra margin/offset or whatever it’s called for the case when additional elements before the header are covering the sidebar’s content.

Also: is there any way to keep the category drop down menu above the sticky sidebar’s content? that would make it easy for users to jump between categories quickly.

altogether I think the category sidebar is a great plugin and has huge potential to add useful information to the forum structure!

Encore un excellent plugin, Kris, merci !

J’ai quelques questions/suggestions que j’espère que tu pourras m’aider à résoudre…

1 - Est-il possible de faire en sorte que, lorsqu’un utilisateur navigue sur le forum, en passant d’une page à l’autre, la barre latérale vérifie toujours la dernière version du post qu’elle contient ? Pour l’instant, je pense que le contenu de la barre latérale ne se met à jour qu’au rafraîchissement de la page ? Malheureusement, le contenu qui change rarement commence à paraître désuet aux yeux des utilisateurs (en particulier des utilisateurs actifs), et j’aimerais donc pouvoir mettre à jour le sujet associé à la barre latérale aussi souvent que possible. (De même, si l’ID du sujet dans les options de cette page est modifié, il devrait être pris en compte lors de la prochaine visualisation de la page). Je n’ai aucun problème avec la charge supplémentaire par page/visualisation, mais si tu crains que cela ne convienne pas à d’autres, tu pourrais peut-être ajouter une option « mettre en cache le contenu des posts » qui permettrait de conserver le fonctionnement actuel.

2 - Est-il possible d’associer/récupérer le contenu de plus d’un sujet par barre latérale ? Par exemple, sur la page « Derniers », tu pourrais souhaiter afficher le contenu des sujets 33 et 55 (et dans cet ordre). Cela serait formidable pour permettre un contenu différent par page tout en incluant des informations/liens communs que tu souhaiterais voir apparaître en bas de chaque barre latérale.

3 - Est-il possible d’étendre le plugin pour qu’il puisse être utilisé sur l’ensemble du site ? Pour l’instant, je pense qu’il ne peut être utilisé que sur certaines pages ? Idéalement, j’aimerais l’utiliser sur l’ensemble du forum, dans toutes les sections/pages principales. (Peut-être que ton plugin de barre latérale pour les tags pourrait être utilisé conjointement avec celui-ci pour un contrôle plus fin – par exemple pour des tags et/ou des sujets individuels – je pense que les deux combinés pourraient former un package de barre latérale très puissant !!)

4 - Est-il possible d’ajouter une option de largeur de barre latérale ainsi qu’un point de coupure/affichage-nul configurable ? Ce n’est pas un gros problème car cela peut être fait via des modifications CSS, mais je pense que ce serait agréable de l’avoir dans les options.

5 - Dernière chose mais non la moindre… pourrais-tu faire en sorte que les sondages fonctionnent ? Je pense que permettre aux utilisateurs de voter dans les sondages directement depuis la barre latérale serait génial !!! Je trouve que ce type de contenu dynamique dans les barres latérales peut les rendre plus intéressantes pour les utilisateurs, et donc moins susceptibles d’être ignorées automatiquement.

Je pense qu’avec tout ce qui précède, ce plugin serait un très bon candidat pour être inclus dans le cœur du système ou en tant que plugin officiel de DC – à mon avis, il pourrait aider les gens à imprimer leur marque personnelle sur leurs forums, et je suis sûr que les gens les utiliseraient de manière amusante et intéressante ! :smiley:

Bonjour,

Super composant. Est-il possible d’avoir une telle barre latérale pour chaque sujet sous une catégorie spécifique ?

Merci.

Quelle est la syntaxe pour adresser une sous-catégorie ? Voici ce que j’ai essayé jusqu’à présent :

category/subcategory,123
subcategory,123
category-subcategory,123

Aucune de ces options ne semble fonctionner. Les catégories principales sont bien affichées, cependant.

1 « J'aime »

Hm, quelqu’un, s’il vous plaît ? Ce ne devrait pas être si difficile de donner une réponse…

Il semble qu’une régression se soit produite et que les sous-catégories ne fonctionnaient pas dans certains cas ; la syntaxe doit être identique à celle des catégories : sous-catégorie, 123.

J’ai refactorisé le thème, donc si vous le mettez à jour, les sous-catégories devraient fonctionner comme prévu !

6 « J'aime »

Cela a fait l’affaire : parfait !
Merci beaucoup, juste à temps pour notre grande ouverture.

1 « J'aime »

Excellent plugin !

Est-ce que ce serait possible pour les groupes également ? Avoir une barre latérale pour les groupes serait génial pour donner des informations sur le groupe.

Quelqu’un pourrait-il m’orienter pour obtenir les paramètres du groupe (pour que le composant sache que vous êtes dans un groupe) afin que je puisse essayer et créer une PR moi-même ?

@hyphalos J’ai créé un widget de groupes qui peut être ajouté aux barres latérales du plugin de mises en page.

Peut-être que le code que j’avais pour cela vous aidera à écrire votre PR :

Alternativement, vous pourriez également utiliser le plugin de mises en page et le widget lui-même.

2 « J'aime »

Il serait peut-être un peu audacieux de le demander, puisqu’il s’appelle sidebar (barre latérale), mais : serait-il possible d’ajouter une option pour placer le contenu non pas à côté, mais toujours au-dessus de la liste des sujets ?

Nous utilisons Discourse comme intranet social, et pour certaines catégories, nous avons besoin d’un espace facile à maintenir pour les liens, les listes de personnes, etc. - ce mécanisme serait idéal pour cela, mais il y a tout simplement trop peu d’espace dans la barre latérale.
Les hacks CSS sont également les bienvenus.

J’ai déjà essayé les bannières de catégorie, mais elles sont limitées au premier paragraphe, ce n’est donc pas une option.

Cordialement,
Ralf
(Bibliothèque d’État de Berlin)

Qu’en est-il de ce TC ?

Je pense que vous serez toujours bloqué avec le premier paragraphe. Mais cela pourrait potentiellement être modifié.

Salut Kris, c’est plutôt sympa.

Je me demandais si cela pouvait être modifié ou s’il y avait une option pour le déplacer d’une barre latérale vers la barre supérieure sous l’en-tête du site, ou peut-être juste sous le logo d’une catégorie ?

Ou si je pouvais obtenir des conseils sur l’ajout de CSS personnalisé pour le déplacer et aussi pour qu’il s’affiche sur mobile comme une barre supérieure collante ? Ancré juste en dessous de la barre principale du site ?

Je comprends peut-être mal le fonctionnement de ce composant de thème, mais serait-il possible de l’utiliser pour afficher la liste des sujets à gauche, cliquer sur un sujet dans la liste, et avoir les messages affichés à droite (et garder la liste des sujets épinglée à gauche) ? Je n’ai pas besoin de voir les catégories. Cela ressemblerait à Flarum.

1 « J'aime »

Non, ce que fait ce composant, c’est qu’il prend le contenu d’un sujet et l’utilise pour remplir une barre latérale pour la liste des sujets d’une catégorie spécifique. Il n’est pas visible lors de la navigation vers un sujet.

D’accord, merci !

Bonjour à tous ! Je viens de fusionner une mise à jour importante pour ce composant qui fait plusieurs choses : FEATURE: include tag sidebars, migrate to objects setting by awesomerobot · Pull Request #22 · discourse/discourse-topic-list-sidebars · GitHub

  • Migre le paramètre de style de liste vers un paramètre d’objet. Cela signifie :
    • Chaque barre latérale peut être configurée pour plusieurs catégories à la fois
    • Vous pouvez maintenant sélectionner des catégories dans la liste déroulante au lieu d’ajouter manuellement des slugs
    • Inclut également une option d’étiquette ! Cela signifie que vous n’aurez plus besoin d’un composant séparé (Discourse Tag Sidebars)

Les paramètres existants devraient migrer automatiquement lors de la mise à jour… à moins que votre slug ne soit différent du nom de la catégorie, auquel cas vous devrez mettre à jour manuellement les paramètres.

Par exemple, site-feedback migrera correctement vers Site Feedback, mais il n’existe aucun moyen de migrer les slugs qui ne correspondent pas aux noms (par exemple, votre slug pour Site Feedback est hamburgers au lieu de site-feedback).

Je vais probablement changer le nom de ce composant de thème et déprécier les barres latérales d’étiquettes pour refléter la nouvelle situation.

5 « J'aime »

Cela migrera-t-il automatiquement les paramètres des tags ?

Avec la nouvelle configuration, peut-il y avoir des barres latérales différentes pour le même tag dans différentes catégories ? Comment les conflits sont-ils résolus ?

2 « J'aime »