Page d'accueil personnalisée pour les groupes

[citation=“Moin, post:82, sujet:199623”]
ces paramètres ne sont plus référencés dans le code, mais font toujours partie de settings.yml.
[/citation]

Ah ! Désolé. J’ai raté ça.

Hmm. Oui. Je me demande pourquoi j’ai supprimé la prise en charge de ceux-ci. Je pense que vous pouvez peut-être les modifier dans le noyau maintenant ?

Je vais voir si c’est dans le noyau, et si c’est le cas, supprimer ces paramètres.

Ou peut-être que quelque chose s’est produit dans le noyau qui a cassé ces changements. Je vais voir ce que je peux comprendre. . . .

3 « J'aime »

Je ne suis toujours pas sûr de pourquoi j’avais supprimé la prise en charge des pages d’accueil par défaut et anonymes auparavant. Je les ai remises.

Maintenant, s’il y a un custom_default_homepage, il l’utilise à moins qu’il n’y ait une correspondance de groupe. S’il y a une anon_page et que l’utilisateur est anonyme, il l’utilise.

Je n’ai pas réussi à déterminer comment ni quand la page mobile devrait être définie (est-ce pour les utilisateurs anonymes ? tous les utilisateurs ? est-ce que cela remplace la page par défaut ? la carte de groupe ?), alors je l’ai supprimée. Si vous utilisez cette page mobile, dites-moi ce que vous pensez qu’elle devrait remplacer (je pense peut-être la définir comme page par défaut s’ils sont sur mobile, mais s’il y a une page de groupe, alors l’utiliser ? Toujours pas clair sur ce qu’il faut faire pour les utilisateurs anonymes par rapport aux connectés – je suppose qu’il faut peut-être des versions mobiles pour chacun d’eux ?).

Voici le code :

      let url = null;

      if (settings.custom_default_homepage) {
        url = settings.custom_default_homepage.replace(/^\/+/g, "");
      }

      if (user) {
        if (user.primary_group_name 												&& settings.group_page_map) {
          let groupMap = settings.group_page_map.replace(",", ":").split("|");
          const mapEntry = groupMap.find((value) =>
            RegExp(user.primary_group_name).test(value)
          );
          if (mapEntry) {
            url = mapEntry.split(":")[1].replace(/^\/+/g, "");
          }
        }
      } else if (settings.anon_page) {
        url = settings.anon_page.replace(/^\/+/g, "");
      }

Et puis cela change la page d’accueil seulement si url a une valeur.

8 « J'aime »

Ce composant de thème est-il destiné à rediriger n’importe quel membre du groupe vers la page d’accueil lors de la connexion ou en utilisant les liens ? Je l’ai installé, et le logo redirige bien vers la page sélectionnée, mais lors de la connexion, l’utilisateur est toujours redirigé vers la page par défaut /latest. Si cela gère cette redirection de connexion, je dois encore avoir quelque chose de mal configuré. Mon objectif est que tous les utilisateurs soient inclus dans un groupe par défaut et que tous soient redirigés vers une page alternative lors de la connexion.

Il faut que ce soit leur groupe Principal pour que ce TC s’active. C’est intentionnel, afin qu’il n’y ait pas de conflit lorsqu’un utilisateur est membre de plusieurs groupes avec une redirection.

2 « J'aime »

Le niveau de confiance 0 est-il considéré comme un groupe valide ? Serait-ce le bon réglage pour la carte de page de groupe (Group Page Map) ? trust_level_0:/discourse-ai/ai-bot/conversations. C’est le réglage actuel que j’ai défini.

Non, les groupes de niveaux de confiance ne peuvent pas être utilisés car ils ne peuvent pas être définis comme primaires. Vous pourriez contourner cela en utilisant le plugin de groupes dynamiques pour créer un groupe miroir si cela est vital pour vous.

3 « J'aime »

Avez-vous essayé de définir la page d’accueil personnalisée pour tout le monde sur votre page de bot IA, puis de définir la page d’accueil pour les utilisateurs anonymes sur les plus récents ?

1 « J'aime »

Ah. OK. Je pense qu’une version différente de ceci m’a été envoyée dans ma notification par e-mail. J’aime mieux cette réponse. :slight_smile:

2 « J'aime »

Je m’en doutais ! Tu utilises encore les notifications par e-mail ?? C’est un peu préhistorique, Jay !

2 « J'aime »

Par « tout le monde », j’entendais « global », pas le pseudo-groupe. Je vais modifier mon message pour qu’il ne soit pas trompeur.

2 « J'aime »

Je suis très vieux. Et d’ailleurs, je suis connecté à meta pour pas grand-chose de plus de 10 heures par jour, et je ne veux rien manquer !

5 « J'aime »

Tout d’abord, merci à tous d’avoir participé et d’avoir aidé à résoudre ce problème ! C’est très apprécié !

C’est un casse-tête pour moi.

J’ai installé ce plugin sans aucun problème et j’ai défini trust_level_0 dans les paramètres pour en faire le groupe principal. Tous les membres du site ont été ajoutés au groupe. Tous les utilisateurs ont maintenant ce groupe comme groupe principal.

Dans les paramètres du composant “Custom Homepage for Groups”, voici ce que j’ai configuré.

Lors de l’accès à la page, les utilisateurs du groupe principal “Community-Core” atterrissent toujours sur /latest. Si je change la page Anon pour autre chose que /latest lors de la connexion, les utilisateurs verront la page affichée dans ce champ, c’est donc la redirection qui se produit.

J’utilise le thème Canvas Screen et je suis passé au thème par défaut pour tester avec le même résultat.

J’ai également désactivé tous les composants de thème et plugins pour voir si cela aidait, sans succès.

Je pense que soit il me manque quelque chose qui pourrait être évident pour d’autres, soit il pourrait y avoir un problème avec le composant.

Avez-vous regardé dans l’inspecteur et vu le groupe principal dans la balise body ?

Jay, je ne suis vraiment pas sûr de l’inspecteur pour ça ?

Les utilisateurs apparaissent dans le groupe et ont le même indicateur sur leurs profils que le mien dans cette image.

Lorsque vous faites un clic droit sur votre site et sélectionnez “Inspecter”, vous pouvez voir ce que pfaffman demande.
Par exemple, je vois ceci sur ma page d’administration utilisateur (/admin/users/{user_id}/{username})


Et comme il s’agit de mon compte, lorsque je fais un clic droit et que je sélectionne “Inspecter”, je vois

Là, vous pouvez voir “testgroup” dans le <body >

C’est ce que je voulais dire, mais je me souviens/vois maintenant que le composant obtient le groupe principal du modèle utilisateur, pas du CSS.

Alors, peut-être trouver un utilisateur dans la route utilisateur admin, et ajouter .json à l’URL. Ensuite, vérifiez quel est son groupe principal et recherchez (dans le navigateur) primary_group: true et vérifiez que le nom correspond exactement à la casse que vous avez utilisée dans la configuration du thème.

2 « J'aime »

Bonjour à tous,

Merci pour ces précisions. J’ai suivi ces instructions et utilisé l’URL .json pour confirmer le nom exact du groupe.

Le nom du groupe principal est bien Community-Core, avec les majuscules et le trait d’union, ce qui correspond exactement à ce que j’ai saisi dans les paramètres du composant de thème.

Malheureusement, cela ne fonctionne toujours pas. La redirection de la page Anon est toujours active. Le problème doit donc être autre.

D’autres personnes peuvent-elles confirmer que cela fonctionne pour elles ?

Avez-vous d’autres idées de ce que je pourrais vérifier ?

Non. Si cela va sur la page anon et non sur la “page d’accueil par défaut personnalisée”, alors il ne trouve pas l’utilisateur lorsqu’il fait

      const user = api.getCurrentUser();

Je ne sais pas comment cela pourrait se produire si l’utilisateur est effectivement connecté.

Ah, avez-vous essayé de recharger la page ?

1 « J'aime »

Merci Jay, j’ai essayé de recharger. J’ai essayé de nombreux ajustements aux URL et similaires. Cela charge définitivement la page Anon. Si je change cela, cela va à cette page et montre également /latest dans l’URL du navigateur.

J’ai cherché et suppose qu’il n’y a pas d’autre moyen de simplement rediriger. C’était plus facile avec les sites PHP. Je suis toujours novice avec Discourse.

C’est un scénario de cas limite très étrange et qui entre dans le domaine où l’on fait faire à Discourse quelque chose pour lequel il n’est pas conçu.