Page d'accueil personnalisée pour les groupes

Overview

When installed and added to the active theme, this theme component enables you to control the ‘homepage’, allowing it to be different from the set of pages Discourse allows by default, as well as having different groups have different “homepages” (e.g., group members care only or mostly about a particular category). This can be for all users, anon (non-logged in), mobile users, or according to a user’s primary group. Initially developed by @pfaffman. See User-specific Discourse home page.

Use-cases:

  1. You want something other than the ‘normal’ homepage
  2. You want a different homepage for Anonymous users
  3. You want a different homepage for Mobile users
  4. You have a group of folk only interested in using a small slice of your instance. They want to only see their specific category.
  5. Temporarily redirect a group of your punters to a special event or the like.
  6. Have different landing pages for different groups.

Settings

custom default homepage

Allows you to set a global custom homepage.

anon page

This enables you to use a specified page for those who aren’t logged into your site. Over-rides the global one above.

mobile homepage

As per Force Mobile Homepage this allows you to set a different homepage for mobile users. This will override the options chosen above.

group page map

This allows for multiple entries. Each entry should be of the format group_name:path , where group_name is the group slug (not the group Full Name ) and the path is the desired home page (e.g., “/c/great-category/4”).

Ensure that the target users have the specified group denoted as their primary group and you are away. If the theme setting or the user primary group is changed, a reload will be required to have the change take effect.

:warning: The users with a specified group as primary will not be able to reach your ‘normal’ homepage unless you ensure that there is a way for them to do that (such as the native sidebar functionality)

Known Issue - limited to relative URLs

And that doesn’t include Page Publishing, unfortunately. However, you can workaround this by creating a permalink that will redirect to the external site and point to that permalink.

  • @pfaffman tested this with a permalink at /go-google that redirects to https://google.com and something like group-name:/go-google
  • you create Permalinks via the admin settings /admin/customize/permalinks
42 « J'aime »

Ceci est un changeur de groupe de jeu ! :crazy_face:

Bon travail ! TC plutôt puissant…

Nous avons quelques ajustements à l’étape de la PR, abordant ceci :

Et ajoutons également le contrôle de la page d’accueil mobile si vous souhaitez qu’elle soit différente (conformément à Force Mobile Homepage).

Cela augmente considérablement sa puissance, j’espère donc que cela vous plaira.

6 « J'aime »

Bonjour !! C’est génial !! :slight_smile:
Merci beaucoup, c’est en fait important pour mon cas (cas d’utilisation 1).
Je dois demander, à propos de « Les utilisateurs ayant un groupe spécifié comme principal ne pourront pas accéder à votre page d’accueil ‘normale’ », qu’entendez-vous par « fournir activement un moyen pour eux de le faire » ?
De plus, dans la lignée de ce concept, il serait également utile d’afficher sur la page d’accueil un ordre spécifique des catégories en fonction du groupe auquel l’utilisateur appartient. Par exemple, afficher leur catégorie en haut, et toutes les autres en dessous. Pensez-vous que ce soit possible ? (si ce n’est pas déjà le cas ?).

Cela signifie que quelle que soit la page d’accueil que vous définissez dans les paramètres du site, elle sera remplacée. Donc, si vous voulez que les utilisateurs puissent y accéder, vous devrez vous assurer qu’il y a un lien pour y accéder… D’une manière ou d’une autre.

Je n’arrive pas à imaginer comment cela fonctionnerait (peut-être que j’ai une mauvaise imagination :man_shrugging:). Le cas d’utilisation auquel je pense permet aux utilisateurs d’avoir une catégorie différente définie comme page d’accueil s’ils font partie d’un groupe. Comme un site automobile pourrait vous permettre de choisir le groupe Ford comme page d’accueil.

Si vous souhaitez que différents éléments soient disponibles pour différents groupes, je pense que vous le feriez en ayant des catégories muettes par défaut.

1 « J'aime »

Salut Jay !
Merci pour ta réponse :slight_smile:
Disons que je voudrais avoir différentes catégories « épinglées » en haut, en fonction du groupe auquel appartient un utilisateur. Je veux dire, chaque utilisateur différent verrait une catégorie « épinglée » différente. Je ne veux pas cacher les autres catégories à l’utilisateur, juste rendre facilement visible et facilement accessible celle qu’il utilisera le plus, directement depuis la page d’accueil (si possible !).
(Bien sûr, je ne « demande » rien ici, je demande juste si c’est possible avec les paramètres/composants disponibles)

1 « J'aime »

Salut @lisandro_iaffar

J’ai eu exactement le même cas d’utilisation que j’ai posté ici : Showcased Categories - #18 by jrgong

Dans mon cas, j’ai configuré la catégorie client de mon annonceur comme page d’accueil avec ce TC, mais ils l’ont trouvé déroutant et m’ont demandé de le supprimer à nouveau. Par conséquent, je pense que le TC de catégories mises en avant avec une telle modification serait la solution parfaite.

3 « J'aime »

Salut @jrgong ! :slight_smile:
Merci beaucoup de m’avoir dirigé vers ce sujet ! Et oui ! Ce serait parfait ! Je m’y rallie pour soutenir l’idée :muscle:
Merci encore !

Je viens de soumettre une mise à jour qui traite du préchargement du magasin, qui provoquait l’affichage des mauvais sujets au premier chargement.

5 « J'aime »

Salut Jay, j’ai remarqué une erreur après ma dernière mise à jour de Discourse :

1 « J'aime »

Êtes-vous sûr que c’est la version la plus récente sur GitHub ? (Pas votre fork ou une version statique/locale ?) Je viens de lancer une mise à niveau et cela fonctionne. En regardant le code, api n’est utilisé qu’à un seul endroit :

        const user = api.getCurrentUser();

et c’est à l’intérieur d’un bloc qui définit api.

C’est étrange. Je l’ai de toute façon retiré de cette instance car il était excédentaire. Et il semble que cela fonctionne bien après la mise à jour dans une autre instance. Bizarre. Merci d’avoir jeté un œil !

Avez-vous une idée de la façon dont il interagit avec la barre latérale ? Je dois l’essayer car il semble que le problème de besoin d’un chemin de retour vers la page d’accueil du forum ait été résolu par celui-ci.

1 « J'aime »

Je n’ai pas testé, mais je ne vois pas pourquoi pas. Veuillez noter que je n’ai peut-être pas une très bonne imagination.

1 « J'aime »

Je teste cela maintenant, mais j’ai deux commentaires :

  1. Le chemin anonyme ne fonctionne pas pour nous - nécessite-t-il le même format que la carte de groupe ?
  2. Ce serait formidable s’il existait un paramètre par défaut qui s’appliquerait à tout le monde.

1 « J'aime »

Hmm. Je pensais l’avoir testé sur le commit de la liste.

En effet. Je suppose que les personnes qui en avaient besoin n’avaient pas besoin de passer à une page d’accueil non prise en charge.

J’essaierai d’y jeter un œil demain, bien que ce soit peut-être la semaine prochaine.

1 « J'aime »

Pour information, cela a fonctionné pour moi lorsque je l’ai utilisé hier (j’avais tag/featured/ dedans)

Cela fonctionne bien pour moi. Il a seulement besoin du chemin relatif.

Mais j’ai eu le même problème que vous jusqu’à ce que j’aie réellement ajouté le composant au Thème ! L’avez-vous fait ?

Oui, je pensais que cela devait être ajouté. Le voici :

2 « J'aime »

Oui, le même thème fonctionne bien quand je suis connecté, mais pas pour les anonymes. Et juste pour être sûr : l’URL relative doit commencer par un / ? Je demande car Jammy a utilisé tag/featured/ tandis que j’utilise /c/artwork/8.

J’ai réussi à faire fonctionner cela - c’était une erreur de ma part.

Parfait, merci ! Il ne m’apparaît pas encore comme une mise à jour - est-ce que ce devrait être le cas ?

1 « J'aime »

Il est dans mon fork. Vous pouvez l’installer directement vous-même à partir d’ici si vous le souhaitez en attendant que Jay le fusionne :

Fonctionne avec ou sans /

AU FAIT

La façon dont vous l’avez configuré ne fonctionnera pas car les utilisateurs ne peuvent pas avoir de groupes de niveau de confiance comme groupe principal.

En y réfléchissant - est-il ajouté au thème par défaut du site (que les anonymes utilisent) ? J’ai été gêné par l’ajout d’un composant à mon thème ‘dev’ mais pas au thème par défaut.

2 « J'aime »

Ouais, j’ai trouvé l’erreur - c’était lié à ça :facepalm:

2 « J'aime »