Je crains que cela ne soit pas possible.
Ces propriétés n’ont pas de setters ; même si elles en avaient, vos modifications ne s’appliqueraient que temporairement dans la première fenêtre. Une fois que l’utilisateur visite le deuxième onglet, les données seront basées sur ce qui est stocké dans la base de données. Les thèmes n’ont pas accès au backend ; ils ne peuvent modifier que le frontend.
Ce que vous pouvez faire, c’est ajouter un hachage à votre lien et le vérifier comme ceci.
import { withPluginApi } from "discourse/lib/plugin-api";
import bootbox from "bootbox";
export default {
name: "first-login-bootbox",
initialize() {
withPluginApi("0.8", api => {
const user = api.getCurrentUser();
if (!user) return;
if (
!user.read_first_notification &&
!user.enforcedSecondFactor &&
!window.location.hash
) {
const text = `Lorem ipsum dolor sit amet <a href="http://localhost:3000/new-topic#some-hash" target="_blank">Lien</a>, consectetur adipiscing elit, sed do eiusmod tempor`;
bootbox.alert(text);
}
});
}
};
Je ne sais pas si le lien vers “/new-topic” dans votre message était juste un exemple ou si c’est ce que vous souhaitez faire. Si c’est le résultat souhaité, alors vous avez un autre problème. Même si la boîte bootbox n’est pas affichée sur la page avec le hachage, ils verront toujours ceci…
…et le compositeur ne s’ouvrira pas, ce qui est logique car il est très inattendu pour un utilisateur de commencer à rédiger un sujet dès sa toute première vue de page.
Pourrais-je savoir ce que vous essayez d’accomplir ici ? Cherchez-vous à informer l’utilisateur d’une chose ou d’une autre ?
La manière dont j’ai vu cela être fait sur d’autres sites consiste à modifier le message de bienvenue, mais si c’est une option, il existe des alternatives.
Voici ce que je suggère :
- Créez un sujet et ajoutez-y toutes les informations que vous souhaitez.
- Publiez ce sujet.
- Liez ce sujet dans la boîte bootbox et ouvrez ce lien dans un nouvel onglet.
De cette façon, lorsque l’utilisateur cliquera sur le lien, il verra quelque chose comme ceci (sans la superposition)
Une fois qu’il aura terminé sur cette page, il pourra revenir au premier onglet, fermer la boîte bootbox, lire la première notification, puis continuer à utiliser le site.
De cette manière, vous n’avez même pas besoin d’ajouter ou de vérifier un hachage. Voici un exemple de snippet :
import { withPluginApi } from "discourse/lib/plugin-api";
import bootbox from "bootbox";
export default {
name: "first-login-bootbox",
initialize() {
withPluginApi("0.8", api => {
const user = api.getCurrentUser();
if (!user) return;
if (!user.read_first_notification && !user.enforcedSecondFactor) {
const text = `Lorem ipsum dolor sit amet <a href="http://my.site.com/pub/bentley-flying-spur-s-production-milestone" target="_blank">Lien</a>, consectetur adipiscing elit, sed do eiusmod tempor`;
bootbox.alert(text);
}
});
}
};