Le composant ajoute une section Messages à la barre latérale avec des liens vers les boîtes de réception des messages personnels - à la fois la boîte de réception personnelle de l’utilisateur et toutes les boîtes de réception de groupe auxquelles il a accès. La section comprend également un bouton pour composer un nouveau message personnel à côté du titre de la section.
Par défaut, le composant ajoute un lien vers la boîte de réception personnelle pour tous les utilisateurs. Avec le paramètre show_personal_inbox, les administrateurs peuvent également la masquer complètement ou l’afficher uniquement pour les utilisateurs autorisés à créer des MP en fonction du paramètre du site Personal message enabled groups. Cela reflète la manière dont le lien de la boîte de réception personnelle apparaît dans le menu des notifications, le profil de l’utilisateur et la section Communauté de la barre latérale.
Pour éviter les liens dupliqués vers la boîte de réception personnelle, vous voudrez peut-être supprimer le lien des messages dans la première section de la barre latérale. Vous pouvez le faire en ouvrant le menu Plus et en sélectionnant Personnaliser cette section, puis supprimez le lien Messages de la section.
Boîtes de réception de groupe
Toutes les boîtes de réception de groupe contenant au moins un message et dont l’utilisateur est membre apparaîtront automatiquement dans sa barre latérale. Les administrateurs peuvent masquer des boîtes de réception de groupe spécifiques à l’aide du paramètre hide_group_inboxes, ce qui peut être utile lorsqu’une boîte de réception de groupe n’est plus utilisée activement.
Un paramètre séparé, use_group_page_inbox, vous permet de choisir si les liens de la boîte de réception de groupe s’ouvrent dans l’interface des messages de l’utilisateur (/my/messages/group/{group_name}) ou sur la page du groupe (/g/{group_name}/messages/inbox).
Indicateur de non-lu
Chaque lien de boîte de réception affiche l’état actuel du message en fonction de la préférence de l’utilisateur pour « Afficher un compte des nouveaux éléments » : soit un point soit le compte numérique. Les valeurs supérieures à 100 sont affichées comme 99+.
Position de la section des messages
Pour modifier la position de la section des messages, vous pouvez utiliser du CSS, par exemple
Alternativement, vous pouvez installer le composant Navigation (sidebar) menu display control qui comprend un paramètre pour modifier l’ordre des sections dans la barre latérale. Utilisez « inbox-section » comme nom de section lors de l’ajustement de sa position.
Suggestion mineure : peut-être que javascripts/discourse/api-initializers/group-inboxes-in-sidebar.gjs devrait être un fichier JS au lieu de GJS ?
Excellent composant !
J’ai passé les 10 dernières minutes à parcourir le code et à examiner les classes principales et je dois dire à quel point Discourse a été (et est) conçu de manière remarquable pour que tout s’intègre si bien.
Oui, l’API offre presque tout ce dont vous avez besoin pour que la section ressemble et fonctionne comme toutes les autres. Le chat l’utilise également, ce qui a probablement influencé le développement. Les fonctionnalités ont été développées en même temps.
Malheureusement, get badgeText(), qui affiche le nombre de sujets non lus dans les sections principales, n’est pas pris en charge, j’ai donc dû faire preuve d’un peu de créativité avec les chiffres.
Pourquoi préférez-vous que le lien soit masqué avec du CSS au lieu d’utiliser l’option existante pour les administrateurs afin de personnaliser la barre latérale ? Masquer avec du CSS semble plus susceptible de casser que d’utiliser les options intégrées de Discourse.
Oui, vous l’avez fait. Mais en tant qu’administrateurs, nous avons souvent l’habitude de passer par le panneau d’administration. . Ainsi, lorsque nous parcourons les instructions en diagonale, nous pouvons négliger certains détails.
Même avec les mises à jour du noyau, je suis sûr que beaucoup d’entre nous ne lisent pas toujours tous les détails jusqu’à ce que quelque chose que nous utilisons ait été déplacé vers une autre zone.
Il y a de cela très, très longtemps, avec Android, si ma mémoire est bonne, Gingerbread avait Nav et Maps. J’ai passé environ 10 minutes à chercher Nav après qu’ils l’aient fusionné avec Maps dans une mise à jour.
C’est un excellent Composant de Thème qui convient aux sites qui s’appuient fortement sur les Messages ! Merci @moin pour votre excellent travail !
Afin de l’améliorer encore pour ceux qui utilisent beaucoup les Groupes (les Messages en sont une composante majeure), pourriez-vous envisager ces suggestions ?
Position sélectionnable dans la barre latérale
Afin de mettre davantage l’accent sur les Messages dans l’interface utilisateur, je voudrais qu’ils soient en haut de la barre latérale (c’est-à-dire juste en dessous des liens). En gros, je veux que les gens puissent voir facilement leurs Messages récents (par groupe) en un coup d’œil sans dépendre des notifications.
J’ai utilisé ce CSS pour y parvenir, mais je soupçonne que je ne suis pas le seul pour qui cela serait utile :
/* Assurez-vous que la section Messages apparaît en premier dans le conteneur flexbox */
.sidebar-section-wrapper {
order: 1;
}
.sidebar-section-wrapper[data-section-name="inbox-section"] {
order: 0;
}
Ouvrir les boîtes de réception de groupe dans le contexte du groupe
Je veux que mes utilisateurs puissent facilement trouver et interagir avec leur(s) Groupe(s). Il me semble logique qu’ils travaillent avec les Messages dans la Boîte de réception à laquelle on accède depuis la page du Groupe (c’est-à-dire /g/le-groupe/messages/inbox) au lieu de leur page de Boîte de réception Personnelle (c’est-à-dire /my/messages/group/le-groupe)
Cela leur donne une belle page propre centrée sur le groupe, avec un accès facile aux autres membres du groupe et aux paramètres :
J’y ai réfléchi, quant à savoir quelle voie est un meilleur défaut et un paramètre, mais je l’ai supprimé pour une raison dont je ne me souviens plus pour l’instant. Je vais regarder demain plus tard. Je pense que cela concernait l’indicateur de message non lu. Préféreriez-vous toujours cette voie si la conséquence était qu’il n’y aurait pas d’indicateur pour les messages non lus ?
Je pense que la position actuelle est la même que celle de la section des messages qui était dans le cœur.
Il existe déjà un excellent composant concernant la modification de l’ordre des sections dans la barre latérale : Navigation (sidebar) menu display control
Pour éviter les conflits car les deux composants tentent de remplacer l’ordre, il pourrait être judicieux que les administrateurs qui souhaitent un ordre différent utilisent le composant existant (l’auteur a confirmé que cela fonctionne en utilisant « inbox-section » comme nom de section).
Je devrai voir si je peux proposer un paramètre supplémentaire pour cela. Dans tous les cas, je veux éviter que les composants n’interfèrent les uns avec les autres.
J’ai joué avec cela dans ma fourche, et j’ai trouvé la même chose. Cela fonctionne, mais perd à la fois l’indicateur de message non lu et la mise en surbrillance du lien dans la barre latérale. Ces deux choses ont en effet une grande valeur !
J’ai fait une demande de tirage (PR) pour là où j’en suis arrivé :
Mais pour vraiment décoller, il faut vraiment que l’indicateur de message non lu et la mise en surbrillance du lien fonctionnent, n’est-ce pas ?
Point bien soulevé ! C’est une bien meilleure idée. À ma honte, je suis en fait l’un des auteurs de ce TC !
Pourquoi avez-vous utilisé href au lieu de route ? Je pense que href ne fonctionnait pas du tout avec les indicateurs de non-lu. J’étais plus préoccupé par le fait que les nombres sur la route group.messages.inbox n’étaient pas disponibles de la manière dont vous pouvez les utiliser à userPrivateMessages.
Parce que je suis un développeur nul, et que j’ai essayé un tas de choses jusqu’à ce que quelque chose fonctionne ! Probablement aussi à cause de ma dépendance malsaine à l’IA générative pas si intelligente .
J’ai essayé d’utiliser les routes, mais je n’ai pas réussi à les faire remplacer les routes existantes. J’ai donc abandonné.
Je me demandais s’il était possible d’obtenir ces nombres/comportements, tout en détournant simplement le lien pour qu’il aille vers un autre endroit. Mais c’est un peu complexe pour mon petit cerveau.
N’hésitez pas à l’« améliorer » !
(Au fait, le merveilleux @moin a fait exactement cela, en ajoutant la fonctionnalité - la faisant fonctionner correctement !)