Questo è facile da fare. C’è un attributo nel modello dell’argomento che mostra se hai risposto o meno. Si chiama posted. Ho scritto in precedenza un componente (Composer tip under specific tag topics) che determina se hai risposto. Se hai competenze di programmazione, puoi dare un’occhiata a ciò che ho scritto. Combinato con il metodo decorateCookedElement dell’API, può essere implementato.
Sono troppo pigro per scrivere il codice specifico. Sono stato molto impegnato di recente.
<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: "Questo post è stato nascosto";
}
`
api.addPostClassesCallback((attrs) => {
if (attrs?.cooked?.includes(`div data-theme-hide="true"`)) {
return ["hiddened"]; // Aggiunto per il CSS, come scriverlo dipende da te
} 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>Post nascosto dalla community</p>`; // Modifica questa riga
hide_post();
}
}, {
id: pid,
afterAdopt: true,
onlyStream: true,
});
}
</script>
Mi sono ricordato che ho qui un codice che usavo per nascondere l’intero post agli utenti non registrati. Puoi usarlo come riferimento.