如何在站点自定义中利用“在新标签页中打开所有外部链接”设置

啊,对了,我忽略了“用户”部分 :sweat_smile: 对不起

使用用户设置并没有太大区别,您只需更改前两个常量以引用用户:

// 设置 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
 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;
}
2 个赞