こんにちは。
似たようなものを探していましたが、特定のグループを除外したいと考えていました。そこでChatGPTを試してみたところ、次のような回答がありました。
Discourseで特定のグループを除外するスクリプトをトリガーするHTMLテーマを作成するには、Discourseのテーマカスタマイズオプションと、グループ除外を処理するJavaScriptを使用する必要があります。Discourseは、ユーザーのグループを含むユーザーの詳細を取得するために
api.getCurrentUser()を提供しており、これは条件付きでスクリプトをトリガーするのに役立ちます。以下は、テーマまたはコンポーネントの
< /head >セクションでこれを実装する方法の例です。<script type="text/discourse-plugin" version="0.8"> api.onPageChange(() => { // 現在のユーザーの詳細を取得 const currentUser = api.getCurrentUser(); if (currentUser) { // スクリプトの実行を除外したいグループ名のリスト const excludedGroups = ['group1', 'group2']; // ユーザーのグループを取得 const userGroups = currentUser.groups.map(group => group.name); // ユーザーがいずれかの除外グループに属しているか確認 const isExcluded = excludedGroups.some(group => userGroups.includes(group)); if (!isExcluded) { // ここにカスタムスクリプトロジックを記述 console.log('Script is executed for this user.'); // 例: 除外されていないユーザー向けのカスタムロジックをトリガー // customScriptFunction(); } else { console.log('User is in an excluded group, script not executed.'); } } }); </script>説明:
api.onPageChange(): ページが変更されるたびにスクリプトを実行します。api.getCurrentUser(): 現在ログインしているユーザーの詳細を取得します。excludedGroups: 除外したいグループをリストアップします。userGroups.includes(group): ユーザーがいずれかの除外グループに属しているかどうかを確認します。- 条件付きスクリプト実行: スクリプトは、ユーザーがいずれかの除外グループに属していない場合にのみ実行されます。
customScriptFunction();を実行したいスクリプトに置き換えることができます。さらに調整が必要な場合はお知らせください!
私の頭はこれで完全に吹き飛びました
。まだ試していませんが、ChatGPTのコードは正しいのでしょうか?