يحتوي موقع أتردد عليه على تخصيص لبطاقة المستخدم يتضمن رابطًا لموقع خارجي خاص بكل مستخدم (ملف تعريف مستخدم بشكل أساسي). ومع ذلك، فإن النقر على هذا الرابط يفتح الصفحة في علامة التبويب الحالية، على الرغم من تمكين إعداد “فتح جميع الروابط الخارجية في علامة تبويب جديدة”. هل هناك طريقة للمسؤول للإشارة إلى إعداد المستخدم “فتح جميع الروابط الخارجية في علامة تبويب جديدة” بحيث يتم الالتزام به؟
هل تعرف أي سمة/مكون هو؟ أعتقد أن هذا هو المكان المناسب لطرحه، ربما يمكن تحديثه ليأخذ في الاعتبار إعدادات الموقع. ![]()
افترضت أنها كانت مخصصة، ولكن يمكنني التحقق مع المسؤول.
يبدو أن المسؤول لديه حقل مستخدم مخصص لرابط ملف تعريف المستخدم الخارجي الخاص بالمستخدم ثم قام بإنشاء سمة مخصصة. لقد اتبعوا التعليمات من (Retired) Use an ID in a custom user field to link to a user's external profile. هل يجب أن أسأل هناك فقط عن كيفية استخدام إعداد المستخدم حول الفتح في علامة تبويب جديدة؟
أعتقد أن الأمر يعتمد على ما إذا كنت تريد استخدامه؛ التخصيص لا يأخذه في الاعتبار، على الرغم من أنه يبدو أنه يضيف target بشكل مناسب:
تضمين target='_blank' سيفتح في علامة تبويب/نافذة جديدة بغض النظر عن إعداد الموقع، نظرًا لأنها لا تتفاعل.
في الموقع الذي لا تفتح فيه الروابط في علامات تبويب جديدة، عند التحقق من المصدر، هل تحتوي الروابط على قيمة target هذه؟
إذا أرادوا التحقق من إعدادات الموقع، يمكنهم القيام بشيء كهذا ضمن هذا التخصيص الموجود
// إعداد متغير siteSettings و target:
const siteSettings = api.container.lookup('site-settings:main');
const target = siteSettings.default_other_external_links_in_new_tab ? "_blank" : ""
// تعديل عبارة if حيث يتم إنشاء الرابط لاستخدام متغير target:
if (userFields && userFields[userFieldId]) {
const url = "http://myawesomewebsite.com/user/" + userFields[userFieldId];
const link = `<a href="${url}" target="${target}">${url}</a>`;
return Ember.Object.create({ link, name: externalUserIdField.get('name') });
} else {
return null;
}
هل هناك طريقة للتحقق من إعدادات المستخدم؟ فهمي هو أن إعدادات الموقع هي مجرد الإعداد الافتراضي للمستخدمين الجدد، ولكن من الناحية المثالية، سيأخذ هذا الرابط في الاعتبار التغييرات التي أجراها المستخدمون على إعداداتهم الخاصة. قد يرغب مستخدم واحد في فتحه في نفس علامة التبويب بينما قد يرغب مستخدم آخر في فتحه في علامة تبويب جديدة.
آه صحيح، لقد أغفلت جزء “المستخدم”
آسف
لا يختلف الأمر كثيرًا عن استخدام إعداد المستخدم، سيتعين عليك فقط تغيير الثابتين الأولين للإشارة إلى المستخدم:
// إعداد المتغير user و target:
const user = api.getCurrentUser()
const target = user?.user_option?.external_links_in_new_tab ? "_blank" : ""
وبعد ذلك، سيكون كل شيء آخر هو نفسه.
إذا كان هذا سيعمل بشكل أكبر مثل النواة، فسنقوم بالتحقق مما إذا كان المستخدم موجودًا، وإذا لم يكن كذلك، فسوف نعود إلى إعداد الموقع:
// إعداد المتغير user و siteSettings و target:
const user = api.getCurrentUser()
const siteSettings = api.container.lookup('site-settings:main');
let target = siteSettings.default_other_external_links_in_new_tab ? "_blank" : "";
if (user) { // إذا كان المستخدم موجودًا، قم بتعيين الهدف بناءً على خيار المستخدم
target = user.user_option?.external_links_in_new_tab ? "_blank" : ""
}
// تعديل عبارة if حيث يتم إنشاء الرابط لاستخدام المتغير target:
if (userFields && userFields[userFieldId]) {
const url = "http://myawesomewebsite.com/user/" + userFields[userFieldId];
const link = `<a href="${url}" target="${target}">${url}</a>`;
return Ember.Object.create({ link, name: externalUserIdField.get('name') });
} else {
return null;
}
عملت بشكل مثالي، شكراً!
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.