스태프 공지 기능에 추가된 새 "추가됨: ..."를 비활성화하는 방법?

안녕하세요
최근 스태프 공지사항에 변경 사항이 생겼는데, 스태프나 관리자가 공지를 추가할 때 "Added by Name-of-staff"라는 문구가 자동으로 추가되는 것을 확인했습니다.

하지만 저희 사용 사례에서는 이 강제적인 'Added by Name’을 포함할 필요가 없거나 원하지 않는 스태프 공지사항이 있습니다:

  1. 특정 스태프가 게시물을 올리지 않은 지 시간이 꽤 지난 경우, "Person hasn’t made their post in a while…etc"와 같은 자동 스태프 공지가 생성됩니다. 또는 첫 게시물인 경우 "Made their first post, welcome them to the community"라는 공지가 생성됩니다. 저는 이 자동 공지를 해당 스태프의 직책과 역할로 변경합니다. 예를 들어, 자동 스태프 공지를 삭제하고 "Person is a Product Manager in the Analytics Team."과 같이 업데이트합니다. 따라서 이 경우 "Person is a Product Manager in the Analytics Team (Added by @gassim)"으로 표시되기를 원하지 않습니다. :cry:
  2. 게시물이 리소스, 슬라이드 또는 녹화본이 포함된 후속 게시물인 경우, 저나 다른 스태프가 리소스 링크를 댓글로 남기며, 그 위에 " :video_camera: Recording"과 같은 스태프 공지를 추가합니다. 이때 " :video_camera: Recording (Added by @gassim)"로 표시되기를 원하지 않습니다.

위 사용 사례에서는 이름을 포함하는 것이 관련이 없습니다. 정말로 누가 스태프 공지를 추가했는지 알아내야 한다면, Data Explorer나 Admin > log > Staff actions - Action: 'add staff note’를 사용할 수 있습니다.

(Added by)를 포함하고 싶다면, 포함하고 싶은 경우에만 수동으로 추가할 수 있습니다.

이 새로운 기능을 비활성화할 방법이 있을까요?

감사합니다!

이 문제를 해결할 설정은 없습니다. 하지만 다음 JavaScript 코드를 사용하면 구현할 수 있습니다:

테마 또는 새 테마 구성 요소에서 JS 탭에 아래 내용을 추가하세요:

import { apiInitializer } from "discourse/lib/api";
import { schedule } from "@ember/runloop";

export default apiInitializer((api) => {
  const current = api.getCurrentUser();
  if (!current || !current.staff) {
    return;
  }

  // Removes anything after the first paragraph 
  // containing the staff notice.
  api.decorateCookedElement((element, helper) => {
    const post = helper?.getModel();
    if (!post || !post.notice) {
      return;
    }

    schedule("afterRender", () => {
      const postNoticeMessage = document.querySelector(
        `article[data-post-id="${post.id}"] .post-notice-message`
      );

      if (postNoticeMessage) {
        postNoticeMessage.replaceWith(postNoticeMessage.firstChild);
      }
    });
  });
});

이 정도면 충분할 것입니다.

이 “추가됨” 표시는 staff(관리자)에게만 표시되므로, 일반 사용자는 이를 볼 수 없습니다.

바스, 좋은 지적이야!