Je sais déjà que /my/billing/subscriptions est un moyen de lier l’utilisateur actuel à son propre profil utilisateur, en particulier la section de facturation fournie par Discourse Subscriptions. Cependant, cela ne semble pas fonctionner dans mon code ci-dessous, avec l’expression contenue dans la condition if. En particulier, j’essaie de faire en sorte qu’un bouton n’apparaisse que sur la page de facturation de l’utilisateur. En fait, cela ne semble pas fonctionner pour aucune URL de la forme /my, qu’il s’agisse de facturation, de préférences, d’activité ou autre. Est-ce que je fais quelque chose de mal ? Que devrais-je utiliser ? (Gardez à l’esprit que cela ne fonctionne pas uniquement dans la condition if. Sinon, l’utilisation de /my fonctionne et a toujours fonctionné.)
N’est-ce pas parce que les utilisateurs ne se trouvent jamais sur les URL /my/*, car il ne s’agit que de redirections intelligentes ?
Par exemple, /my/preferences me redirigera vers /u/falco/preferences, donc je ne serai jamais sur la page /my/preferences pour que la condition if de votre code se déclenche.
Je vois, vous avez raison. Je comprends pourquoi cela ne conviendrait pas pour un if, car cela ne serait jamais vrai. Alors, que puis-je faire dans ce cas ?
EDIT : Donc, en utilisant console.log, j’ai pu constater que cette approche fonctionne généralement bien. Par exemple, si je mets simplement le code
const user = api.getCurrentUser()
console.log("/u/" + user.username + "/billing/subscriptions")
dans un script, je reçois bien le résultat souhaité /u/Miles/billing/subscriptions.
Cependant, le problème survient lorsque j’essaie de placer cela à l’intérieur de setupComponent(args, component) {}. Dès que je le fais, console.log n’affiche plus rien. Je ne suis toujours pas sûr de ce que je fais de mal…
Je le pensais, car api.onPageChange(url) est déjà utilisé et fonctionne parfaitement. Notez que j’adapte le code de là, il semble donc tout à fait vrai que j’ai accès à l’objet api dans la méthode setupComponent.
Pour plus de précisions, voici ce que j’ai obtenu jusqu’à présent :