Comment mettre en œuvre la fonction de connexion pour voir le contenu, afin d'attirer davantage les utilisateurs à s'inscrire

Comme demandé, j’ai cherché sur le forum et n’ai trouvé que la sécurité pour modifier les catégories, mais cela ne rend que toutes les catégories invisibles, ce qui n’est pas la fonctionnalité dont j’ai besoin.

Mon scénario d’utilisation est le suivant : les utilisateurs non enregistrés peuvent voir une partie du contenu des publications, et le contenu caché ne peut être consulté qu’après connexion. Ou bien, les utilisateurs enregistrés doivent répondre à la publication pour pouvoir la consulter.

C’est un moyen d’attirer les inscriptions et d’empêcher la majorité des “profiteurs”.

Similaire à

1 « J'aime »

Comment obtenir la fonction de connexion pour voir le contenu, afin d’attirer davantage les utilisateurs à s’inscrire

Comme mentionné dans la question, j’ai cherché sur le forum et n’ai trouvé que la sécurité du changement de catégories, mais cela ne rendra que toutes les catégories invisibles, ce qui n’est pas la fonction dont j’ai besoin.

Mon scénario d’utilisation est le suivant : les utilisateurs non enregistrés peuvent voir une partie du contenu des publications, tandis que le contenu caché ne peut être vu qu’en se connectant. Alternativement, pour s’inscrire en tant qu’utilisateur, il faut répondre à la publication pour pouvoir la voir.

C’est un moyen d’attirer les inscriptions et aussi d’empêcher la majorité des parties qui tendent la main.

Similaire à :

1 « J'aime »

Ce que vous demandez est-il similaire à ce que font de nombreux journaux ? Par exemple, en tant qu’utilisateur anonyme, je peux consulter la page d’accueil et les pages de catégories du New York Times :

Si j’essaie ensuite de visiter un article, on me montre quelque chose comme ceci :

La raison pour laquelle je pose la question de cette manière est que je pense que l’idée a été mentionnée sur ce forum à quelques reprises. J’aime l’idée. Il pourrait être utile de montrer que c’est une façon courante pour les publications par abonnement d’inciter les utilisateurs à s’abonner. L’idée pourrait être utile pour certains sites Discourse, en particulier ceux qui essaient d’attirer des abonnés payants.

2 « J'aime »

Ce composant de thème fait-il ce que vous voulez accomplir ?

3 « J'aime »

Oui, simon, car mon site web aura de nombreux liens de téléchargement de logiciels, mais je ne veux pas que les utilisateurs non enregistrés les voient et cliquent dessus. Merci pour votre réponse !

J’aimerais beaucoup que ce soit comme le mode spoiler. —> liens de téléchargement Lorsqu’un utilisateur non enregistré clique, une fenêtre contextuelle d’inscription ou une fenêtre contextuelle de paiement apparaît, ce qui serait très élégant.

« Impossible de voir le contenu sans répondre » – Les utilisateurs actifs partagent généreusement leurs connaissances et souhaitent plus de réponses à leurs publications. C’est aussi ce que veulent les propriétaires de forums. Je pense que cette fonctionnalité est bénéfique pour le développement du forum.

J’essaierai d’utiliser ce plugin. Merci, lilly !

2 « J'aime »

De rien, j’espère que cela fonctionnera pour vous. Notez simplement qu’il s’agit d’un composant de thème et non d’un plugin, vous pouvez donc l’installer à partir de l’interface d’administration.

1 « J'aime »

Je pense que le composant de thème Gated Topics in Category fait la même chose. :slightly_smiling_face:

4 « J'aime »

C’est facile à faire. Il y a un attribut dans le modèle de sujet qui indique si vous y avez déjà répondu. Il s’appelle posted. J’ai écrit un composant auparavant (Composer tip under specific tag topics) qui détermine si vous avez répondu. Si vous avez des bases en programmation, vous pouvez jeter un œil à ce que j’ai écrit. Combiné avec la méthode decorateCookedElement de l’API, cela peut être implémenté.

J’ai la flemme d’écrire le code spécifique. J’ai été très occupé récemment.

<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: "Ce post est caché";
}
`

api.addPostClassesCallback((attrs) => {
if (attrs?.cooked?.includes(`div data-theme-hide="true"`)) {
  return ["hiddened"]; // Ajout pour le CSS, à vous de voir comment écrire le CSS ensuite
} 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>Ce post a été caché par la communauté</p>`; // Modifiez cette ligne
            hide_post();
        }
    }, {
        id: pid,
        afterAdopt: true,
        onlyStream: true,
    });
}


</script>

Je me souviens avoir eu un code pour cacher l’intégralité du post aux utilisateurs non connectés. Vous pouvez vous en servir comme référence.

4 « J'aime »

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