Temo che non sia possibile.
Queste proprietà non hanno setter; anche se li avessero, le tue modifiche si applicherebbero solo temporaneamente nella prima finestra. Una volta che l’utente visita la seconda scheda, i dati saranno basati su ciò che è memorizzato nel database. I temi non hanno accesso al backend; possono modificare solo il frontend.
Quello che puoi fare è aggiungere un hash al tuo link e controllarlo in questo modo.
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">Link</a>, consectetur adipiscing elit, sed do eiusmod tempor`;
bootbox.alert(text);
}
});
}
};
Non sono sicuro se collegare a “/new-topic” nel tuo post fosse solo un esempio o se fosse ciò che vuoi fare. Se è il risultato desiderato, allora hai un altro problema. Anche se il bootbox non viene visualizzato sulla pagina con l’hash, vedranno comunque questo…
…e il compositore non si aprirà, il che ha senso dato che è molto inaspettato per un utente iniziare a scrivere un argomento sulla sua prima visualizzazione di pagina.
Posso chiederti cosa stai cercando di ottenere qui? Stai cercando di informare l’utente di una cosa o dell’altra?
Il modo in cui ho visto questo fatto su altri siti è modificare il messaggio di benvenuto, ma se è un’opzione, ci sono alternative.
Ecco cosa suggerisco:
- crea un argomento e aggiungi tutte le informazioni che desideri lì
- pubblica quell’argomento
- collega quell’argomento nel bootbox e apri quel link in una nuova scheda.
In questo modo, quando l’utente clicca sul link, vedranno qualcosa di simile a questo (senza l’overlay)
Una volta finito con quella pagina, possono tornare alla prima scheda, chiudere il bootbox, leggere la prima notifica e poi continuare a usare il sito.
In questo modo, non hai nemmeno bisogno di aggiungere/controllare un hash. Ecco un esempio di 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">Link</a>, consectetur adipiscing elit, sed do eiusmod tempor`;
bootbox.alert(text);
}
});
}
};