Crius
(Crius)
2월 22, 2023, 1:08오후
1
이 기능을 비활성화할 옵션을 찾고 있습니다. 다른 카테고리마다 다른 모더레이터 팀이 있을 때, 사전 통보 없이 갑자기 해당 카테고리에 크거나 논란이 되는 스레드가 생길 수 있기 때문에 스레드 관리에 복잡성이 생길 수 있기 때문입니다.
Access rights for moving a topic to another category 의 내용을 읽었는데, 이 작업은 Trust Level 3 사용자만 수행할 수 있다고 되어 있습니다. 하지만 테스트 환경에서는 Trust Level 2 사용자가 이 작업을 수행할 수 있었습니다.
“스태프가 게시물을 편집한 후 편집 비활성화” 옵션을 활성화해 보았지만, 스레드의 카테고리를 변경하는 기능에는 영향을 미치지 않는 것 같습니다.
무엇을 놓치고 있는 걸까요? 아마도 제가 놓치고 있는 것 같습니다
Heliosurge
(Dan DeMontmorency)
2월 22, 2023, 5:17오후
2
테스트를 해야 할 것 같습니다. 카테고리 그룹 모드가 편집이나 이동 명령을 통해 주제를 이동할 수 있을 수도 있습니다.
Customization > Plugin 커스텀 신뢰 수준도 살펴보는 것이 좋습니다.
Crius
(Crius)
2월 22, 2023, 6:01오후
3
확인해 보았으며, 이 점을 고려하겠습니다. 하지만 먼저 스태프를 제외하고는 편집 시 해당 선택 항목을 숨기는 간단한 컴포넌트를 만들어 보려고 합니다.
단순한 기능을 수행하는 플러그인을 선호합니다
Heliosurge
(Dan DeMontmorency)
2월 22, 2023, 6:25오후
4
@Canapin 님이 지정된 그룹에 속하지 않는 그룹에서 좋아요 버튼을 숨기는 코드를 제공해 주셨습니다.
이 코드를 기반으로 작업을 시작해 보시면 좋은 출발점이 될 수 있습니다.
You can hide the like button with CSS, but that won’t prevent users from liking posts (a plugin would be required to ensure that), if they figure out how to un-hide the button for example.
I suppose the easiest way would be using CSS Classes for Current User's Groups which adds the current user groups to the body classes, then use CSS such as:
body.category-your-category-slug:not(.group-group_name) {
button.like {
display: none;
}
}
Let me know if you have trouble understandi…
링크 수정됨
Crius
(Crius)
2월 22, 2023, 6:47오후
5
@Heliosurge (그리고 어디서나 보이는 @Canapin ) 정말 감사합니다. 비슷한 플러그인을 찾아서 예제로 참고할 곳이 어디인지 막 생각하고 있었거든요
Heliosurge
(Dan DeMontmorency)
2월 22, 2023, 6:49오후
6
Crius
(Crius)
2월 22, 2023, 7:39오후
7
한번 살펴봤는데, 좋은 MVP입니다. 다만 제가 찾는 커뮤니티는 기술에 매우 밝아서, 단순히 화면에서 숨기는 것보다 DOM이 해당 컴포넌트를 완전히 렌더링하지 않는 것이 더 나을 것 같습니다.
이를 위해 플러그인이 필요한가요, 아니면 컴포넌트로 어떻게든 구현할 수 있는 건가요?
구체적으로는 역할(role)에 따라 해당 select의 HTML이 생성되는지 여부를 판단해야 합니다.
Canapin
(Coin-coin le Canapin)
2월 22, 2023, 10:56오후
9
저는 코더가 아닙니다.
첫 번째 게시물을 수정할 때(제목 수정이 아닌 게시물 수정 작업에서) 카테고리 선택기를 숨기려면 다음 코드가 작동합니다:
<script type="text/discourse-plugin" version="1.6.0">
let currentUser = api.getCurrentUser();
api.modifyClass("component:composer-title", {
pluginId: "PreventCategoryChange",
didInsertElement: function() {
if(currentUser.trust_level == 1) {
let categoryInput = document.getElementsByClassName('category-input')[0];
let miniTagChoser = document.getElementsByClassName('mini-tag-chooser')[0];
if(categoryInput != null) {
categoryInput.remove();
if(miniTagChoser != null) {
miniTagChoser.style.marginLeft = '0';
}
}
}
}
});
</script>
저는 신뢰 수준(trust level)을 사용했지만, currentUser 객체 안에 모두 들어 있으므로 사용자 그룹을 확인하도록 수정할 수 있을 것 같습니다.
제목을 수정할 때 카테고리 선택기를 동적으로 제거하는 방법은 모르겠습니다.
아래와 같이 관련이 있어 보이는 파일들에서 방법을 찾아보실 수 있을 것 같습니다:
discourse/app/assets/javascripts/discourse/app/templates/topic.hbs at 53695e7d29e718041fa53bf4fef21e02354a4088 · discourse/discourse · GitHub
discourse/app/assets/javascripts/discourse/app/controllers/topic.js at 8fc11215e195a5bd8db130f52717c126c119432b · discourse/discourse · GitHub
Crius
(Crius)
2월 23, 2023, 12:30오전
10
@Canapin 정말 감사합니다!
제목 편집에 대해서도 무언가를 추가해야겠지만, 이미 이것만으로도 충분히 도움이 됩니다
완성되면 다른 분들도 사용할 수 있도록 여기서 테마 컴포넌트 섹션에 공유하겠습니다
Crius
(Crius)
2월 23, 2023, 12:35오전
11
Crius
(Crius)
2월 23, 2023, 4:27오후
12
신들의 사랑으로, 제목 편집이 트리거되는 시점을 감지할 수 있는 훅(hook)을 도저히 찾을 수가 없어요. 제가 무엇에 리스닝(listen)을 해야 하는지 아시는 분 계신가요?
토픽의 첫 번째 메시지를 편집할 때 카테고리 변경이 숨겨지는 기능은 정상적으로 작동하거든요. 편집 모드일 때만 감지하는 방식이니까요.
Crius
(Crius)
2월 24, 2023, 10:08오전
13
잠 못 드는 좋은 친구 덕분에 올바른 훅을 어디에서 찾아야 하는지 알아냈습니다
바로 이거예요. 폼의 시각적 요소도 조정하고, 카테고리 편집 접근이 허용되는 최소 신뢰 수준을 선택할 수 있게 해줍니다 (디스커스 기본 설정과 일치하도록 기본 신뢰 수준 0으로 설정됨)
Contribute to netgamers-forum/discourse-restrict-edit-category development by creating an account on GitHub.
이제 Customization > Plugin 섹션에서 새 주제를 만들러 가볼게요.
처음에 올바른 방향으로 이끌어주셔서 정말 감사합니다 @Canapin
Canapin
(Coin-coin le Canapin)
2월 24, 2023, 10:25오전
14
코드를 확인해 보았는데, 정말 잘하셨네요
제가 여러분에게서 더 많이 배운 것 같습니다!
참고로, 여러분이 만든 것은 #customization:theme-component이지 #customization:plugin이 아닙니다
참고로, trusted users can edit others가 활성화된 상태라면 TL3과 TL4 사용자는 어떤 주제도 재분류할 수 있습니다. TL0/1/2 사용자는 자신의 주제에서만, 그리고 자신의 편집 기간 내에만 이 작업을 수행할 수 있습니다. ^(TL0과 TL1은 post edit time limit으로, TL2와 TL3은 tl2 post edit time limit으로 설정됩니다) 첫 번째 게시물을 게시물 렌치(post wrench)로 잠가두면 카테고리(그리고 제목 및 태그) 편집도 방지되어야 합니다.
사용 사례를 100% 정확히 파악하고 있는지는 모르겠지만, 해결책을 찾았으니 다행입니다.
Canapin
(Coin-coin le Canapin)
2월 24, 2023, 12:31오후
16
아, 네, 이 옵션에 대해 몰랐습니다:
이 옵션은 카테고리 모더레이터도 포함하여 어떤 수정도 방지합니다(삭제만 가능).
하지만 첫 게시물 잠금은 토픽 타이머나 자동화 작업 을 통해 자동화할 수 없습니다.
Crius
(Crius)
2월 24, 2023, 8:34오후
17
네, 그 점은 알고 있었습니다.
다만, 제 의도는 카테고리를 오가는 일이 여러 번 발생하면, 어떤 주제가 처음에는 한 카테고리에 있다가 나중에 다른 카테고리로 이동하는 등의 상황이 반복되어 관리가 복잡해질 수 있기 때문에, 이를 방지하는 것이었습니다.
Canapin
(Coin-coin le Canapin)
2월 24, 2023, 9:22오후
18
테마 컴포넌트이므로 추가하는 것이 중요할 것 같습니다. 사용자가 JavaScript를 주입하여(아마도) 이 제한을 우회하거나, 사용 가능한 경우 안전 모드를 활성화할 수 있기 때문입니다(enable safe mode 설정 참조).
더 안전한 방식으로 구현하려면 플러그인이 필요합니다.
Crius
(Crius)
2월 27, 2023, 4:55오후
19
네, 그래서 플러그인도 살펴보고 있었지만, 첫 버전이라면 컴포넌트로 충분합니다.