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

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 »