Aide pour rediriger l'utilisateur vers du contenu protégé

Continuant la discussion de Sujets restreints dans une catégorie :

J’essayais de modifier le composant restreint pour rediriger l’utilisateur vers une page spécifique au lieu d’afficher une restriction.

1
J’ai essayé DiscourseURL.routeTo('/t/table-builder-test-2/1667') dans le créateur de thème, cela fonctionne mais prend du temps et génère des erreurs au chargement, bien que la page soit chargée avec succès.

2
J’ai aussi essayé avec setDefaultHomepage('/t/table-builder-test-2/1667'); et

      const container = Discourse.__container__;
      const router = container.lookup("router:main");

      let topicId = router.currentRoute.parent.params.id

      PreloadStore.remove(`topic/${topicId}`);

Cela ne redirige qu’après le chargement de la page restreinte, puis en cliquant sur le bouton retour.

3
location.href = '/t/table-builder-test-2/1667'

Cela fonctionne, mais les pages restreintes se chargent également pendant quelques secondes, contrairement à 1 qui le fait en douceur.

Quelle est la meilleure façon d’y parvenir ?

Mon thème Page d’accueil personnalisée modifie la page d’accueil. L’astuce est que certaines choses sont préchargées et vous devez faire quelque chose pour les faire disparaître.

J’espère que vous pourrez trouver l’exemple dans le code, car c’est la meilleure façon de l’expliquer depuis mon téléphone. :person_shrugging:

1 « J'aime »

J’ai essayé avec

let topicId = router.currentRoute.parent.params.id
PreloadStore.remove(`topic/${topicId}`);

mais ça ne fonctionne pas. Avons-nous une documentation sur le fonctionnement de la méthode PreloadStore.remove ?