コンテンツ閲覧ログイン機能の実装方法:ユーザー登録を促すために

件名について、フォーラムで検索しましたが、カテゴリの変更に関するセキュリティしか見つかりませんでした。しかし、これではすべてのカテゴリが見えなくなってしまい、私が求めている機能ではありません。

私の使用シナリオは以下の通りです。未登録ユーザーは一部の投稿内容を表示でき、一部の内容はログインしないと表示できません。または、登録ユーザーは投稿に返信しないと表示できません。

これは登録を促す手段であり、多くの「伸手党」(何もせずに情報を得ようとする人)を防ぐためのものです。

以下のような機能です。

「いいね!」 1

コンテンツを表示するためにログインする機能をどのように実現し、ユーザーの登録をより効果的に促すか

質問で述べたように、フォーラムで検索しましたが、カテゴリの変更のセキュリティに関するものしか見つかりませんでした。しかし、これはすべてのカテゴリを非表示にするだけで、私が求めている機能ではありません。

私の使用シナリオは次のとおりです。未登録ユーザーは投稿コンテンツの一部を表示でき、非表示コンテンツはログインすることで表示できます。または、ユーザーとして登録するには、投稿に返信して表示する必要があります。

これは、登録を促進し、大多数のリーチアウト当事者を防ぐための手段です。

類似のもの:

「いいね!」 1

あなたが求めていることは、多くの新聞が行っていることと似ていますか?例えば、匿名のユーザーとして、ニューヨーク・タイムズのフロントページやカテゴリページを表示できます。

そして、記事にアクセスしようとすると、次のような表示がされます。

このように質問する理由は、このフォーラムで何度か言及されたアイデアだと思うからです。私もそのアイデアは気に入っています。購読ベースの出版物がユーザーに購読を促すために一般的に行っている方法であることを示すのに役立つかもしれません。このアイデアは、一部のDiscourseサイト、特に有料購読者を獲得しようとしているサイトに役立つかもしれません。

「いいね!」 2

このテーマコンポーネントは、あなたが達成したいことを実現しますか?

「いいね!」 3

はい、simonさん。私のウェブサイトには多くのソフトウェアダウンロードリンクがありますが、未登録ユーザーにはそれらを見せたりクリックさせたりしたくありません。返信ありがとうございます!

ネタバレモードのようになれば、本当に嬉しいです。—> ダウンロードリンク 未登録ユーザーがクリックすると、登録ポップアップウィンドウまたは支払いポップアップウィンドウが表示され、非常にエレガントになります。

「返信しないとコンテンツを表示できません」–アクティブなユーザーは自発的に知識を共有し、投稿へのより多くの応答を求めています。これもフォーラムオーナーが望むことです。この機能はフォーラムの発展に有益だと思います。

このプラグインを試してみます。lillyさん、ありがとうございます!

「いいね!」 2

どういたしまして。お役に立てれば幸いです。これはプラグインではなくテーマコンポーネントですので、管理者UIからインストールできる点にご注意ください。

「いいね!」 1

Gated Topics in Category のテーマコンポーネントも同様のことを行っていると思います。:slightly_smiling_face:

「いいね!」 4

このトピックモデルには、返信したかどうかを示す posted という属性があります。以前、返信したかどうかを判断するコンポーネント (Composer tip under specific tag topics) を作成しました。プログラミングの経験があれば、私のコードを参照できます。API の decorateCookedElement メソッドと組み合わせることで、返信がない場合に非表示にすることができます。

具体的なコードを書くのは面倒です。最近とても忙しいです。

<script type="text/discourse-plugin" version="1.6.0">

const user = api.getCurrentUser();

const I18n = require("I18n");

const pid = "post_hider"

const tl4_css = `
.d-editor-preview [data-theme-hide] {
  background: var(--tertiary);
  color: var(--secondary);
  border-top: 2px solid var(--secondary);
  position: sticky;
  top: 0;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.d-editor-preview [data-theme-hide]::before {
  content: "この投稿は非表示に設定されています";
}
`

api.addPostClassesCallback((attrs) => {
if (attrs?.cooked?.includes(`div data-theme-hide="true"`)) {
  return ["hiddened"]; // CSS 用に追加します。CSS の書き方はあなた次第です。
} else {
  return [];
}
});

if (!user) {
    api.decorateCookedElement((el, helper) => {
        function hide_post() {
            setTimeout(() => {
                try {
                    // document.querySelector(`[data-post-id="${helper?.widget?.attrs?.id}"]`)?.parentElement?.remove();
                } catch (err) {
                    console.log(el);
                    console.log(err);
                }
            }, 1000);
        }
        if (el?.querySelector(`[data-theme-hide="true"]`)) {
            el.innerHTML = `<p>この投稿はコミュニティによって非表示にされました</p>`; // この行を変更してください
            hide_post();
        }
    }, {
        id: pid,
        afterAdopt: true,
        onlyStream: true,
    });
}


</script>

未ログインユーザーに投稿全体を非表示にするために以前使用していたコードがあります。参考にしてください。

「いいね!」 4

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.