Accueil de la catĂ©gorie Discourse 🏠

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.

:link: GitHub : Référentiel https://github.com/merefield/discourse-category-home
:arrow_right: Installer : Suivez le guide d’installation de plugin.

Vous appréciez ce plugin ? Merci de le :star: sur GitHub ! :pray:

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 :houses: que vous souhaitez, crĂ©ez-les si elles n’existent pas :
  • Sauf si elles existent dĂ©jĂ , crĂ©ez un groupe distinct pour chacune d’elles
  • Ajoutez les utilisateurs Ă  chacun de ces groupes de maniĂšre appropriĂ©e
  • DĂ©finissez ce groupe comme groupe principal de chaque utilisateur
  • Autorisez chaque groupe Ă  accĂ©der Ă  sa catĂ©gorie respective.

Vous avez TERMINÉ ! :tada:

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

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 :

Il n’y a qu’une seule catĂ©gorie dans la liste, c’est bien ! :+1:

Le cÎté technique

La logique exacte employée est la suivante :

   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 qui nĂ©cessite une configuration plus personnalisĂ©e, mais est moins invasive.

24 « J'aime »

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 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 ?

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 :slight_smile: (mais cela n’a pas causĂ© votre problĂšme).

1 « J'aime »

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.

1 « J'aime »