사이트 커스터마이징에서 “외부 링크를 새 탭에서 열기” 설정 활용법

아 맞다, “user” 부분을 놓치고 있었네요 :sweat_smile: 죄송합니다

user 설정을 사용하는 것은 큰 차이가 없으며, 단지 첫 번째 상수 두 개를 user를 참조하도록 변경하면 됩니다:

// user와 target 변수 설정:
const user = api.getCurrentUser()
const target = user?.user_option?.external_links_in_new_tab ? "_blank" : ""

그리고 나머지는 모두 동일합니다.

이것이 core와 더 유사하게 작동하려면, user가 존재하는지 확인하고, 존재하지 않으면 site 설정으로 폴백(fallback)하도록 해야 합니다:

// 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) { // user가 존재하면 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;
}