# Accueil de la catégorie Discourse 🏠

**URL:** https://meta.discourse.org/t/discourse-category-home/214227
**Category:** Plugin
**Created:** [Janvier 8, 2022, 10:42 UTC](https://meta.discourse.org/t/discourse-category-home/214227 "2022-01-08T10:42:42Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [Janvier 8, 2022, 10:42 UTC](https://meta.discourse.org/t/discourse-category-home/214227/1 "2022-01-08T10:42:43Z")

</div>

**Résumé** :

Donnez à chaque utilisateur une page d’accueil spécifique (“Catégorie d’accueil”) dans votre communauté.

Cela vous permet d’avoir un seul Discourse dans lequel les utilisateurs ont des “pages d’accueil” spécifiques (lire : Catégorie) déterminées par leur groupe principal.

🔗 **GitHub** : [Référentiel](https://github.com/merefield/discourse-category-home) `https://github.com/merefield/discourse-category-home`  
➡ **Installer** : Suivez le [guide d’installation de plugin](https://meta.discourse.org/t/install-a-plugin/19157).

Vous appréciez ce plugin ? Merci de le ⭐ sur [GitHub](https://github.com/merefield/discourse-category-home) ! 🙏

### Fonctionnalités

En utilisant uniquement les éléments d’interface disponibles d’un Discourse normal, cela en fait une solution robuste et facile à maintenir.

### Configuration

En utilisant la fonctionnalité normale de Discourse :

- Décidez du nombre de “pages d’accueil” de catégorie 🏘 que vous souhaitez, créez-les si elles n’existent pas :
  - [Create a category in Discourse](https://meta.discourse.org/t/how-to-create-a-category-in-discourse/197224?u=merefield)

- Sauf si elles existent déjà, créez un groupe distinct pour chacune d’elles
  - [Creating groups in Discourse](https://meta.discourse.org/t/how-to-create-a-group-in-discourse/197220?u=merefield)

- Ajoutez les utilisateurs à chacun de ces groupes de manière appropriée
- Définissez ce groupe comme groupe principal de chaque utilisateur
  - [Setting a primary group for users](https://meta.discourse.org/t/what-does-selecting-primary-group-for-a-user-do/25857?u=merefield)

- Autorisez chaque groupe à accéder à sa catégorie respective.

Vous avez TERMINÉ ! 🎉

Désormais, chaque fois que quelqu’un naviguera vers la page d’accueil de votre communauté, il sera redirigé vers la catégorie pour laquelle son groupe principal est autorisé.

NB : Ceci suit une règle simple à laquelle vous devez adhérer : **Si quelqu’un a un groupe principal enregistré et que celui-ci est autorisé pour une seule catégorie, il sera redirigé vers cette catégorie comme page d’accueil.**

L’utilisation d’un groupe principal de cette manière présente un certain nombre d’avantages, comme vous l’avez peut-être remarqué dans le lien ci-dessus, notamment :

- Vous pouvez donner un titre à quelqu’un
- Vous pouvez lui donner un Flair
- Vous pouvez styliser ses messages

### Autres considérations

Rendez vos pages d’accueil de catégorie plus percutantes en les stylisant de manière distincte, par exemple avec : [Category Banners](https://meta.discourse.org/t/discourse-category-banners/86241?u=merefield)

### Vérification des autorisations distinctes de catégorie/groupe principal

Pour vérifier que votre groupe principal n’est associé qu’à une seule catégorie, vous pouvez utiliser cette fonctionnalité intégrée pratique de Discourse, par exemple :

 ![image](https://global.discourse-cdn.com/meta/original/3X/b/6/b6c766046a9f88d83b2816d3723e52ae5698373c.png)

Il n’y a qu’une seule catégorie dans la liste, c’est bien ! 👍

### Le côté technique

La logique exacte employée est la suivante :

```plaintext
   return CategoryGroup.where(group_id: primary_group).first.category_id

```

Bien qu’il soit possible de le “truquer”, il est probablement déconseillé si vous utilisez ce groupe principal dans plus d’une catégorie si vous vous attendez à ce que cela fonctionne, alors gardez cela à l’esprit et suivez ma recommandation.

### Offrir plus de flexibilité

Je suis ouvert aux suggestions sur la manière de configurer ce comportement, mais j’aimerais limiter la quantité de paramètres personnalisés et utiliser autant de comportements et de données prêts à l’emploi que possible. Si vous avez une solution simple et élégante en tête, faites-le moi savoir.

### Impossible d’installer des plugins / La chose du groupe principal ne fonctionne pas pour vous ?

Si vous ne pouvez pas installer de plugins (parce que vous êtes sur un plan d’hébergement restrictif), ou si la configuration du groupe principal ne vous convient pas, envisagez cette alternative de composant de thème : [Custom Homepage for Groups](https://meta.discourse.org/t/custom-homepage-for-groups/199623) qui nécessite une configuration plus personnalisée, mais est moins invasive.

---

<div class="post-metadata">

### Author: ![Drew-ART](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@Drew-ART](https://meta.discourse.org/u/Drew-ART)
#### Post date: [Novembre 27, 2023, 5:57 UTC](https://meta.discourse.org/t/discourse-category-home/214227/2 "2023-11-27T05:57:47Z")

</div>

J’ai un message d’erreur lorsque j’essaie de reconstruire après avoir ajouté ceci à mon fichier app.yml

> Pups::ExecError: cd /var/www/discourse/plugins & git clone [GitHub - merefield/discourse-category-home: Alters the user's homepage to become the Category of their Primary Group](https://github.com/merefield/discourse-category-home) a échoué avec le retour #\<Process::Status: pid 391 exit 128\>  
> Emplacement de l’échec : /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec\_command.rb:132:in `spawn’

Est-ce que cela fonctionne toujours pour les autres ?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [Novembre 27, 2023, 9:05 UTC](https://meta.discourse.org/t/discourse-category-home/214227/3 "2023-11-27T09:05:33Z")

</div>

Semble compiler correctement. Vérifiez la syntaxe de clonage de votre `app.yml`.

J’ai déployé un correctif pour une chaîne de localisation manquante 🙂 (mais cela n’a pas causé votre problème).

---

<div class="post-metadata">

### Author: ![Drew-ART](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@Drew-ART](https://meta.discourse.org/u/Drew-ART)
#### Post date: [Novembre 27, 2023, 1:00 UTC](https://meta.discourse.org/t/discourse-category-home/214227/4 "2023-11-27T13:00:18Z")

</div>

Oui, ça fonctionne très bien maintenant, merci pour cet excellent plugin. Discourse Doctor l’a résolu, il devait y avoir un problème dans la compilation la dernière fois que j’ai reconstruit l’application.
