Crius
(Crius)
2023 年 2 月 22 日午後 1:08
1
この機能は、カテゴリごとに異なるモデレーターチームがあり、突然、事前の通知なしに大きな、または論争の的となるスレッドが自分のカテゴリに入ってくる場合に、スレッドの管理に複雑さをもたらす可能性があるため、無効にするオプションを探しています。
Access rights for moving a topic to another category を読みましたが、これはトラストレベル3のみができることだと書かれています。テスト環境では、トラストレベル2のユーザーがそれを実行できました。
「スタッフが投稿を編集した後の編集を無効にする」を有効にしてみましたが、スレッドのカテゴリを変更する能力には影響しないようです。
何か見落としていることはありますか?おそらく見落としています
「いいね!」 2
Heliosurge
(Dan DeMontmorency)
2023 年 2 月 22 日午後 5:17
2
テストが必要になるでしょう。カテゴリグループのMODは、編集や移動コマンドでトピックを移動できる可能性があります。
また、Plugin Custom Trust Levelsについても調べることをお勧めします。
Crius
(Crius)
2023 年 2 月 22 日午後 6:01
3
それを確認し、考慮に入れますが、まずは編集用のその選択肢を非表示にするシンプルなコンポーネントを作成してみます。スタッフ以外は非表示になります。
シンプルなことをするプラグインが好きです
「いいね!」 1
Heliosurge
(Dan DeMontmorency)
2023 年 2 月 22 日午後 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…
リンクを修正しました。
「いいね!」 2
Crius
(Crius)
2023 年 2 月 22 日午後 6:47
5
@Heliosurge (そして、どこにでもいる @Canapin )本当にありがとう。ちょうど例として同様のプラグインを探せる場所を考えていました
「いいね!」 2
Heliosurge
(Dan DeMontmorency)
2023 年 2 月 22 日午後 6:49
6
「いいね!」 2
Crius
(Crius)
2023 年 2 月 22 日午後 7:39
7
見てみましたが、良いMVPだと思います。しかし、私が探しているコミュニティはかなり技術に精通しているので、コンポーネントを単に非表示にするのではなく、DOMがそのコンポーネントを描画しないようにする方が良いでしょう。
プラグインが必要ですか、それともコンポーネントで達成できることですか?
大まかに言うと、ロールに基づいて、そのセレクトのHTMLが生成されているかどうかを判断する必要があります。
「いいね!」 1
Canapin
(Coin-coin le Canapin)
2023 年 2 月 22 日午後 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>
トラストレベルを使用しましたが、currentUserオブジェクトにすべて含まれているため、代わりにユーザーグループを管理できると思います。
タイトルを編集する際にカテゴリセレクターを動的に削除する方法がわかりません。
関連していると思われるファイルから推測できるかもしれません。
import Category from "discourse/models/category";
import Controller, { inject as controller } from "@ember/controller";
import DiscourseURL, { userPath } from "discourse/lib/url";
import { alias, and, not, or } from "@ember/object/computed";
import discourseComputed, {
bind,
observes,
} from "discourse-common/utils/decorators";
import { isEmpty, isPresent } from "@ember/utils";
import { next, schedule } from "@ember/runloop";
import discourseLater from "discourse-common/lib/later";
import Bookmark, { AUTO_DELETE_PREFERENCES } from "discourse/models/bookmark";
import Composer from "discourse/models/composer";
import EmberObject, { action } from "@ember/object";
import I18n from "I18n";
import Post from "discourse/models/post";
import { Promise } from "rsvp";
import QuoteState from "discourse/lib/quote-state";
import Topic from "discourse/models/topic";
import TopicTimer from "discourse/models/topic-timer";
This file has been truncated. show original
「いいね!」 2
Crius
(Crius)
2023 年 2 月 23 日午前 12:30
10
@Canapin様 、本当にありがとうございます。
タイトルからの編集についても追加する必要がありそうですが、これはすでに大変役立ちます
完了したら、テーマコンポーネントセクションに投稿しますので、他の人も利用できるようになります
「いいね!」 2
Crius
(Crius)
2023 年 2 月 23 日午前 12:35
11
This discourse/app/assets/javascripts/discourse/app/templates/topic.hbs at 53695e7d29e718041fa53bf4fef21e02354a4088 · discourse/discourse · GitHub
seems to be the right handle to access, now if someone knows how to interact with it via theme component…
これはアクセスするのに適したハンドルツールのようですが、テーマコンポーネント経由で操作する方法を知っている人はいますか…
「いいね!」 1
Crius
(Crius)
2023 年 2 月 23 日午後 4:27
12
神々よ、タイトルの編集がトリガーされたことを検出するフックが見つかりません。何を聞けばよいか、どなたかご存知ですか?
トピックの最初のメッセージを編集する際にカテゴリの変更を非表示にすることは機能しており、編集モードの時だけを検出しています。
「いいね!」 1
Crius
(Crius)
2023 年 2 月 24 日午前 10:08
13
親愛なる友人が不眠症に悩んでいたおかげで、適切なフックを見つけることができました
こちらがそのフックです。フォームのビジュアルも調整し、アクセスを許可する最小トラストレベルを選択できるようになります(デフォルトでは、デフォルトのDiscourse設定に合わせるためにトラストレベル0です)。
Contribute to netgamers-forum/discourse-restrict-edit-category development by creating an account on GitHub.
今から#pluginセクションに新しいトピックを作成します。
最初に正しい方向を示してくれた@Canapinさんに本当に感謝します
「いいね!」 3
Canapin
(Coin-coin le Canapin)
2023 年 2 月 24 日午前 10:25
14
コードを見ました、素晴らしい出来です
むしろ、私があなたから多くを学んだと思います!
一点だけ、あなたが作成したのは Plugin ではなく、Theme component です
「いいね!」 2
補足ですが、トラストレベル3および4のユーザーは、trusted users can edit others が有効になっている限り、任意のトピックを再分類できます。トラストレベル0/1/2のユーザーは、自分のトピックに対してのみ、編集期間内(post edit time limit で設定されたTL0およびTL1の編集期間、およびTL2およびTL3の tl2 post edit time limit)にのみ実行できるはずです。最初の投稿を投稿レンチでロックすると、カテゴリ(およびタイトルとタグ)の編集も停止されるはずです。
あなたのユースケースを100%理解しているか確信はありませんが、解決策が見つかったことを嬉しく思います。
「いいね!」 3
Canapin
(Coin-coin le Canapin)
2023 年 2 月 24 日午後 12:31
16
ああ、はい、このオプションがあることを知りませんでした。
これにより、カテゴリモデレーターによるものであっても、それ以上の変更(削除を除く)ができなくなります。
しかし、最初の投稿のロックは、トピックタイマーや自動タスク から自動化することはできません。
「いいね!」 1
Crius
(Crius)
2023 年 2 月 24 日午後 8:34
17
はい、承知していました。
しかし、私の意図は、モデレーターが複数のカテゴリホッピングの発生に対処しなければならないのを防ぐことでした。これにより、トピックが最初にカテゴリにあり、その後別のカテゴリに移動するなどの場合に、モデレーションが複雑になる可能性があります。
「いいね!」 1
Canapin
(Coin-coin le Canapin)
2023 年 2 月 24 日午後 9:22
18
テーマコンポーネントであるため、ユーザーはJavaScriptを注入するか(おそらく)、利用可能な場合はセーフモードを有効にすることで(**セーフモードを有効にする**設定を参照)、これらの制限を回避できる可能性があるため、追加することが重要だと思います。
より安全な方法で実行するには、プラグインが必要です。
「いいね!」 2
Crius
(Crius)
2023 年 2 月 27 日午後 4:55
19
はい、そのためプラグインも検討していましたが、最初のバージョンとしてはコンポーネントで十分です。
「いいね!」 1
system
(system)
クローズされました:
2023 年 3 月 29 日午後 4:56
20
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.