أخشى أن هذا غير ممكن.
هذه الخصائص لا تحتوي على دوال تعيين (setters)؛ وحتى لو كانت تحتوي عليها، فإن تغييراتك ستُطبَّق مؤقتًا فقط في النافذة الأولى. بمجرد زيارة المستخدم للعلامة التبويب الثانية، ستُستند البيانات إلى ما هو مخزن في قاعدة البيانات. لا تملك السمات (Themes) وصولًا إلى الخلفية؛ فهي تستطيع تغيير الواجهة الأمامية فقط.
ما يمكنك فعله هو إضافة تجزئة (hash) إلى رابطك والتحقق منها كما يلي:
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">رابط</a>, consectetur adipiscing elit, sed do eiusmod tempor`;
bootbox.alert(text);
}
});
}
};
لست متأكدًا مما إذا كان ربط "
/new-topic" في منشورك مجرد مثال أم أنه ما تريد فعله. إذا كان هذا هو النتيجة المرجوة، فإن لديك مشكلة أخرى. حتى لو لم يتم عرض نافذة Bootbox في الصفحة التي تحتوي على التجزئة، فسيظل المستخدم يرى هذا…
… ولن يفتح المُنشئ (composer)، وهو أمر منطقي لأن من غير المتوقع أن يبدأ المستخدم بكتابة موضوع في أول صفحة يزورها مباشرةً.
هل لي أن أسأل ما الذي تحاول تحقيقه هنا؟ هل تحاول إبلاغ المستخدم بشيء معين أم بأشياء أخرى؟
الطريقة التي رأيتها تُطبَّق في مواقع أخرى هي تعديل رسالة الترحيب، ولكن إذا كانت هذه الخيار متاحًا، فهناك بدائل.
إليك ما أقترحه:
- أنشئ موضوعًا وأضف جميع المعلومات التي تريدها هناك.
- انشر هذا الموضوع.
- اربط بهذا الموضوع داخل نافذة Bootbox وافتح هذا الرابط في علامة تبويب جديدة.
بهذه الطريقة، عندما ينقر المستخدم على الرابط، سيرى شيئًا مثل هذا (بدون الطبقة العلوية):
بمجرد انتهائه من تلك الصفحة، يمكنه العودة إلى العلامة التبويب الأولى، إغلاق نافذة Bootbox، قراءة الإشعار الأول، ثم مواصلة استخدام الموقع.
بهذه الطريقة، لن تحتاج حتى إلى إضافة أو التحقق من وجود تجزئة. إليك مثالًا على مقتطف الكود:
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">رابط</a>, consectetur adipiscing elit, sed do eiusmod tempor`;
bootbox.alert(text);
}
});
}
};

